yumがどのように機能するかについての深い理解



Deep Understanding How Yum Works



にコピー http://www.360doc.com/content/19/0529/15/64405542_838986706.shtml

にコピー http://www.firefoxbug.com/index.php/archives/2777/



YUM(Yellowdog Updater Modified):RPMベースのソフトウェアパッケージマネージャーです。指定されたサーバーからRPMパッケージを自動的にダウンロードしてインストールできます。ソフトウェア間の依存関係を処理し、各インストールをダウンロードすることなく、依存するすべてのソフトウェアパッケージを一度にインストールできます。

原理

yumのしくみ

yumの作業には、連携するために2つの部分が必要です。1つの部分はyumサーバーであり、1つはクライアントのyumツールです。以下に、2つの部分の動作原理を説明します。



  • yumサーバー

    リリースされるすべてのrpmパッケージは、他のユーザーがダウンロードできるようにyumサーバーに配置されます。 rpmパッケージは、カーネルのバージョン番号とCPUのバージョン番号に従ってコンパイルおよびリリースされます。 yumサーバーは、ftpまたはhttpdのいずれかの単純なダウンロードを提供するだけで済みます。 yumサーバーの最も重要な側面の1つは、rpmパッケージに対応するバージョン番号、confファイル、バイナリ情報、重要な依存関係情報など、各rpmパッケージの基本情報を分類することです。 createrepoツールはyumサーバーで提供され、rpmパッケージの基本的な要約情報を「リスト」にします。この「リスト」は、各rpmパッケージを説明するスペックファイル内の情報です。

  • yumクライアント



    クライアントがyuminstallまたはsearchを呼び出すたびに、/ etc / yum.repos.dの下の.repoで終わるすべての構成ファイル(つまり、yum source)を解析します。これらの構成ファイルは、yumサーバーのアドレスを指定します。yumは、yumサーバー上の「rpmパッケージ」リストを定期的に「更新」し、/ etc / yum.confの構成に従って「リスト」をダウンロードしてyum自身のキャッシュに保存します(デフォルトは/ var / cache / yum以下)、yumを呼び出してパッケージをインストールするたびに、このキャッシュディレクトリに移動して、「list」内のrpmパッケージの説明に従って「list」を検索し、インストールパッケージの名前を決定します。バージョン番号、必要な依存パッケージなどを入力してから、yumサーバーに移動してrpmパッケージをダウンロードしてインストールします。 (前提は、rpmパッケージのキャッシュがないことです)

etc /yum.repos.dの下の.repoで終わるすべての構成ファイルがyumソースです。 yum sourceは、ソフトウェアウェアハウスへの接続に相当します。 yumを介したソフトウェアのインストールは、実際には、対応するソフトウェアパッケージを取得するためのリンクを介してソフトウェアウェアハウスに入ります。インストールされています。

これには、YUMサーバーとクライアントの2つの部分が含まれます。
YUMサーバー
YUM
Linuxクライアント
Linux
処理する
YUM

yum設定ファイル

構成ファイルが置かれているディレクトリー:/etc/yum.repos.d

# vim /etc/yum.repos.d/CentOS-Base.repo
  • 1

ベース

$ releaserver:リリースバージョン番号

$ basearch:x86_64などのシステムインフラストラクチャ

[ベース]:コンテナ名を表します。名前は自由に取ることができます
名前:コンテナの意味を説明します
ミラーリスト:このコンテナが使用できるミラーサイトを一覧表示します。使用したくない場合は、コメントできます。
baseurl:の後にコンテナーアドレスが続きます。mirrorlistはyumプログラムによってミラーサイトを検索し、baseurlは固定コンテナーアドレスを指定します。
gpgcheck:RPMファイルのデジタル証明書を参照する必要がありますか
gpgkey:デジタル証明書の公開鍵ファイルの場所。デフォルト値を使用します

yumサーバーが使用するコンテナーを表示します:yum repolist all
ダウンロードしたコンテナ関連のデータをすべて削除します:yum clean all

特徴

1お問い合わせ

# yum search raid // Search important keywords for a software name or description # yum info mdadm // List software functions # yum list // List all software names on the yum server # yum list pam * // Find the software name that starts with pam # yum list updates // List the software that can provide local upgrade on the yum server
  • 1
  • 3
  • 4
  • 5

2インストール/アップグレード

# yum install / update software name # yum install software name -y // No need to enter y to confirm during installation
  • 1

3削除

# yum remove software name
  • 1

4ソフトウェアグループ機能

# yum grouplist // View the container and the software groups available and installed on this machine # yum groupinfo group_name // View all group names in group # yum install / remove group_name // install and remove
  • 1
  • 3

システム全体のアップグレード

yum -y updateすべてのパッケージをアップグレードし、ソフトウェア設定とシステム設定を変更し、システムバージョンカーネルをアップグレードします
yum -y upgradeソフトウェア設定とシステム設定を変更せずにすべてのパッケージをアップグレードし、システムバージョンをアップグレードし、カーネルを変更しません
すでにオンラインになっているyum-yアップグレードは比較的安定しています
真新しい使用yum-yアップデートがより良くなります

