yumを使用して最新のパッケージをインストールする方法

4783 ワード

共有:https://www.css3.io/how-yum-install-release-soft.html

背景


yumを使用してソフトウェアをインストールすると、インストールされているソフトウェアが古いバージョンで、自分が望んでいないreleaseバージョンに遭遇することがよくあります.これはいったいどういうことなのか、rpm,yum,yum repositoriesから話さなければならない.

rpm


RPM Package Managerはパッケージ管理システムです.多くのフォーマットxxxを管理しています.rpmのソフトウェアは、バイナリパッケージが多い.これらのソフトウェアはいずれもあるプラットフォームの下でコンパイルされているので、自分のプラットフォームに対応するパッケージを探して、直接ダウンロードしてインストールして使用することができます.しかし、rpm -i example.rpmを使用して直接これらのパッケージをインストールする場合、パッケージに依存(このソフトウェアにはダイナミックライブラリが必要か、pythonなどの環境が必要か、他のソフトウェアが実行できるかなど)があり、依存をインストールする必要があります.これは古くなって、手動でインストールに依存して、依存してまだ依存して、最終的には非常に多くの依存がインストールされます.そしてyumは役に立ち,yumの最も主要なタイミングで依存問題を解決した.

yum

yum install xxxソフトウェアをインストールすることができ、依存も同時にインストールされます.問題が発生しました.通常、このようにソフトウェアをインストールすると、古いバージョンがインストールされます.
例えばyum install gitまたはyum install nodejsに低バージョンのソフトウェアがインストールされていますが、これはどういうことですか?これはyumが使用するソースと関係があるので、ソース(repository)の紹介を見てください.

yum repository


repositoryは簡単に言えばurl(ミラーアドレスという専門)に対応しています.このurlはリストで、パッケージがたくさん入っています.yum install xxxになると、中でxxxとxxxの依存を探します.もしこのrepositoryに置かれているxxxが低いバージョンであれば、私たちがインストールしているのは低いバージョンのソフトウェアです.
yumは複数のrepositoryを同時に使用することができ、/etc/yum.repos.d/の経路の下に運ぶと、例えば私はこんなに多くの
CentOS-Base.repo       CentOS-Media.repo  epel-testing.repo      webtatic.repo
CentOS-Debuginfo.repo  CentOS-Vault.repo  nodesource-el6.repo    webtatic-testing.repo
CentOS-fasttrack.repo  epel.repo          webtatic-archive.repo

.repo

.repoファイルを開くと、1つの.repoファイルに複数のノードがあり、各ノードにurlが対応しています.これは、前に述べた多くのパッケージがインストールされているurlです.ノードの名前は重要ではありません.1つの.repoには1つ以上のノードが含まれています.yum install xxxがインストールされると、各ノードに対応するurlが検索され(各セクションが起動していることを前提として)、デフォルトの滴はxxxの最新バージョンをインストールします.もちろん、yum list xxxすべてのバージョンをリストして、インストールを選択することができます.yum search xxxは検索であり、これはlistとは異なり、listはnameのみをリストし、searchはname、descr(各パッケージには基本情報name、descなどがある)などの情報にxxxを含むパッケージを探します.詳細については*yum list vs yum search*を参照してください.
そのうち、二つあります.repoは非常に重要で、デフォルトのCentOS-Base.repoは主なrepositoryで、公式のソースミラーアドレスを指しています.でも足りない場合もあるのでepel.repoという拡張パッケージのソースは役に立ち、古いバージョンのパッケージをインストールし、異なるソースを追加すると、新しいバージョンのパッケージをインストールする可能性があります.この新しいソースの中には比較的新しいパッケージがあるため、yum install xxxは優先的に高いバージョンをインストールします.epelはあまり紹介していません.興味深いソースもあります.これらのソースが多種あるのは、ソースごとにパッケージの機能が異なるためです.例えば、一部のソースはドライバを専用に置く可能性があり、一部のソースは他のツールを専用に置く可能性があります.

yumに新しいrepositoryを追加する方法


中のurlを手動で変更することができます.より便利な案もあり、直接.repoをインストールすることができ、例えばepelはyum installをインストールすることができる.インストール後、yum install epel-releaseパスの下にepelが1つ追加されます.repoファイルは、自動的に構成されています.urlを覚える必要がないので、この自動インストールは手動よりもいいです.一つ問題があります.複数のソースをできるだけ混ぜて使用しないでください.依存問題を引き起こす可能性があります.あるいは、深刻なソフトウェアが走れません.もっと参考にしてください.http://dag.wiee.rs/rpm/FAQ.php#D1. この問題に対して、私の理解では、混合使用ソースのダウンロードの依存は他のソースから来ている可能性がありますが、他のソースのダウンロードの依存パッケージはあなたがパッケージをインストールするのに期待しているバージョンではありません.あるいは、下位のストレージアーキテクチャ(x 86 64のi 386 32を望んでいます)も具体的には章を見ていません.ここではyumの設計が複数のソースの混用ではなく、混用ソースに直面しているのではないかと疑問に思っています.依存の面では少し足りない.

Repositoryを切り替えた後も古いバージョンのパッケージをダウンロード


epelのソースを追加しても、古いバージョンになることがあります.原理は簡単です.あなたのすべてのソースの中で、最高バージョンはその古いバージョンのパッケージです.実際の例を挙げると、/etc/yum.repos.d/の場合、epelを持っていても0.10しかインストールできません.xのバージョン.実は解決策があります.この場合、nodejs公式が提供しているかどうかを見てみましょう.例えば、nodejs公式は提供しています.https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora. コマンドでnodesource-release-el 6-1をダウンロードします.noarch.rpmパケットをインストールし、このrpmパケットをインストールすると、新しいソースが追加されます.ここにはnodesource-elが1つ増えました.repoソース(このソースにはnodejs関連のパッケージと依存パッケージしか入っていません)では、yum install nodejsに行くと、新しいバージョンがインストールされていることがわかります.

リファレンス


https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora
https://www.centos.org/docs/5/html/yum/sn-searching-packages.html
http://centoshelp.org/resources/repos/
https://www.centos.org/docs/5/html/yum/sn-yum-maintenance.html
https://www.centos.org/docs/5/html/yum/index.html
http://unix.stackexchange.com/questions/50657/is-it-stable-to-use-epel-and-rpmforge-in-the-same-time
http://dag.wiee.rs/rpm/FAQ.php#D1