Pada CentOS 7, saya telah menginstal foobar versi 2, dikompilasi dari sumber.
Bagaimana saya bisa membuat Anda sadar akan pemasangan itu sehingga tidak akan menginstal foobar versi 1 untuk ketergantungan?
Instalasi foobar
$ git clone https://example.com/foobar.git
[...]
$ cd foobar
$ make && sudo make install
[...]
$ foobar --version
foobar v2
Instalasi paket yang membutuhkan foobar
$ sudo yum install baz
[...]
---> Package baz.x86_64 0:3.14.15-9 will be installed
--> Processing Dependency: foobar >= 1 for package: baz-3.14.15-9.x86_64
[...]
Dependencies Resolved
==============================================================
Package Arch Version Repository Size
==============================================================
Installing:
baz x86_64 3.14.15-9 example 1.1 M
Installing for dependencies:
foobar x86_64 1.0.0-0.el7 example 4.5 M
Saya ingin yum tahu foobar 2 diinstal dan karena baz membutuhkan foobar >= 1
atau sederhananya foobar
, foobar-1.0.0-0.el7.x86_64.rpm
tidak boleh diinstal.
Jawaban:
Lakukan upaya ekstra saat menambahkan perangkat lunak khusus ke sistem Anda dan kemas tambahan Anda dalam RPM . Lihat Martin Streicher, 2010-01-12, Membangun dan mendistribusikan paket , IBM tentang cara melakukan itu.
Kemudian instal RPM yang dihasilkan sehingga dapat dan akan bermain bagus dengan konflik manajer paket Anda dan penanganan ketergantungan, peningkatan, penurunan versi dan prosedur penghapusan dan pelaporan keamanan.
sumber
Pilihan lain (walaupun jelas bukan jawaban terbaik): buat file dummy rpm dengan nama yang dimaksud.
Anda perlu
rpmbuild
diinstal, dan tarball dummy.Tulis file spec dummy. Yang ini berfungsi untuk saya di Fedora 29. Ini juga bagus di CentOS 7.
Tweak nama paket dan nomor versi seperlunya, lalu buat paket.
File rpm "biner" akan muncul
~/rpmbuild/RPMS/noarch/example-0.0.0-1.fc29.x86_64.rpm
sumber
Ini bukan cara
rpm
kerjanya.rpm
menggunakan db di mana ia menyimpan rpms mana yang diinstal pada sistem. Jika Anda menginstal beberapa file secara manual,rpm
tidak tahu tentang itu.Cara terbaik untuk mengatasi ini adalah menginstal foobar 2 dengan rpm. Solusi lain hanya akan diselesaikan dan tidak akan bekerja dalam jangka panjang.
sumber
Mungkin
rpm --nodeps
jawaban yang Anda cari? Itu dibahas di utas yang lebih lama di sini di Serverfault.( beri tahu yum untuk mengabaikan ketergantungan tunggal )
sumber