Dapatkah saya membuat manajer paket menyelesaikan konflik misalnya dengan mengganti nama biner ( misalnya paralel → gparallel ) atau menginstal ke tempat yang berbeda ( mis. / Usr / → / usr / local / )?
sumber
Dapatkah saya membuat manajer paket menyelesaikan konflik misalnya dengan mengganti nama biner ( misalnya paralel → gparallel ) atau menginstal ke tempat yang berbeda ( mis. / Usr / → / usr / local / )?
Untuk Ubuntu v17.04 ("Zesty Zapus") dan Debian v9 ("Stretch") , ( 2017 atau yang lebih baru), atau distro berdasarkan versi-versi itu, silakan baca jawaban Bryan Larsen terlebih dahulu , yang seharusnya cukup.
Untuk versi dari sebelum 2017 , baca terus ...
Gunakan dpkg
untuk memaksa instalasi; paralel bisa bergaul dengan baik dengan MoreUtils - itu mengganti nama MoreUtils ' parallel
util untuk parallel.moreutils
. Ketika instalasi selesai, kedua program ( GNU dan moreutils ) tersedia.
NB: jika ada skrip pengguna yang memanggil moreutils lama parallel
, ubah skrip tersebut untuk menggunakan nama yang lebih panjang.
Detail: Ambil paket paralel (tanpa menginstal atau menghapus apa pun). Kemudian menggunakan compgen
, ( bash
perintah internal), temukan paket paralel dalam arsip. Jika ada lebih dari satu, gunakan yang terbaru. Paksa paket itu untuk menginstal, meskipun ada konflik.
apt-get --assume-yes --download-only install parallel &&
ls --sort=version $(compgen -f /var/cache/apt/archives/parallel) |
tail -n 1 | xargs dpkg --force-conflicts -i
Cara melihat pengalihan yang dihasilkan:
dpkg-divert --list 'par*'
Keluaran:
diversion of /usr/share/man/man1/parallel.1.gz to /usr/share/man/man1/parallel.moreutils.1.gz by parallel
diversion of /usr/bin/parallel to /usr/bin/parallel.moreutils by parallel
Lihat bagaimana kedua executable biner tersedia:
compgen -c parallel | xargs which | xargs ls -l
Keluaran:
-rwxr-xr-x 1 root root 240814 Oct 31 2014 /usr/bin/parallel
-rwxr-xr-x 1 root root 10592 Jul 21 2015 /usr/bin/parallel.moreutils
apt-get install
terus mengeluh tentang konflik, seperti yang Anda tulis sebelumnya./var/lib/dpkg/status
untuk menghapus konflik. Mencari "Konflik: moreutils", menghapus baris ini. Sumber: superuser.com/a/815371/99136 . Tampaknya berfungsi sekarang, tetapi saya khawatir pembaruan dari paket "paralel" akan merusak lagi.apt-get install
memperingatkan bahwaparallel
paket tidak akan ditingkatkan, tetapiapt-cache policy
tidak menampilkan versi yang berbeda, dan bahkanapt-get dist-upgrade
tidak akan menyentuhparallel
paket. Jadi, peningkatanparallel
tampaknya merupakan proses yang harus dimulai secara sadar. Baik dengan saya.Konflik ini diselesaikan di Ubuntu 17.04 dan Debian Stretch .
Jika Anda menginstal parallel & moreutils Anda mendapatkan GNU
parallel
as/usr/bin/parallel
dan moreutil 'sparallel
as/usr/bin/parallel.moreutils
. Jika Anda hanya menginstal lebih banyak kernel , ia menyediakan/usr/bin/parallel
.Jika Anda menggunakan versi Ubuntu atau Debian yang lebih lama , Anda dapat mengunduh dan menginstal .deb dari versi yang lebih baru: mereka menginstal & berfungsi dengan baik.
sumber
Saya kira, rute termudah adalah menginstal salah satu paket secara normal (mis.
parallel
) Dan mengekstrak yang lain ke jalur khusus:sumber
Paralel GNU hanyalah skrip perl, jadi Anda bisa menyalinnya di tempat yang berguna (mis. / Usr / local / bin / gnu-parallel).
(Cukup periksa dependensi perl).
sumber