Próbując uruchomić niektóre klejnoty rubinowe, odkryłem, że muszę zainstalować pakiet dev ruby, który najwyraźniej wymagał dev libc6. Kiedy próbowałem go zainstalować (używając zatwierdzonego apt-source squeeze), odkryłem, że najnowszy libc6-dev nie jest zsynchronizowany z moją bieżącą wersją libc.
Okazuje się, że wersja libc6, której powinienem używać (zgodnie z apt) powinna mieć wersję libc6 2.11.3-2. Zamiast tego jestem na libc6 2.13-7. W pewnym momencie użytkownik musiał użyć źródłowego źródła, aby coś zrobić, i złapał nowego libc6.
Moje pytanie brzmi: jeśli chcę przywrócić zgodność z zatwierdzonymi wersjami mojego systemu operacyjnego, czy muszę odinstalować libc6 i wszystkie jego programy zależne, a następnie ponownie zainstalować je za pomocą apt-get, czy też istnieje lepszy sposób, aby to zrobić ?
Odkryłem również, że najnowsza wersja libc6-dev jest niezgodna z obecną wersją gcc, którą posiadam (4.4), więc kontynuowanie nie jest możliwe, chyba że ja też to zrobię.
EDYCJA: Rozwiązaniem, którego używaliśmy, było użycie aptitude do pobrania plików .deb, a następnie użycie dpkg do ich zainstalowania.
Na przykład przejdź do / var / cache / apt / archives (tylko, aby zachować je w tym samym miejscu, w którym umieści je apt-get)
wykonaj następujące czynności:
aptitude download libc6 -t squeeze
dpkg --force-depends -i <name of package>.deb
To rozwiązało ten problem, ale oczywiście spowodowało inny zestaw problemów zależności. Każdy z nich można rozwiązać w ten sam sposób.
aptitude download libc-bin -t squeeze
dpkg --force-depends -i <name of package>.deb
źródło
Odpowiedzi:
Zgodnie z repozytorium pakietów Debiana Squeeze używa wersji 2.11.3-2 libc6, więc jeśli masz zainstalowaną nowszą wersję, prawdopodobnie śledzisz Wheezy, Sid, jakieś inne nieoficjalne repozytorium lub ręcznie zainstalowałeś libc6. Sprawdź swoje
/etc/apt/sources.list
i/etc/apt/sources.list.d/*
Tak czy inaczej, możesz zainstalować żądaną wersję za pomocą Menedżera pakietów Synaptic . Otwórz go, zlokalizuj pakiet, wybierz z menu Pakiet -> Wymuś wersję . Tam możesz wybierać spośród wersji dostępnych w skonfigurowanych źródłach.
Edytować:
APT ma do tego komendę konsoli,
apt-get install <package>=<version>
poza tym możesz także określić wydanie Debiana, którego chcesz używać (dotyczy automatycznego przypinania), pod warunkiem, że jest ono w twoich źródłach, zapt-get -t squeeze install <package>
(lubstable
zamiastsqueeze
) i możesz również=<version>
tutaj użyć . Wykonaj wszystkie polecenia jako root. Po przywróceniu z eksperymentalnej do stabilnej w tym przypadku zależności mogą powodować bałagan, więc może być konieczne ręczne obniżenie pakietów, od których zależy także libc6, i być może także jego zależności.Możesz także zrobić wszystko ręcznie bez sprawdzania zależności (niezalecane, jeśli nie masz pewności, co zrobić, jeśli coś się zepsuje), najpierw pobierając pakiet
apt-get download libc6
, a następnie przejdź do miejsca, w/var/cache/apt/archives/
którym APT przechowuje pobrane pakiety i wydaje jedpkg --force-downgrade -i <full_package_name>.deb
jako root. Podczas wprowadzania nazwy pobranego pakietu wpisz,libc6
a następnie użyj funkcji autouzupełniania TAB, aby to ułatwić.źródło
sortowanie sources.list -> pobieranie pakietu i robienie siły downgrade działało dla mnie! potem wszystko, co musiałem zrobić, to
I &
źródło