rpmとして報告されたインストール済みパッケージのリストは、yumとして報告されたものとは異なります。

rpmとして報告されたインストール済みパッケージのリストは、yumとして報告されたものとは異なります。

サーバーBがサーバーAとまったく同じ設定をしたいのですが。サーバーAとBは同じArchと同じハードウェアを持っています。

私の計画は、サーバーAにインストールされているすべての項目をリストし、サーバーBのリストを使用して次のようにインストールすることです。

yum -y install $(cat installed.txt)

サーバーAでは、以下を使用する必要があります。

rpm -qa > installed.txt

または:

yum list installed > installed.txt  

リストが違うようですが、理由がわかりません。

yum list installed930行があり、rpm -qa895行がありますが、どのような違いがありますか?

答え1

yum listinstalledには930行、rpm -qaには895行があります。違いは何ですか?

おそらくフォーマットの違いです。 yum listは、端末のサイズに合わせて一連の巧妙なラッパーを実行します。

おそらくあなたがしたいことは、次のものを使用することです:

# Run this on the master server
yum-debug-dump

# Run this on the new server, with the input from the above.
yum-debug-restore

答え2

違いは何ですか?

行数が異なる主な理由は、生成された出力のyum形式が各フィールドが縦に並べられるように指定されるためです(パッケージ名および/またはバージョン番号の長さに関係なく)。 2行を使用してパッケージを一覧表示し、2行目にスペースを埋め、フィールドを適切に並べ替えることでこれを行います。次の出力(CentOS 6システムの場合)は、2行を使用してパッケージを一覧表示することを示していますdevice-mapper-persistent-data.x86_64

device-mapper-libs.x86_64         1.02.95-3.el6_7.4    @clearos-verified-updates
device-mapper-persistent-data.x86_64
                                  0.3.2-1.el6          @clearos
dhclient.x86_64                   12:4.1.1-49.P1.v6    @clearos-verified-updates

しかし、これはそうではありません。ただその理由は、2つのコマンドの出力を比較することでわかります。

コマンド出力の場合rpm:

  1. 大文字で始まるパッケージが小文字の前に表示されるように並べ替えます。

    rpm -qa | LC_ALL=C sort
    
  2. sedパッケージのバージョン番号を削除するには、次のコマンドを使用します。

    rpm -qa | LC_ALL=C sort r | sed 's/-[^-]*-[^-]*$//' >| installed.rpm
    

コマンド出力の場合yum:

  1. 最初の2つのヘッダー行(Loaded pluginsおよびInstalled Packages)を削除します。

    Loaded plugins: etckeeper, fastestmirror
    Installed Packages
    

    私達はsedこれのために使用できます:

     yum list installed | sed '1,2d;'
    
  2. また、それを使用してsedパッケージリストのすべての連続行を削除することもできます(この行は、すべてのパッケージバージョンがソートされるように複数のスペースで始まります)。

    yum list installed | sed '1,2d;/^ /d;s/\..*//' >| installed.yum
    

このdiffコマンドを使用して、2つのファイルの出力を比較できます。 CentOS 6システムの結果は次のとおりです。

# diff installed.{rpm,yum}
239,243d238
< gpg-pubkey
< gpg-pubkey
< gpg-pubkey
< gpg-pubkey
< gpg-pubkey

結論として

rpm -qaこれには、パッケージ署名のための信頼できる公開鍵を含むパッケージのリストも含まれており、yumこれらのパッケージがコマンドによって無視されることを示します。

答え3

yum list installedパッケージ名とパッケージバージョンが長い場合は、2行の出力を生成できます。

答え4

yum list installed次のように出力してみてください。

pam_krb5.i386                        2.2.14-22.el5                     installed

rpm -qa言うことはこんな感じです。

pam_krb5-2.2.14-22.el5

どちらのコマンドも出力と同じ数の行を提供します。私はrpm -qaリストを選択します。

さらに、これ答え、以下のメッセージが表示されます。

作業が必要なパッケージで特に動作するプログラム「rpm」と依存関係を見つけてシステムになくても.rpmファイルをダウンロードできるよりスマートな管理システムである「yum」があります。

したがって、違いはyum依存関係が解決されたが、rpmすべての依存関係がインストールされ、より完全なリストを提供するということです。

yum私が見たものとの実際の違いrpmは次のとおりです。

最も顕著な問題rpmは、ほとんどの人が一般的に国と呼ぶことです。依存性地獄。この問題は、他の多くのパッケージに依存するパッケージで発生し、そのいくつかは他の多くのパッケージにも依存しています。私たち全員が知っているように、プログラムが正しく機能するためには、すべての依存関係をインストールする必要があります。rpmこれを自動的に実行する方法はありません。必須パッケージをインストールする前に、すべての必須パッケージがインストールされていることを確認できます。最初に単一のパッケージのみをインストールしたいほとんどの人にとって、各依存関係を手動で追跡してインストールすることが重要です。

yumユーザーがインストールするパッケージをインストールする前に、パッケージの依存関係を追跡してインストールする機能。これにより、インストールするパッケージ名だけがわかり、必要なパッケージがすでにインストールされているかどうか心配する必要がなくなり、プロセス全体が簡素化されます。システムで見つからないパッケージのシステムで使用可能なストレージを検索します。

引用する

http://www.difference Between.net/technology/difference- Between-yum-and-rpm/

関連情報