it-swarm-tr.com

Bir borcu bağımlılıklarını kaldırmadan kaldırma

python setup.py install İle yaptığım boto 'un en son sürümünü kurmak istiyorum

Yine de eski sürümü kaldırmaya çalıştığımda aşağıdaki paketler de kaldırılıyor:

apt-get remove python-boto
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  cloud-init cloud-utils euca2ools python-boto

Paket yöneticisine boto'yu kaldırmasını nasıl söyleyebilirim ve onları harici olarak yüklendi (veya bunun gibi bir şey) olarak işaretleyebilir, böylece apt eksik bağımlılığı düzeltmeye çalışmaz?

Teşekkür ederim,
Maxim.

45
Maxim Veksler

equivs yardımcı programını kullanarak bir kukla .deb paketi oluşturabilirsiniz, herhangi bir dosya yüklemeden bağımlılığı sağlayacaktır. Ardından, şu anda yüklü olan paketi dpkg -i fake.deb.

16
João Pinto

Doğrudan apt-get veya aptitude değil, dpkg kullanın:

Sudo dpkg -r --force-depends "packagename-version"
64
user13364

Bunun eski bir yazı olduğunu biliyorum, ancak yakın zamanda benzer bir sorun yaşadığım için, çözümümü gelecekte birisinin faydalı bulacağı umuduyla paylaşmak istiyorum.

Bir paketi uygun şekilde yüklediyseniz, bağımlılıklara otomatik olarak bayraklar atar (otomatik) ve paketinizi kaldırmaya çalıştığınızda otomatik bayrağı ayarlanmış olan tüm bağımlılıkları kaldırmaya çalışır.

Benim durumumda gördüğünüz gibi kaldırmak istediğim zabbix:

[email protected]:~$ Sudo aptitude purge zabbix-server-mysql zabbix-frontend-php
The following packages will be REMOVED:  
  Apache2{u} dbconfig-common{u} fping{u} javascript-common{u} libhtml-template-Perl{u} libiksemel3{u} libjs-prototype{u} 
  libjs-scriptaculous{u} libopenipmi0{u} libt1-5{u} mysql-server{u} mysql-server-5.1{u} mysql-server-core-5.1{u} php5{u} php5-Gd{u} 
  php5-mysql{u} snmpd{u} wwwconfig-common{u} zabbix-frontend-php{p} zabbix-server-mysql{p} 
0 packages upgraded, 0 newly installed, 20 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 44.9 MB will be freed.
Do you want to continue? [Y/n/?]

Apache paketine bakarsak şöyle görünür

[email protected]:~$ aptitude search ^Apache2
i A Apache2        - Apache HTTP Server metapackage
<snip>

ilk "i" bayrağı Apache'nin kurulu olduğunu söyler
Bir sonraki "A" bayrağı otomatik olarak kuruldu

Bunu düzeltmek ve Apache, mysql ve php'yi kaldırmamak için, otomatik bayrağı aşağıdaki gibi yeteneklerle kaldırabiliriz:

[email protected]:~$ Sudo aptitude unmarkauto Apache2 mysql-server php5
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

Şimdi zabbix paketini kaldırırken şöyle görünüyor:

[email protected]:~$ Sudo aptitude purge zabbix-server-mysql zabbix-frontend-php
The following packages will be REMOVED:  
  dbconfig-common{u} fping{u} javascript-common{u} libiksemel3{u} libjs-prototype{u} libjs-scriptaculous{u} libopenipmi0{u} libt1-5{u} 
  php5-Gd{u} wwwconfig-common{u} zabbix-frontend-php{p} zabbix-server-mysql{p} 
0 packages upgraded, 0 newly installed, 12 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 16.6 MB will be freed.
Do you want to continue? [Y/n/?] 

Daha fazla bilgi için lütfen man sayfasına göz atın

15
David Berkan

Tam olarak bu apt-mark hold için.

apt-mark hold package_name

Belgelerden:

bekletme, bir paketi otomatik olarak yüklenmesini, yükseltilmesini veya kaldırılmasını önleyecek bir paketi geri tutulmuş olarak işaretlemek için kullanılır. Komut sadece dpkg --set-selection'ler etrafındaki bir pakettir ve bu nedenle durum

Bir paketi kaldırmak için:

apt-mark unhold package_name

13
Marcio

AFAIK, APT kullanarak bir paketi ona bağlı olan paketleri kaldırmadan kaldırmanın bir yolu yoktur.

Referans: http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html

3
aneeshep

João Pinto'nun cevabını tamamlamak için, kırık paketi düzeltmek için küçük komut dosyamı kullanabilirsiniz, bu komut dosyası equivs ile kukla paket oluşturacak ve yükleyecektir. blogum fransızca ile ilgili bir makale bulabilirsiniz.

Veya doğrudan Gist kod .

Kullanmak için:

$ ./gen-dummy-package.sh --install|i [packageName]+
# e.g. :
$ ./gen-dummy-package.sh -i rfkill nome-bluetooth bluez
0
heralight