Mam wrażenie, że coś nieźle skopałem z zależnościami. Opisze co zrobiłem, może ktoś będzie wiedział, jak to cofnąć. Chciałem zainstalować program Tmux 1.3 (w repozytoriach Ubu Lucid jest 1.1), więc ściągnąłem paczkę deb. Okazało się, że wymaga nowszego libncurses5, więc je też ściągnąłem. Pojawił się konflikt z libncurses5-dev, więc też ściągnąłem nowsze. Tutaj zaczęły się schody. libncurses5-dev nie chciał się wgrać, bo miałem za stare libncurses5, a nie mogłem wgrać nowszego, bo stare libncurses5-dev by z nim nie współpracowało. Błędne koło. Niewiele myśląc, wykonałem dpkg --install libncurses5 libncurses5-dev, chciałem zobaczyć czy to coś da. Wgrał się tylko libncurses5, za to przy próbie ponownego wgranie libncurses5-dev system zasugerował mi apt-get install -f, by naprawić błędy. Usunęło to najwyraźniej nie w pełni zainstalowane libncurses5-dev. Wydaje mi się, że wgrałem jeszcze raz libncurses5 (na wszelki wypadek), ale tego nie jestem pewny. Tmux zainstalował się bez problemu. Teoretycznie wszystko działa, ale zostałem bez libncurses5-dev, które jest mi potrzebne. Przy próbie wgrania nowego, okazuje się, że nie mam libncurses5 w potrzebnej wersji (chociaż mam dokładnie takie). Gdy próbuję usunąć libncurses5 (by wgrać z powrotem starą wersję), apt-get chce mi usuwać pół systemu.
Nie obchodzi mnie już nowy Tmux, chcę tylko, żeby system wrócił do normy. Rozważam dodanie repozytoriów Mavericka (czego chciałem uniknąć, bo nie chcę na razie upgrade’ować systemu) i pokombinowanie z nimi, ale nie chcę popsuć nic bardziej, niż jest teraz popsute.
Mam nadzieję, że ktoś wie co z tym zrobić. Ratunku!
UWAGA: To jest tylko symulacja!
apt-get wymaga normalnie praw administracyjnych dla działania.
Aktualnie blokowanie jest wyłączone, więc nie należy polegać
na związku z rzeczywistą sytuacją!
Czytanie list pakietów...
Budowanie drzewa zależności...
Odczyt informacji o stanie...
Nie udało się zainstalować niektórych pakietów. Może to oznaczać,
że zażądano niemożliwej sytuacji lub używasz dystrybucji niestabilnej,
w której niektóre pakiety nie zostały jeszcze utworzone lub przeniesione
z katalogu Incoming ("Przychodzące").
Następujące informacje mogą pomóc rozwiązać sytuację:
Następujące pakiety mają niespełnione zależności:
libncurses5-dev: Wymaga: libncurses5 (= 5.7+20090803-2ubuntu3) ale nie zostanie zainstalowany
E: Pakiety są uszkodzone
A odwrotnie? Bo z tego co widzę to u mnie zainstalowane jest libncurses5, a nie wersja deweloperska. Spróbuj jeszcze:
apt-get -s remove libncurses5-dev libncurses5+
Co do pierwszego, to rzeczywiście chce wywalić połowę systemu. Ubuntu akurat jest mocno zintegrowane, bo system powinien być jednolity stąd te problemy z zależnościami.
UWAGA: To jest tylko symulacja!
apt-get wymaga normalnie praw administracyjnych dla działania.
Aktualnie blokowanie jest wyłączone, więc nie należy polegać
na związku z rzeczywistą sytuacją!
Czytanie list pakietów...
Budowanie drzewa zależności...
Odczyt informacji o stanie...
Pakiet libncurses5-dev nie jest zainstalowany, więc nie zostanie usunięty.
libncurses5 jest już w najnowszej wersji.
0 aktualizowanych, 0 nowo instalowanych, 0 usuwanych i 0 nieaktualizowanych.
ii libncurses5 5.7+20100626-0ubuntu1 shared libraries for terminal handling
Drugie polecenie nic nie robi, więc nie ma sensu wklejać wyjścia - nic ciekawego. Ciekawe czy pomogłoby zaktualizowanie systemu do Mavericka, gdy już wyjdzie stabilny. W końcu, te paczki są wyjęte z jego repozytoriów. Chyba, że dałoby się dodać te repozytoria bez aktualizacji systemu (i żeby sam się nie próbował potem aktualizować), ale tak dobrze chyba nie ma.
Mój błąd, bo miałem na początku na myśli pobieranie przez apt-get ale pomyślałem, że może odmówić posłuszeństwa Tak, ścieżkę masz zmienić na taką gdzie pobrałeś paczkę.
Chyba nie pomogło. Dalej nie mogę wgrać ani z repo, ani ręcznie. Boję się, że skończy się reinstalacją. Doceniłem właśnie emerge’a z Gentoo. Wywaliłbym 2-3 pakiety, zamaskowałbym nowe wersje i wgrał na nowo. Muszę się chyba pospieszyć z przeprowadzką na Gentoo… Pomijam fakt, że tam jest wersja 1.3 w repo i nie ma takich cyrków.
Oczywiście, jeśli masz jakiś jeszcze pomysł, to chętnie wypróbuję.
Ale po wypakowaniu tego pakietu do / dalej jest problem z zależnościami? Spróbuj jeszcze zainstalować ten pakiet przy pomocy dpkg. Jeszcze można by spróbować przyszpilić pakiet niższej wersji to może odpuści.
Zainstalowałem przy pomocy dpkg i udało się. Wywaliłem tmux 1.3 i zainstalowałem tmux 1.1 i libncurses5-dev. Programy wykorzystujące ncurses się kompilują czyli chyba działa. Tmux 1.3 jednak nie jest mi AŻ TAK potrzebny. Zwłaszcza, że znalazłem w nim kilka błędów, które nie występują w 1.1 (1.2 też je zawiera, bo na Gentoo próbowałem, może w 1.4 będzie lepiej).
Dzięki za uratowanie systemu!
Mógłbyś mi jeszcze napisać co robi ‘+’ w apt-get? W manpage’u nic nie ma (przynajmniej kiedy szukam plusa), a nie zaszkodzi wiedzieć.
Przy poleceniu apt-get remove plus oznacza, że dany pakiet ma być zainstalowany, tzn. usuwasz jakiś pakiet i chcesz od razu zainstalować inny, dla przykładu, chcesz usunąć pakiet_a i zainstalować pakiet_b, więc zamiast się rozdrabniać na dwa polecenia
w tym wypadku pakiet_a będzie usunięty, a plus oznacza, że pakiet_b ma zostać zainstalowany. Odwrotnie jest w przypadku apt-get install, jak chcesz zainstalować pakiet_a i usunąć pakiet_b, to po jego nazwie stawiasz minus i wygląda to tak:
sudo apt-get install pakiet_a pakiet_b-
Co oznacza, że pakiet_a zostanie zainstalowany, a pakiet_b usunięty. Z tego co widzę, to w podręczniku Apt-Get nie zostało to opisane ale można to znaleźć w podręczniku Aptitude