Bağımlılıkların elle çözüldüğünü nasıl anlarım?


14

Diyelim ki yüklemek istemediğim bir yazılım var apt, ama elle. (TeXLive, çünkü 2011 sürümünü kullanmak istiyorum ve aptsadece 2009 sürümü var.)

Diyelim ki yüklemek istediğim başka bir yazılım var, aptancak ilk yazılıma bağlı . (Vim LaTeXSuite, sistem genelinde kullanım için manuel olarak kurmak bir acıdır.)

Varsayılan olarak, aptilk yazılımı "görmez" ve yalnızca bağımlılık meta verilerini tatmin etmek için çok sayıda gereksiz ve istenmeyen hammadde (yani TeXLive 2009) kurmaya devam eder.

Nasıl yapabilirim:

  • Söyle aptBelirli bir paket (örneğin o texlive) olan bazı diğer paketin bağımlılığı olarak monte edilmemesi gerektiğini tüm pratik amaçlar için yüklenen ve?

  • Bağımlılıkları hakkında rahatsız etmeden aptbelirli bir paketi (ör. vim-latexsuite) Yüklemenizi söyleyin ?

Çeşitli aracılığıyla elenmiş ettik aptlı man sayfalarını ve boş çıktı ve ayrıca bulundu bu soruyu bu sitede ama orada hissediyorum vardır hayır, bunu yapmak için daha az hackish yol olarak?

(Gentoo zamanlarımdan hatırlıyorum emerge --injectve /etc/portage/package.providestemel olarak apteşdeğerleri arıyorum .)


TeX Live 2011, yakın zamanda Debian Sid'e eklendi, bu yüzden er ya da geç Mint'e de yayılmalıdır (ancak Ubuntu 12.04, "kaçırdı", bu yüzden Ubuntu 12.10 ile Ekim ayının sonundan önce değil). Gerçekten maceracıysan belki de Debian Sid'den paketleri alabilirsin, ama bu durumda çok fazla paketle ilgili olduğu için, muhtemelen iyi bir çözüm değil. Mint'te de kullanabileceğiniz launchpad.net/~texlive-backports/+archive/ppa kurulumunda ( Ubuntu'daki bu hata raporuna bakın) bir PPA var .
Daniel Andersson


Üç yıl sonra yorum yok indirgemek ... açıklamak ister misiniz?
DevSolar

@DevSolar: Birisi soruyu seri olarak reddetmiş gibi görünüyor ve her ikisi de nedenini açıklığa kavuşturmadan üç yıl sonra cevaplıyor. Sadece omuz silkmek ve devam etmek, sanırım :-).
Daniel Andersson

Yanıtlar:


13

equivsBu bağımlılıkları sağlayan meta paketleri oluşturmak için paketi kullanmalı ve sonra dpkgbu paketleri yüklemek için kullanmalısınız .

equivsBelgelerinin yüklenmesi ve okunması yeterli olmalıdır, ancak Ubuntu için bu kılavuz oldukça kapsamlıdır ve diğer APT sistemleri için de geçerlidir.


Ayrıca, bir paketin belirtilen bağımlılık olmadan yüklenebilmesi gerektiğini düşünüyorsanız, bağımlılığa ihtiyaç duyulmadığı durumu açıklayan pakete bir hata göndermelisiniz.

Bu durumda , texlive-base-binen azından temel Debian dağıtımında bir "Bağımlılık" değil, "Tavsiye edilen" gibi görünüyor (muhtemelen kısmen texliveböyle büyük bir paket olduğundan), çünkü Debian'a TeX Live'ı yüklemek için yaygın dağıtım versiyonu genellikle büyük ölçüde geride kalmaktadır (paketin öyle bir canavar olduğu için, çoğunlukla Debian'ın yanında yaşamları olduğunu iddia eden bir veya birkaç kişi tarafından yapılan önemli bir iş olmadan paketlenemez), equivshile genellikle TeX Live ile kullanılır (vay, bu cümle elden çıktı :-)).


Ek : TeXLive'ı paket sisteminin dışına kurmak isteyenler için daha ayrıntılı talimatlar için , TeX.SX üzerindeki bu talimatlar daha kapsamlıdır ve büyük olasılıkla güncel tutulmaya devam edecektir. Ayrıca equivsadımla ilgili daha açık talimatlar da içerirler .


Bunun nasıl ortaya çıktığını bilmiyorum, ancak Linux Mint texlive'i "zor" bir bağımlılık haline getiriyor ... equivspaketi deneyecek .
DevSolar

equivsharika çalıştı. texlive-base-binAynı adla (sağlanan texlive-binaries) orijinal "kukla" paketini geçersiz kılan 9999 sürümünü oluşturdum ve vim-latexsuiteherhangi bir sorun olmadan yükledim .
DevSolar

1

--nodepsHerhangi bir bağımlılık olmadan paketi yüklemesi gereken dpkg üzerindeki bayrağı kullanabilirsiniz .

   --ignore-depends=package,...
          Ignore  dependency-checking for specified packages (actu-
          ally, checking is performed, but only warnings about con-
          flicts are given, nothing else)

Bir var ServerFault çok benzer bir soru yanı bakarak değer


Ah ... böyle bir şey yok mu? (En azından burada bulduğum Linux Mint 12 kutusunda değil.)
DevSolar

1
hm, ben bir hata yapmış gibi görünüyor - onun dpkg için değil, apt-get - bu yansıtmak için benim cevap düzenledi
Journeyman Geek

Bu beni Debian türevleriyle hiç bitmeyen bir şey: Paket yöneticisi arayüzlerinin çokluğu. Bunları karıştırırken herhangi bir düşme olmadığını varsayıyorum? Yoksa bunlardan birine bağlı kalmam gerekir mi?
DevSolar

her şey dpkg'a dayanır, aslında, apt ve yetenek bunun ön uçlarıdır ve apt ve yetenek için ön uçlar vardır. dpkg genellikle paketleri bir .deb dosyasından yüklemek istediğinizde kullanılır. Ben kendim için apt-get ve dpkg sopa eğilimindedir. 'Varsayılan' debian aromalı paket yöneticilerini karıştırmak genellikle makul derecede güvenli olmalıdır
Journeyman Geek

Bu, cevabınızı gerçek sorunum için tercih ettiğim çözüm haline getiriyor , çünkü hiçbir şey sırayla vim-latexsuite'e bağlı değil. Bununla birlikte, bu çözüm "texlive" i mevcut olarak işaretlemez , sadece vim-latexsuite'i istemesini engeller. Bu nedenle, Daniel'in cevabı sorunun başlığına daha iyi uyuyor. Onay işareti ona gider, kudos sana gider. ;-)
DevSolar

1

Aşağıdakiler, bağımlılığı bir .deb dosyasından kaldıracak, bu durumda libperl5.20 bağımlılığını freeradius'tan kaldıracaktır:

dpkg-deb -x freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius
dpkg-deb -e freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius/DEBIAN
sed -i  -e 's/, libperl5.20 (>= 5.20.2)//g' freeradius/DEBIAN/control
dpkg-deb -b freeradius freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb

Bu, bağımlılığın var olduğunu bilmeden paketi yüklemenizi sağlar.

Paketlerin belirli sürümlerini manuel olarak yüklüyorsanız apt-get upgrade, gelecekte paketi yükseltmeyi de durdurmak isteyebilirsiniz :

apt-mark hold freeradius
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.