katakan yum untuk mengabaikan ketergantungan tunggal

37

Saya mencoba untuk menginstal winswitch pada CentOs 6. Membutuhkan 'nxagent'. Namun dalam centos, nama paketnya adalah 'nx'. Apakah ada cara untuk memberitahu Anda agar tidak memeriksa ketergantungan 'nxagent' (saya sudah menginstal 'nx')? Menentukan --skip-broken melewatkan semuanya

IttayD
sumber

Jawaban:

14

Umumnya yumtidak memiliki opsi untuk mengabaikan satu paket dari dependensi. Opsi --skip-brokenmengabaikan semua ketergantungan yang tidak terselesaikan.

Anda dapat mencoba yum --exclude=packagenametetapi tidak termasuk paket khusus dengan nama atau glob dari pembaruan pada semua repositori, bukan dari dependensi.

B14D3
sumber
1
yum --excludetidak bekerja pada dependensi
DrStrangepork
2
@DrStrangepork ya saya tahu saya menulis itu dalam jawaban saya
B14D3
5
Baik --excludetidak --skip-brokenmembantu memotong satu atau lebih dependensi dengan cara yang rpm --nodepsdilakukannya.
Acumenus
3
Lanjutkan ke jawaban kedua.
brthornbury
49

The rpmperintah memiliki --nodepsopsi yang dapat Anda gunakan. Tantangannya adalah bahwa rpmdengan sendirinya tidak menyadari repositori yum. Perintah berikut akan menginstal atau memperbarui paket, mengabaikan ketergantungan, tetapi secara otomatis mencari URL unduhan dari repositori Anda repoqueryyang ada dalam paket yum-utils.

rpm -Uvh --nodeps $(repoquery --location winswitch)

Setelah itu, seorang reguler yum updatekemungkinan akan berhasil tanpa kesalahan ketergantungan.

Tidak bernama
sumber
$ (repoquery --lokasi winswitch) tidak berfungsi untuk saya. Namun, seseorang dapat mengunduh paket .rpm melalui "yumdownloader --destdir =. Nama-paket". "rpm -U" berarti peningkatan. Jika paket tidak diinstal, seseorang dapat menggunakan "rpm -i" untuk itu. yumdownloader berasal dari yum-utils (dnf-utils dalam kasus saya).
Yaroslav Nikitenko
2

Kedengarannya seperti Anda mencoba untuk menginstal paket yang belum dirancang untuk OS, yaitu jika itu dirancang untuk CentOS akan memerlukan nxdengan benar.

Solusi lain untuk masalah ini adalah membuat dan menginstal paket RPM shim kecil yang tidak mengandung file, tetapi dalam file spec berisi baris berikut (antara lain):

requires: nx
provides: nxagent

Dengan cara itu ketergantungan harus dipenuhi namun mungkin mengharapkan file berada di lokasi yang berbeda antara nxagentpaket yang diharapkan telah diinstal dan nxpaket yang CentOS sediakan.

Bodgit
sumber
0

Anda juga dapat menggunakan rpmrebuild untuk mengubah metadata rpm untuk menunjuk pada nama paket yang baru. ini akan menjadi paket "Anda", tetapi lebih bersih sejauh ketergantungan rpm. Tidak ada ruginya menggunakan --nodeps saya pikir.

Florian Heigl
sumber