Mam Ubuntu 14.04. Niedawno pobrałem Viber . Plik .deb Viber ma architekturę 64-bitową. Chcę zainstalować na swoim komputerze, ale mój komputer obsługuje tylko wersje 32-bitowe.
Wynik działania lscpu
jest następujący:
Architecture: i686
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 23
Stepping: 10
CPU MHz: 2800.000
BogoMIPS: 5586.12
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 2048K
software-installation
Umar Mukthar
źródło
źródło
lscpu
w terminalu?Odpowiedzi:
Pod warunkiem, że twój sprzęt obsługuje 64 bity, co:
i pakiet został przygotowany do używania multiarch, co również jest prawdą:
możesz po prostu zainstalować niezbędne 64-bitowe biblioteki i pliki binarne, które zależą od pakietu (czego już nie ma, więcej o tym później), które musisz uruchomić, z wirtualnym zerowym spadkiem wydajności. W moim przypadku właśnie zainstalowałem pakiet:
A potem zaczęły się pojawiać problemy ...
Menedżerowie pakietów zdecydowali, że nie powinni wymieniać żadnych zależności dla swojego pakietu,
których tak naprawdę potrzebują:
więc musisz znaleźć i zainstalować brakujące biblioteki ręcznie! Jest to łatwe, jeśli znasz odpowiednie narzędzia.
apt-file
przydaje się tutaj, również funkcjonalność http://packages.ubuntu.com „Przeszukaj zawartość pakietów” również jest w porządku. Ale poszedłem naprzód i szukałem ich:Te pliki są już zainstalowane w moim systemie, wystarczy skopiować nazwę pakietu, przed dwukropkiem, który kończy się
amd64
. Powinieneś skopiować nazwy pakietów takimi, jakimi są:Nie miałem ich zainstalowanych, które uzyskałem za pomocą
ldd /opt/viber/Viber | grep 'not found' | awk '{printf "%s$\n", $1}' | apt-file search -x -a amd64 -f - | sed 's/\:/:amd64:/'
:apt-file
było złośliwie podarować mi pakiety 64-bitowe, więc musiałem to zrobić,sudo apt-file -a amd64 update
aby zmusić go do posiadania listy plików 64-bitowych.Teraz pozwól mi wyjaśnić, co to wszystko:
ldd /path/to/binary
: czyta plik binarny i informuje, jakie są wymagane biblioteki, symbole itp.dpkg -S
: wyszukaj, które pakiety zapewniają konkretnie zainstalowany plik.awk
,sed
igrep
: modyfikują strumień tekstu, aby przetwarzać tylko interesujące części lub wyświetlać pożądany wynik.|
,$(...)
: pierwszy pozwala mi przesyłać dane wyjściowe polecenia do drugiego, a później pozwala mi wykonać / ocenić polecenie, zanim główne zostaną wykonane.TL; dr wystarczy zainstalować te pakiety:
Musisz także zainstalować 64-bitowe jądro.
źródło
sudo dpkg --add-architecture amd64
.Nie jest możliwe zainstalowanie oprogramowania obsługującego tylko 64-bitowy arch w 32-bitowym systemie operacyjnym, podczas gdy jest odwrotnie. Aby zainstalować 64-bitowe oprogramowanie, potrzebujesz sprzętu obsługującego 64-bitowy i 64-bitowy system operacyjny działający na nim.
Chciałbym również wspomnieć, że nie można zainstalować 64-bitowego systemu operacyjnego jako maszyny wirtualnej na sprzęcie obsługującym tylko architekturę 32-bitową. Twój sprzęt powinien obsługiwać architekturę 64-bitową wraz z obsługą wirtualizacji w celu tworzenia 64-bitowych maszyn wirtualnych.
źródło
Muszę powiedzieć, że nie jesteś prawdą
Zgodnie z wynikami działania
lscpu
zainstalowanej wersji Ubuntu, która jest 32-bitowa, podczas gdy Twój system może obsługiwać 64-bitową aplikację, jeśli chcesz zainstalować 64-bitową aplikację, musisz zainstalować 64-bitowy system operacyjny Ubuntu. zobacz poniższe linie poniżej:Pobierz i zainstaluj 64-bitowy Ubuntu 14.04.1, a następnie zainstaluj również Viber .
źródło
Możesz zainstalować 64-bitowe oprogramowanie na maszynie zbudowanej z 32-bitowym sprzętem w taki sam sposób, w jaki możesz uruchomić powiedzmy oprogramowanie ARM na celu x86, używając translacji dynamicznej.
Zasadniczo oprogramowanie, takie jak qemu, znajduje się pomiędzy programami a komputerem, wykonując tłumaczenie z zestawu instrukcji AMD64 na zestaw x86 (prawdopodobnie i686) ( co prawda z bardzo poważnym spadkiem wydajności, co w twoim przypadku może być całkowicie możliwe do uniknięcia).
Biorąc pod uwagę, że używasz Ubuntu, masz doskonałą dokumentację, jak to skonfigurować . Zasadniczo masz jedną z dwóch opcji, możesz albo uruchomić program w kompletnym 64-bitowym środowisku VM z własnym jądrem lub, co myślę, że chcesz tutaj, to wizualizacja przestrzeni użytkownika, używa to thunkowania (nie sądzę, że jest to powszechne o nazwie thunking, ale zapomnij o nowym słowie), aby przetłumaczyć wywołania systemowe z 64 do 32 bitów, abyś mógł użyć własnego jądra.
Teraz przewodnik wyjaśnia to lepiej niż ja, ale w skrócie musisz zainstalować pakiety qemu i qemu-kvm-extras-static, a następnie użyć qemu-debootstrap do skonfigurowania środowiska i bibliotek dla swojego 64-bitowego programu. Następnie musisz użyć binfmt_misc i statycznego interpretera qemu (qemu-arch-static, w twoim przypadku prawdopodobnie x86_64, x64 lub AMF64), aby uruchomić swój program w jego środowisku.
Pamiętaj jednak, że twój procesor wydaje się obsługiwać instrukcje 64-bitowe, więc może być możliwe zainstalowanie 64-bitowego systemu Ubuntu, możesz bez emulacji uruchomić kod x86 na maszynie AMD64, a jeśli możesz to zrobić, może to być łatwiejsze, jeśli z drugiej strony chcesz odkryć qemu i emulację świata architektury (może przyjść później, jeśli dostaniesz program zbudowany na przykład ... ARM, taki jak coś zbudowanego dla telefonu) Polecam iść dalej, ale uważaj , rzeczy czasem wymagają trochę majstrowania lub debugowania, zanim zaczną działać.
źródło
Przeczytaj o aplikacjach 32-bitowych (x86) i 64-bitowych:
http://www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm
Czasami może się zdarzyć, że aplikacja lub pojedynczy pakiet [jeden plik .deb] będą działać jako oba po instalacji.
tj.
x86 app on x86 OS
ix64 app on x64 OS
źródło
x86 application on x64 OS
.Jeśli korzystasz z 32-bitowego systemu
sudo dpkg --force-architecture -i viber.deb
link: Jak zainstalować Viber na Ubuntu 13.10, 32bit
źródło