私のlibeventインストールバージョンは2.0.12です。
次のコマンドで新しいバージョンのlibevent(v2.1.12)をインストールしましたが、すべてがうまくいきましたが、yum infoではlibeventバージョン2.0.12が再び表示されました。
Yumに何が起こりましたか? yumデータベースをどのように更新できますか?
$ wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
$ tar -zxf libevent-*.tar.gz
$ cd libevent-*/
$ ./configure --prefix=/usr/local --enable-shared
$ sudo make && make install
答え1
yum
RPMデータベースの内容だけをそのまま見てくださいyum
。rpm
ソースからパッケージをコンパイル、使用、またはyum
インストールしないと、rpm
RPMデータベースにはyum
存在せず、何も起こらず、libevent
RPMデータベースでのみ考慮されます。コンテンツ。libevent
すでに最新バージョンなので、何yum
もせず何もしませんrpm
。
正常に実行されるため、データベースに対して何もする必要はありません。ソースからソフトウェアをコンパイルする理由は、システムを破壊する悪名高い「依存関係地獄」につながる可能性がある競合を引き起こさずに環境に追加できるように、リポジトリで利用できないバージョンを取得するためです。
答え2
配布バージョンにパッケージをインストールすると、インストールされているエントリのRPMデータベースが破損しています。たとえば、尋ねると、rpm verify libevent
フィビリンは私が殺人を叫んでしまうでしょう。
新しいバージョン(通常はディストリビューション、より重要なのは「エンタープライズ」長期バージョン)をインストールする必要がある場合は、以前のデフォルトバージョンを維持し、ローカライズ、バグ修正、改善などのパッチを追加してください。最先端のアップストリームバックポート - - カスタマイズされた設定とドキュメントを追加します。いいえ同じ数のアップストリームバージョン(時々離れている)を使用して独自のRPMパッケージを作成します。
src.rpm
リリースアーカイブから最新情報を入手してください。 CentOSの場合は、最新バージョンのディストリビューションであるか、実験版rawhide
(次のバージョンのディストリビューションになる準備ができている)であるかに関係なく、Fedoraパッケージを表示することもできます。- 荷物などから取り出す。予約する手動保有中(警告、若干古い)または普遍的ガイド近い。
- 新しいバージョンを含めるようにファイルを変更する
spec
のは簡単ですが、元のバージョンに付属のパッチまたは構成ファイルが引き続き適用されるかどうかを確認する必要があります。 - 独自のパッケージを作成し、エラー/警告を修正してください。満足したらインストールしてみてください。必要と思われるテストを実行してください。
これは、RPM(およびdnfなど)が新しいパッケージを理解し、それをシステムにきれいに統合するのに大きな助けになります。しかし、あなたが得ることはディストリビューションの修正版であり、修正されていないシステムユーザーに助けを求めるのに一歩近づきました。
/usr/local
別のオプションは、重大な損傷の危険を避けるためにソフトウェアの非公式バージョン(例えば)をインストールすることです。