ia32-libsPakiet 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?
+1, chciałem zadać dokładnie to samo pytanie. SO ma naprawdę świetne sugestie dotyczące pytań!
ulidtko
Odpowiedzi:
97
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-libspakietu. 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. winePakiecie). 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.
Cóż, jak można znaleźć wszystkie zależności i pierwszą instalację: i386 z nich?
user117
10
@wingman Run 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 searchznaleźć pakiet zawierający ten plik. W podanym przykładzie musisz zainstalować zlib1g:i386.
Lekensteyn,
1
Jestem na komputerze z Ubuntu 10.10. po kilku tutorialach na temat rozwoju Androida muszę zainstalować ia32-libs. Twoja odpowiedź mówi o 11.10, ale dla tego komputera? co muszę zrobić?
nkint,
1
@nkint 10.10 nie jest już obsługiwany. Jeśli chcesz kontynuować, musisz zmienić źródła pakietu . W 10.10 musisz zainstalować ia32-libs. Ale nawet wtedy nie ma gwarancji, że zestaw SDK systemu Android będzie z tym działał.
Lekensteyn
1
@FelipeMicaroniLalli Musisz zastąpić package-namerzeczywistą nazwą. Użyj, lddaby dowiedzieć się, patrz drugi komentarz powyżej.
Lekensteyn
43
Ubuntu 13.10
Co się stało?
ia32-libsPakiet 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.
Jak mogę zainstalować pakiet x, który zależy od ia32-libs
Istnieją 2 sposoby:
Możesz przepakować go ręcznie, aby nie zależało ia32-libsjuż od niego. (preferowane)
Możesz zainstalować ia32-libs z repozytorium Ubuntu 13.04 (Raring Ringtail) ( wcale nie preferowane !, tylko jeśli pierwsza metoda nie działa )
1. Zapakuj stare paczki
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.
@Elipticalview „Bezpłatne i otwarte oprogramowanie”. Zmieniono na FLOSS (darmowy / darmowy i oprogramowanie typu open source), co jest bardziej powszechne.
Galgalesh
„Przepakowywanie starych pakietów” działa głównie w Ubuntu 16.04 Xenial - wystarczy dodać kilka dostosowań do nazw pakietów, zwykle dodając przestrzeń nazw „: i386” na końcu nazw pakietów. Niektóre pakiety mają również inne nazwy, na przykład libbz2-1.0: i386
Christian Benke
6
Przeczytałem, że ia32-libs-multiarchzamiast 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:
Działa również dla elementarnego systemu operacyjnego luna
camelCaseD
4
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”.
Co? W tym pytaniu nie ma konkretnego przypadku użycia.
gertvdijk
1
@gertvdijk: Sam pakiet reprezentuje ograniczony przypadek użycia; dla bardziej ogólnego celu możesz korzystać z wielu programów, ale dla osób, które korzystały wcześniej z tego jednego pakietu, wydaje się, że został on zastąpiony przez „lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2”, który możesz zainstalować bez konieczności korzystania z multi-arch : obejmuje te same przypadki użycia, co poprzedni pakiet. Zasadniczo uznałem te odpowiedzi za nieprzydatne, ponieważ multi-arch był przesadny z powodu istnienia ia32-libs, był zaskoczony, że nie było bardziej bezpośredniego zastąpienia, i nie zawiodłem się, gdy zbadałem to dalej.
saurik
To była najprostsza odpowiedź, która rozwiązała dla mnie podobny problem. Chociaż wskazane biblioteki nie wydają się mieć nic wspólnego z uruchomieniem ogólnego pliku binarnego, działało.
Per Knytt,
-2
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):
Dostaję: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
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: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.
źródło
ldd
, przekazując ścieżkę do pliku binarnego jako argument. Jeśli dane wyjściowe zawierają wiersz podobnylibz.so.1 => not found
, musisz znaleźćlibz.so.1
. Możesz użyć Package.ubuntu.com lubapt-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.Ubuntu 13.10
Co się stało?
ia32-libs
Pakiet został całkowicie zastąpionylib32z1 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.Jak mogę zainstalować pakiet x, który zależy od ia32-libs
Istnieją 2 sposoby:
ia32-libs
już od niego. (preferowane)1. Zapakuj stare paczki
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.
Wyodrębnij paczkę
Otwórz plik w gedit (lub ulubionym edytorze)
Znajdź linię, która zaczyna się od
Depends:...
. usuńia32-libs
i dodajlib32z1 lib32ncurses5 lib32bz2-1.0
Odbuduj zmodyfikowany pakiet
I zainstaluj to
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.
2. Zainstaluj ia32-libs z repozytorium Raring
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.
źródło
Przeczytałem, że
ia32-libs-multiarch
zamiast tego powinieneś zainstalować pakiet. Jednak to nie zadziałało i pojawia się ten błądRozwiązaniem, które działało dla mnie, było zainstalowanie następujących pakietów:
źródło
Jeśli pojawi się ten błąd, spróbuj:
Następnie spróbuj ponownie:
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.
źródło
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”.
źródło
Zainstalowałem biblioteki ia32-lib w ten sposób (uruchamiam Ubuntu 13.04 Raring Ringtail na komputerze 64-bitowym):
Sprawdź własną architekturę:
Sprawdź, czy jest zainstalowana obca architektura:
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):
źródło
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