Kırık paketi yoksayma yeteneğini söyle


8

Aşağıdakileri kullanarak Karmik’te Lucid’den bir Amsynth kurdum:

dpkg --force-depends-version -i amsynth_1.2.2-1_i386.deb

Lucid versiyonunu kurmanın nedeni Karmic versiyonunun 3 yaşında olması ve makinemde çökmesi. Lucid Amsynth paketi, Karmic'ten daha yeni libatk1 ve libjack0 sürümlerine dayanıyor, ancak bir risk alacağımı düşündüm ve Amsynth'in iyi çalıştığını ortaya koydu.

Ancak yetenek, her yükseltme yaptığımda Amsynth'i kaldırmaya çalışıyor. Sanırım beklemeye almayı başardım ama şimdi yetenek yetersizliği. Kırık paketi görmezden gelip devam etmesini nasıl söylerim?


Şimdilik yeni kaldırdım. Tekrar ihtiyacım olan her seferinde yeniden yükleyeceğim, tekrar derlemeye çalışacak kadar beni rahatsız etmesi çok uzun sürmüyor.

Daha yeni sürümden bir şeye ihtiyacınız varsa ve daha yeni kitaplıklara gereksinim duyarsanız, genellikle onları bir kenara çekebilir veya kaynak paketi indirebilir ve sisteminizde yeniden oluşturabilirsiniz. Ancak bununla birlikte üçüncü parti bir paket kullanmaya çalıştım ve bilgisayar korsanlarına ihtiyaç duyulduğundan daha fazla.
Jan Hudec,

Yanıtlar:


7

Programı bir deb-file ve dpkg ile kurduysanız, yüklenen .deb dosyasının bağımlılıklarını da manuel olarak değiştirebilirsiniz. Bir keresinde bu aşırı ölçüme yönlendirildim ...

ar x foo.deb
vim control.tar.xz  # see below
ar r foo.deb control.tar.xz
dpkg -i foo.deb

ve dpkg artık foo bağımlılıklarını bilmiyor. Vim'de ./control seçmelisin (paketlenmiş dosyaları okumak için vim kullanıyorum - başka bir düzenleyiciyi açıp kullan ve istersen yeniden paketle) ve istenmeyen bağımlılıkları satırdan kaldır

Depends: foo bar

1
Kullanmak dpkg-debyerine kullanmaktan daha iyisin ar. arGelecekte değişebilecek bir dpkg uygulama detayıdır.
jmtd

Teşekkürler, bu çözüm benim için işe yaradı ancak apt-get upgrade yaptığım zaman "Aşağıdaki paketler geri alındı: numptyphysics: i386" (apt-get dist-upgrade hiçbir şey söylemez) mesajını alıyorum. Bu mesaj normal mi ve ondan kurtulamayız mı?
baptx

4

Ubuntuforum'larda saldırıya uğramış bir çözüm var . ~ quack'in çözümü daha iyi, fakat daha fazla iş.

Bu konuda google’da hiçbir şey bulamadım, kendi 'sahte paketinizi' derlemekten tasarruf edin (kırılmış paketleri kaldırmadan imkansız). Zaten araçlara sahip olacak kadar şanslı olmadığınız sürece, Sonunda cevap!

Bilmek isteyenler için, bir paketi synaptic / aptitude / apt-get içindeki bir paketi kaldırmadan nasıl kaldıracağınızı burada bulabilirsiniz.

Her şeyden önce, kurduğunuz paketi not alın ve bu paketin paketine bozuk bir durum kazandırdığına dikkat edin. Diyelim ki depoda olmayan eski paketine bağlı olan bir elma yüklemesi zorladım:

Terminal tipinde Kod:

sudo gedit /var/lib/dpkg/status

Aşağıdaki gibi bir şey bulana kadar elma için dosyayı ara:

Kod:

Package: apples
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 316
Maintainer:
Architecture: i386
Source: applesauce
Version: 1.0.10-1
Depends: packageA, packageB, obsolete
Description: Apples on your desktop!

Eski Bağımlılar: satırından kaldırın, dosyayı kaydedin ve işleminiz bitti. Umarım bu bazı insanlara yardımcı olur.


Tran. iyi bulmak, ama (aslında bu kesmek ne yapar) paket yöneticisine yalan söyleyen bir hayranı değilim. APT'yi hiç kullanmamak, etrafta dolanmaktan kaçmaktan iyidir. bu nedenle, kendi paketlerinizi derlemeniz iyi bir şeydir - kırılan bağımlılıklar yoktur ve paket yöneticinize yalan söylemezsiniz.
quack quixote

Paket yöneticisine yalan söylemekte sorun yaşamadım, özellikle birkaç ay içinde işletim sistemini yeniden yükleyeceğim, ancak iş parçacığında başvurulan dosyayı bulamadım.

Tuhaf. Orada olmalı. "Cd / var / lib / dpkg" ve ardından "sudo nano status" yapmayı deneyin.
Iain

1
Bağlantı artık çalışmıyor. Buradaki bağlantı sadece cevapların neden kaşlarını çattığının tam nedeni budur. Burada açıklarsanız doğru cevap olurdu.
Jan Hudec,

Bunun kalıcı olup olmadığını bilmiyorum, ancak Java'nın artık bulunmayan sürümlerine zor bağımlılık içeren paketleri yüklemek için şu ana kadar iyi bir düzeltme gibi görünüyor.
krispy

2

Özelliğin Tercihler bölümünde (menüye girmek için Ctrl-T; Seçenekler altında), "Bozuk paketleri kurmadan veya çıkarmadan önce otomatik olarak düzelt " yazan "Bağımlılık İşleme" bölümündeki seçeneğin işaretini kaldırın . Bu, diğer paketleri her değiştirişinizde paketi düzeltmeyi denemenin durmasını sağlar.

Daha kalıcı bir düzeltme olarak, yüklediğiniz Lucid Amsynth paketi için kaynak paketleri ve libatk1 ve libjack0 için kaynak paketleri almalı ve kendi güncellenmiş paketinizi oluşturmalısınız. Bu kütüphaneleri başka neler kullandığınıza bağlı olarak, diğer paketleri de güncellemeniz gerekebilir, ancak muhtemelen yalnızca bu kitaplardan kurtulabilirsiniz. (Bu aslında Lucid'den Karmik'e olan paketleri destekliyor - kimsenin daha önce bunu yapıp yapmadığını görmek için Karmic-destek deposunu veya PPA'ları kontrol etmelisiniz. Yeni paketleriniz çalışıyorsa, başkalarının kullanması için Karmic-backport'lara göndermeyi düşünün. )


Teşekkürler İlk önerinizi denedim ama bir fark yaratmadı. Güncellemeler sadece iptal ederdi. Lucid paketini yüklemeyi denemeden önce derlemeye çalıştım ama şansım olmadı. Gelecekte tekrar deneyebilirim.
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.