参考文献

Linuxソフトウェアのインストール:RPM、SRPM、YUM機能

序文

前回の記事で rpmパッケージの作成 rpmパッケージングプロセスについて説明します。この記事では、主にyumの動作原理について説明します。

yumのしくみ

yumの作業には、連携するために2つの部分が必要です。1つの部分はyumサーバーであり、1つはクライアントのyumツールです。以下に、2つの部分の動作原理を説明します。

  • yumサーバー

    リリースされるすべてのrpmパッケージは、他のユーザーがダウンロードできるようにyumサーバーに配置されます。 rpmパッケージは、それぞれカーネルバージョン番号とCPUバージョン番号に従ってコンパイルおよびリリースされます。 yumサーバーは、ftpまたはhttpdのいずれかの単純なダウンロードを提供するだけで済みます。 yumサーバーの最も重要な側面の1つは、rpmパッケージに対応するバージョン番号、confファイル、バイナリ情報、重要な依存関係情報など、各rpmパッケージの基本情報を分類することです。 createrepoツールはyumサーバーで提供され、rpmパッケージの基本的な要約情報を「リスト」にします。この「リスト」は、各rpmパッケージを説明するスペックファイル内の情報です。

  • yumクライアント

    クライアントがyuminstallまたはsearchを呼び出すたびに、/ etc /yum.repos.dの下の.repoで終わるすべての構成ファイルを解析します。これらの構成ファイルは、yumサーバーのアドレスを指定します。 yumは、yumサーバー上の「rpmパッケージ」リストを定期的に「更新」し、/ etc / yum.confの構成に従って「リスト」をダウンロードしてyum自身のキャッシュに保存します(デフォルトは/ var / cache / yum以下)、yumを呼び出してパッケージをインストールするたびに、このキャッシュディレクトリに移動して、「list」内のrpmパッケージの説明に従って「list」を検索し、インストールパッケージの名前を決定します。バージョン番号、必要な依存パッケージなどを入力してから、yumサーバーに移動してrpmパッケージをダウンロードしてインストールします。 (前提は、rpmパッケージのキャッシュがないことです)

yumサーバーを構築する

/usr/local/rpm_test/conf/test.conf/usr/local/rpm_test/test.py/usr/local/rpm_test/conf ...

createrepoの後、次のディレクトリとファイルが/ var / www / yum / centos / 5 / i386 /に生成されます。

|_+_|

filelists.xmlは、すべてのrpmパッケージリスト、バージョン番号、構成ファイルなどを記録します。

|_+_|

primary.xmlは、rpmパッケージの依存関係を説明する情報を記録します

クライアントを構成する

|_+_|

ローカルのyumキャッシュを表示する

デフォルトでは、各リポジトリに対応するキャッシュは/ var / cache / yumの下に記録されます

|_+_|
  • firefoxbugリポジトリを確認してください。primary.xml.gzはyumサーバーの「リスト」ですが、ここではsqliteに保存されており、sqliteデータベースを表示できます。
|_+_|
  • yumは、インストールまたはアンインストールするたびに、SQLite DBにクエリを実行し、対応する操作を実行します。
  • ローカルのyumキャッシュをクリアする

sudo yum cleanを呼び出すと、この「リスト」がすべてクリアされ、yuminstallおよびその他の操作の次の呼び出しが再生成されます。

1. Install tool createrepo $ yum install createrepo 2. Create a repo release directory $ mkdir /var/www/yum/centos/5/{i386,x86_64} $ mkdir /var/www/yum/centos/6/{i386,x86_64} 3. Use rpmbuild to generate two rpm packages. For example, the following packages have different version numbers and different package names. rpm_test-0.0.1-3.noarch.rpm rpm_test-0.0.2-3.noarch.rpm rpm_test2-0.0.2-3.noarch.rpm 4. Copy the rpm package to the release directory $ cp rpm_test-0.0.* /var/www/yum/centos/5/i386/ 5. Use createrepo to generate meta information $ createrepo -o /var/www/yum/centos/5/i386/ /var/www/yum/centos/5/i386 3/3 - rpm_test-0.0.1-3.noarch.rpm Saving Primary metadata Saving file lists metadata Saving other metadata 6. Configure apache or nginx to release directory 
  • timedhosts.txtファイルには、すべての送信元アドレスにアクセスするために必要な時間が記録されています。送信元アドレスは遅いことがわかります。
  • /etc/yum.confのkeepcacheオプションが1の場合、ダウンロードされたrpmパッケージは/ var / cache / yum / xxx / packageの下に保存されます。
  • yum install packageのときにパッケージがインストールされていることを確認するにはどうすればよいですか?この部分は、/ var / cache / yumではなく、/ var / lib / rpm /で取得されるように決定されています。パッケージをロードするときに、rootを使用してこのフォルダーの下にデータベースを書き込む必要があるためです。具体的な内容はrpmソースコードによって異なります

転載:https://www.cnblogs.com/gaoBlog/p/10944138.html