Ini adalah pertanyaan yang sangat spesifik dimana Google tidak membantu menjawab.
Saya menjalankan Ubuntu 13.04 dengan apt 0.9.7.7ubuntu4 for amd64 compiled on Oct 3 2013 15:25:56
.
Saya ingin menginstal Erlang dari paket .deb, tetapi saya tidak ingin menarik semua dependensinya. Paket itu sendiri menentukan bahwa itu tergantung pada pustaka Java dan wx, tetapi pada kenyataannya itu tidak diperlukan kecuali Anda ingin berinteraksi dengan Java atau wxWidgets.
Saya dapat menginstal Erlang seperti ini
sudo dpkg -i --force-depends erlang.deb
Namun, menginstal apa pun dengan apt-get
setelah itu gagal karena dependensi yang tidak terpenuhi. Jadi jika saya ingin menginstal git setelah Erlang, saya mendapatkan yang berikut ini
$ sudo apt-get install -y git
Reading package lists...
Building dependency tree...
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
esl-erlang : Depends: default-jre-headless but it is not going to be installed or
java2-runtime-headless or
java1-runtime-headless or
java2-runtime or
java1-runtime
Depends: libwxbase2.8-0 but it is not going to be installed
Depends: libwxgtk2.8-0 but it is not going to be installed
Recommends: erlang-mode but it is not going to be installed
git : Depends: libcurl3-gnutls (>= 7.16.2-1) but it is not going to be installed
Depends: perl-modules but it is not going to be installed
Depends: liberror-perl but it is not going to be installed
Depends: git-man (> 1:1.7.9.5) but it is not going to be installed
Depends: git-man (< 1:1.7.9.5-.) but it is not going to be installed
Recommends: patch
Recommends: rsync
Recommends: ssh-client
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Apakah ada cara untuk membuat esl-erlang
paket diam tanpa berjalan apt-get install -f
?
Saya ingin sesuatu seperti ini:
sudo apt-get install --ignore-deps-for-package=esl-erlang git
atau seperti ini:
sudo apt-cache shut-package-up esl-erlang
atau ini:
sudo apt-get download git
sudo dpkg -i --with-deps git.deb
Saya telah menemukan pertanyaan serupa: /server/250224/how-do-i-get-apt-get-get-to-ignore-some-dependencies . Beberapa jawaban memberikan langkah-langkah manual yang berguna untuk memodifikasi dependensi paket-paket tertentu.
Saya masih mencari metode otomatis yang tangguh.
sumber
--nodeps
(apt-get
) atau--ignore-depends
dengandpkg
?Jawaban:
Saya mengerti maksud bjanssen, tetapi kelihatannya konyol bagi seorang manajer paket untuk mengizinkan
--force-depends
satu paket instalasi, tetapi tidak mengizinkan force-depend-forever-and-stop-warning-me-about-this-dependency.Saya memiliki masalah serupa dengan paket yang bergantung pada versi libcairo sedikit lebih tinggi dari yang saat ini tersedia di Debian. Untuk tujuan saya masih berfungsi dengan baik. Saya senang terus menggunakannya sampai pembaruan libcairo muncul di apt. Saya tidak ingin mengkompilasi dari sumber atau membangun paket saya sendiri.
Solusi yang saya temukan:
/var/lib/dpkg/status
,Depends:
baris untuk menghentikan paket yang mengeluh.Saya berasumsi bahwa akan ditimpa saat berikutnya paket diperbarui, tetapi itulah yang saya inginkan.
sumber
Apa yang Anda coba lakukan adalah bertentangan dengan tujuan manajer paket, yang mencoba untuk menjaga lingkungan yang waras, jika Anda menggunakan alat yang salah untuk pekerjaan itu. Jangan mencoba untuk mematahkan apt-get.
Cara yang tepat untuk menyelesaikan masalah Anda adalah dengan membangun paket Anda sendiri dengan dependensi yang sesuai dengan Anda. Ada cara resmi (cukup terlibat: http://www.debian.org/doc/manuals/maint-guide/index.en.html ) dan cara cepat dan kotor menggunakan
apt-build
, atau untuk paket tidak dalam sumber distribusi,checkinstall
. Semua paket menghasilkan apt-get akan dengan senang hati menginstal.Pada catatan terakhir, Anda dapat mempertanyakan kebijaksanaan pengelola esl-erlang untuk menyertakan dependensi tertentu, tetapi Anda tidak dapat menyalahkan manajer paket untuk perilaku yang diinginkan. Jika Anda merasa dependensi ini salah, Anda harus mengajukan bug pada paket.
sumber
libmng1
. Tapi saya telahlibmng2
menginstal DAN set symlink kelibmng1.so
. Bekerja sebagai ancaman, tidak pernah punya masalah. Tetapiapt-get
selalu mengeluh tentang "dependensi yang tidak terpenuhi". Jadi pasti ada alasan bagus untuk mencoba menemukan cara untuk membungkam bakat dalam hal ini. Sejak hal melakukan pekerjaan, itu hanya terus mengeluh untuk hal-hal yang hanya yang tidak ada masalah. Itu hanya melihat masalah di mana mereka tidak ada. Dan itu menyebalkan.equivs
untuk "membungkam" apt-get tanpa merusaknya.Periksa, apakah "proxy yang digunakan" di
apt.conf
sudah benar (yaitu sesuai dengan jaringan Anda). Ini juga menyebabkan masalah seperti itu, karena url tidak dapat dijangkau.Biasanya, jika Anda menggunakan proxy, maka Anda
/etc/apt/apt.conf
akan terlihat seperti:sumber