ia32-libs
Pakiet nie jest już obecne w repozytoriach Ubuntu 12.04 dla systemu 64-bitowego. Czy są dostępne jakieś dostępne pakiety zastępcze do pobrania?
ia32-libs
Pakiet nie jest już obecne w repozytoriach Ubuntu 12.04 dla systemu 64-bitowego. Czy są dostępne jakieś dostępne pakiety zastępcze do pobrania?
Odpowiedzi:
Pakiet ia32-libs był włamaniem do zainstalowania pakietów 32-bitowych w instalacji 64-bitowej. Od wersji Ubuntu 11.10 (Oneiric) dodano Multi Arch . Jednym z celów jest usunięcie ia32-libs
pakietu. Zamiast tego musisz zainstalować 32-bitowe biblioteki pakietu z:
sudo apt-get install package-name:i386
Nie musisz się o to martwić w przypadku pakietów w standardowych repozytoriach (np. wine
Pakiecie). W przypadku oprogramowania zewnętrznego jest to nieco trudniejsze, ponieważ musisz ręcznie znaleźć zależności. W takim przypadku użyj swojej ulubionej wyszukiwarki, aby znaleźć biblioteki, których potrzebujesz.
Wygląda na to, że ia32-lib nadal istnieją, ale jedynie jako pakiet wygody obejmujący wspólne biblioteki 32-bitowe. Ten pakiet używa teraz Multi Arch do prawidłowej instalacji pakietów 32-bitowych.
ldd
, przekazując ścieżkę do pliku binarnego jako argument. Jeśli dane wyjściowe zawierają wiersz podobny libz.so.1 => not found
, musisz znaleźć libz.so.1
. Możesz użyć Package.ubuntu.com lub apt-file search
znaleźć pakiet zawierający ten plik. W podanym przykładzie musisz zainstalować zlib1g:i386
.
package-name
rzeczywistą nazwą. Użyj, ldd
aby dowiedzieć się, patrz drugi komentarz powyżej.
ia32-libs
Pakiet został całkowicie zastąpiony lib32z1 lib32ncurses5 lib32bz2-1.0
. Nie powinno to stanowić problemu, ponieważ jego funkcjonalność nadal istnieje, tylko w innych pakietach. Jednak nie żyjemy w idealnym świecie, w którym wszyscy przechowują swoje pakiety, a całe oprogramowanie to FLOSS, więc niektóre pakiety nadal zależą od ia32-lib.
Istnieją 2 sposoby:
ia32-libs
już od niego. (preferowane)Jako przykładu użyję odbiornika citrix, ale możesz użyć tej metody dla dowolnego pakietu .deb:
Najpierw pobierz pakiet .deb odbiornika citrix ze strony internetowej i zrób hakowanie w katalogu tymczasowym.
mkdir ica_temp
Wyodrębnij paczkę
dpkg-deb -x icaclient_13.0.0.256735_amd64.deb ica_temp
dpkg-deb --control icaclient_13.0.0.256735_amd64.deb ica_temp/DEBIAN
Otwórz plik w gedit (lub ulubionym edytorze)
sudo -H gedit ica_temp/DEBIAN/control
Znajdź linię, która zaczyna się od Depends:...
. usuń ia32-libs
i dodajlib32z1 lib32ncurses5 lib32bz2-1.0
Odbuduj zmodyfikowany pakiet
dpkg -b ica_temp icaclient-modified.deb
I zainstaluj to
sudo dpkg -i icaclient-modified.deb
sudo apt-get install -f
Zainstalowanie odbiornika citrix również wymaga hakowania. Pełną instrukcję instalacji można znaleźć na wiki Ubuntu
Możesz to zrobić z dowolnym starym pakietem .deb, który nadal zależy od ia32-libs.
Pamiętaj, że instalowanie starych pakietów jest bardzo złą praktyką! Niestety, w przypadku niektórych instalatorów binarnych nie masz innego wyboru.
Możesz pobrać pakiet ia32-libs z rzadkiego repozytorium . Pobierz go i zainstaluj ręcznie, a następnie zależności powinny zostać rozwiązane.
Przeczytałem, że ia32-libs-multiarch
zamiast tego powinieneś zainstalować pakiet. Jednak to nie zadziałało i pojawia się ten błąd
ia32-libs-multiarch:i386 : Depends: libgphoto2-2:i386 but it is not going to be installed.
Rozwiązaniem, które działało dla mnie, było zainstalowanie następujących pakietów:
sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386
Jeśli pojawi się ten błąd, spróbuj:
sudo apt-get update
Następnie spróbuj ponownie:
sudo apt-get install ia32-libs
Właśnie wykonałem nową instalację 12.04, ten pakiet jest nadal dostępny w repozytoriach. W rzeczywistości sam dostałem ten błąd, zanim uruchomiłem aktualizację. Potem działało dobrze.
Uważam, że ten konkretny przypadek użycia został zastąpiony pakietami „lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2”, co jest prawdopodobnie bardziej szczegółową i przydatną odpowiedzią niż stwierdzenie „możesz używać wielu programów”.
Zainstalowałem biblioteki ia32-lib w ten sposób (uruchamiam Ubuntu 13.04 Raring Ringtail na komputerze 64-bitowym):
Sprawdź własną architekturę:
$ dpkg --print-architecture
Sprawdź, czy jest zainstalowana obca architektura:
$ dpkg --print-foreign-architectures
W zależności od wyników dwóch powyższych poleceń mogą działać następujące trzy polecenia (w moim przypadku zajęło to dużo czasu):
$ sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install ia32-libs
Package ia32-libs is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: lib32z1 lib32ncurses5 lib32bz2-1.0