Chciałbym zainstalować najnowszą wersję boto , którą wykonuję za pośrednictwempython setup.py install
Jednak gdy próbuję usunąć starą wersję, następujące pakiety również zostają usunięte:
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
Jak mogę powiedzieć menedżerowi pakietów, aby usunął boto, i oznaczy go jako zainstalowany zewnętrznie (lub coś w tym rodzaju), aby apt nie próbował naprawić brakującej zależności?
Dziękuję
Maxim.
Odpowiedzi:
Za pomocą tego
equivs
narzędzia można utworzyć fikcyjny pakiet .deb , który zapewni zależność bez instalowania żadnych plików. Następnie po prostu zamień aktualnie zainstalowany pakiet na wersję fikcyjną za pomocądpkg -i fake.deb
.źródło
Używaj dpkg bezpośrednio, nie apt-get ani aptitude:
źródło
Wiem, że to stary post, ale ponieważ ostatnio miałem podobny problem, chciałbym podzielić się moim rozwiązaniem w nadziei, że ktoś w przyszłości uzna to za przydatne.
Jeśli zainstalowałeś pakiet za pomocą aptitude, automatycznie przypisuje flagi do zależności (auto), a kiedy próbujesz usunąć pakiet ponownie, próbuje usunąć wszystkie jego zależności, które mają wciąż ustawioną flagę auto.
Jak widać w moim przypadku, to zabbix, który chcę usunąć:
A jeśli spojrzymy na pakiet apache, wygląda to tak
pierwsza flaga „i” mówi nam, że apache jest zainstalowany
Następna flaga „A” oznacza automatycznie zainstalowaną
Aby to naprawić i nie mając odinstalowanego apache, mysql i php, możemy po prostu usunąć flagę auto z następującymi umiejętnościami:
Teraz wygląda to tak podczas usuwania pakietu zabbix:
Zajrzyj na stronę podręcznika man, aby uzyskać więcej informacji
źródło
Właśnie po to
apt-mark hold
jest.apt-mark hold package_name
Z dokumentacji:
Aby zatrzymać pakiet:
apt-mark unhold package_name
źródło
The following packages have unmet dependencies: mysql-server-5.7 : Depends: apparmor (>= 2.10) but it is not going to be installed E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
AFAIK nie ma możliwości usunięcia pakietu za pomocą APT bez usunięcia również tych pakietów, które od niego zależą.
Odniesienie: http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html
źródło
Aby uzupełnić odpowiedź João Pinto, możesz użyć mojego małego skryptu, aby naprawić uszkodzony pakiet, ten skrypt utworzy atrapę pakietu z ekwiwalentami i zainstaluje go. Artykuł na moim blogu możesz znaleźć w języku francuskim .
Lub bezpośrednio w kodzie gist .
Aby go użyć:
źródło