Jak zainstalować 32-bitowy zastrzeżony debet w 64-bitowym systemie bez powodowania problemów z zależnościami?

15

Wiem, że Guitar pro nie obsługuje wersji 64-bitowej, ale udało mi się pracować z tym poleceniem

jeggy@jeggy-XPS:~$ sudo dpkg --force-architecture -i GuitarPro6-rev9063.deb
[sudo] password for jeggy: 
Selecting previously unselected package guitarpro6:i386.
(Reading database ... 285729 files and directories currently installed.)
Unpacking guitarpro6:i386 (from GuitarPro6-rev9063.deb) ...
dpkg: dependency problems prevent configuration of guitarpro6:i386:
 guitarpro6:i386 depends on gksu.
dpkg: error processing guitarpro6:i386 (--install):
 dependency problems - leaving unconfigured
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...
Errors were encountered while processing:
 guitarpro6:i386

I nawet po otrzymaniu tego błędu program działa doskonale, a aktualizacja i dodawanie PPA do systemu działa świetnie, ale gdy próbuję zainstalować inne oprogramowanie, pojawia się ten błąd:

jeggy@jeggy-XPS:~$ sudo apt-get install elinks
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 elinks : Depends: libfsplib0 (>= 0.9) but it is not going to be installed
          Depends: liblua50 (>= 5.0.3) but it is not going to be installed
          Depends: liblualib50 (>= 5.0.3) but it is not going to be installed
          Depends: libtre5 but it is not going to be installed
          Depends: elinks-data (= 0.12~pre5-7ubuntu1) but it is not going to be installed
 guitarpro6:i386 : Depends: gksu:i386 but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

I za każdym razem, gdy piszę „apt-get -f install”, dostaję to

jeggy@jeggy-XPS:~$ sudo apt-get -f install
[sudo] password for jeggy: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  dconf-gsettings-backend:i386 python-levenshtein python-indicate libav-tools libstartup-notification0:i386
  libxmuu1:i386 libavfilter-extra-2 libbabl-0.0-0 libgegl-0.0-0 libgconf2-4:i386 python-vobject libgtk-3-0:i386
  libpam-cap:i386 python-utidylib libdconf0:i386 python-iniparse python-xmpp libpam-gnome-keyring:i386
  libxcb-util0:i386 python-farstream
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  guitarpro6:i386
0 upgraded, 0 newly installed, 1 to remove and 7 not upgraded.
1 not fully installed or removed.
After this operation, 84,0 MB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 286979 files and directories currently installed.)
Removing guitarpro6:i386 ...
dpkg: warning: while removing guitarpro6:i386, directory '/opt/GuitarPro6/updater' not empty so not removed.
dpkg: warning: while removing guitarpro6:i386, directory '/opt/GuitarPro6/Data/Soundbanks' not empty so not removed.
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...

A teraz Guitar Pro został usunięty.
Jak mogę zainstalować Guitar Pro i nadal móc zainstalować inne oprogramowanie?

Jeggy
źródło

Odpowiedzi:

30

Ostrzeżenie:

Guitar Pro deb jest niebezpiecznie zapakowany!

  • W systemie 64-bitowym, jeśli apt-get -f installspróbujesz go zainstalować, apt-getbędziesz chciał usunąć następujące krytyczne pakiety systemowe , które mogą zepsuć instalację Ubuntu!

    USUNIĘTE zostaną następujące pakiety:
     gksu guitarpro6: i386 libgksu2-0 libpam-gnome-keyring  sudo ubuntu-desktop
    ubuntu-minimal update-manager update-notifier xauth xinit  xorg
  • sudo ? menedżer aktualizacji ? X! Co myślą deweloperzy ?! Sprawia również, apt-getże wiele pakietów i386 jest instalowanych, gdy nie ma ich wcale. Oto pełna krwawych pastebin.


Bezpiecznie zainstaluj GuitarPro, nie apt-getchcąc go usuwać

  • Wierzę, że powyższe zachowanie wynika z głupiej zależności deba gksu:i386(która jest graficznym pakietem elewacji katalogu głównego)
  • Niestety, jedynym bezpiecznym sposobem zainstalowania i nie mają do czynienia z apt-get„s marudzenie jest, aby ręcznie zainstalować go i jego zależności. Oto jak:

Jak ręcznie sprawdzić i bezpiecznie zainstalować binarny deb i386 z jego zależnościami

  • Najpierw usuń bieżący w połowie zainstalowany pakiet sudo dpkg --remove guitarpro:i386
  • Teraz przejdź do katalogu, w którym znajduje się plik deb. Aby ułatwić pisanie, stwórzmy krótkie dowiązanie symboliczne - mój deb nazywa się gp6-full-linux-demo-r11100.deb, twój może się różnić:
    • ln -s gp6-full-linux-demo-r11100.deb gp6.deb

1. Sprawdź architekturę i zależności deb

Najpierw sprawdzamy zależności deb bez instalowania go.

  • dpkg-deb -I gp6.deb pokazuje nam:

     nowy pakiet debian, wersja 2.0.
    rozmiar 172147458 bajtów: archiwum sterujące = 75020 bajtów.
     375 bajtów, 10 linii kontroluje 
    335109 bajtów, 2770 linii md5 sum
    Pakiet: GuitarPro6 Wersja: 6.1.3 Sekcja: non-free / audio Priorytet: opcjonalny Architektura: i386 Zależy: libc6 (> = 2.1.3), libstdc ++ 6, libasound2, libxml2, libxslt1.1, libportaudio0, libportaudio2, libglu1-mesa, gksu, libssl0.9.8 Zainstalowany rozmiar: 222632 Maintainer: Arobas Music Opis: http://www.guitar-pro.com Guitar Pro 6, wersja dla systemu Linux.

  • Jest to więc aplikacja i386, a wszystkie jej zależności będą również i386.

  • Pierwszą rzeczą do zrobienia jest zainstalować ia32-libspakiet zgodności i386, jeśli nie ma już:
    • sudo apt-get install ia32-libs
  • Skopiujmy i wklejmy zależności pakietu do pliku tekstowego, na później.

2. „Wyodrębnij” deb do archiwum tar i sprawdź jego zawartość

  • Załóżmy wyodrębnić deb do archiwum tar teraz więc możemy zbadać jego zawartość bez konieczności jego instalacji:
    • dpkg-deb --fsys-tarfile gp6.deb > gp6.tar
  • I otwórz Menedżera plików (Nautilus) i zamontuj gp6.tarjako archiwum, klikając prawym przyciskiem myszy i wybierając Otwórz w narzędziu do archiwizacji ; po tym zobaczysz gp6.tardodany do dołu lewy pasek boczny, a obok niego ikona wysuwania:

    wprowadź opis zdjęcia tutaj

  • Przejdź do menu Widok dla Menedżera plików i zmień pasek boczny na opcję Widok drzewa zamiast Miejsc :

    wprowadź opis zdjęcia tutaj

  • Teraz rozwiń gp6.tardrzewo na pasku bocznym, klikając trójkąty; powtarzaj dla każdego poziomu, aż zobaczysz strukturę folderów pliku:

    wprowadź opis zdjęcia tutaj

  • Ze struktury widzimy, że pliki programu znajdują się w dwóch lokalizacjach: /opti /usr/share:

    • Wszystko, co wchodzi w grę, /optjest samodzielne i nie wpłynie na nic innego w systemie.
    • Widzimy, że /usr/sharezawiera tylko ikony / mapy bitowe, które są nieszkodliwe.

3. Jeśli jest to bezpieczne, „zainstaluj” program, rozpakowując plik tar

  • Wróć do terminala i upewnij się, że znajdujesz się w katalogu zawierającym pobrane pliki deb / tar. Następnie wpisz:

    sudo tar -C / -xvf gp6.tar
    
  • Spowoduje to wyodrębnienie plików programu w odpowiednich lokalizacjach, pokazując nazwy plików i postępy. ( Próbka wyjściowa )

    • -CPrzełącznik mówi tardo wykonywania operacji w stosunku do tego katalogu, a nie w bieżącym katalogu.

4. Dowiedzieć się, jakich zależności brakuje ldd, zainstaluj je i ruszaj się!

  • Otwórz /opt/GuitarPro6folder w Menedżerze plików:

    wprowadź opis zdjęcia tutaj

    • Widzimy, że plik wykonywalny nazywa się GuitarPro (z diamentową ikoną „kół zębatych”), a także że w lib-xxxxfolderze znajduje się wiele plików.
    • Jest to normalne w przypadku programów tylko binarnych; starają się uwzględnić wersje określonych bibliotek, których potrzebują, ponieważ mogą one być niedostępne w repozytoriach określonej dystrybucji.
  • Wraz z dołączonymi bibliotekami i ia32-libspakietem powinno się zainstalować większość 32-bitowych zależności. Zamiast ślepo instalowania zależności widzieliśmy w informacji pliku deb poprzez apt-get--which może powodować postać problems-- Chodźmy się, czy jesteśmy rzeczywiście brakuje niczego.

    • Wróć do terminala i przejdź do katalogu GuitarPro za pomocą cd /opt/GuitarPro6

Za pomocą ldd

  • Wpisz ldd GuitarPro | grep found, a wynik będzielibportaudio.so.2 => not found

    • lddwypisuje zależności (biblioteki współdzielone) programu i określa, czy istnieją w systemie. Oto, jak wygląda pełna moc GuitarPro.
    • Aby ułatwić życie, po prostu filtrujemy te, które nie istnieją grep found.
  • Tutaj brakuje tylko biblioteki libportaudio2 . Ale zależności powiedział libportaudio 0 ? (patrz krok 1.) Co to jest?

    • Wyszukajmy dostępne wersje za pomocą apt-cache search libportaudioterminala.
    • To mówi nam, że zarówno libportaudio2 i libportaudio0pakiety są dostępne. Najpierw zainstalujmy 2 z
      sudo apt-get install libportaudio2 : i386
    • Część : i386 jest bardzo ważna , ponieważ nasz program jest 32-bitowy. Jeśli pojawi się apt-getprośba o zastąpienie / usunięcie libportaudio2i / lub inne pliki, jest to w porządku, ponieważ niektórych bibliotek nie można zainstalować jednocześnie w wersjach 32- i 64-bitowych.
  • Jeszcze raz sprawdźmy zależności raz jeszcze: nicldd GuitarPro6 | grep found nam nie daje (tego właśnie chcemy!)

    • Jeśli pojawi się błąd, ./GuitarPro: /opt/GuitarPro6/./libz.so.1: version ZLIB_1.2.3.3 not found (required by /usr/lib/i386-linux-gnu/libxml2.so.2)oznacza to, że Guitar Pro używa niewłaściwej wersji libz , napraw to, usuwając plik libz.so.1 z katalogu GuitarPro6:
      sudo rm libz.so.1
      Guitar Pro powróci do wersji libz twojego systemu.
  • Wyjdź z terminala i wróć do /opt/GuitarPro6folderu w Menedżerze plików. Kliknij dwukrotnie GuitarPro i ...

    wprowadź opis zdjęcia tutaj

  • Oczyść folder pobierania, usuwając plik tar z Menedżera plików.

5. Skrót programu uruchamiającego został już dodany

  • Ponieważ pakiet zawierał już GuitarPro6.desktoprozpakowany skrót /usr/share/applications, nie ma potrzeby jego ręcznego tworzenia. Siedzi tam w programie uruchamiającym:

    wprowadź opis zdjęcia tutaj

ish
źródło
Tak, wszystko poszło dobrze, z wyjątkiem ostatniego użycia GuitarPro6 | grep stwierdził, że dał mi odpowiedź: ./GuitarPro: /opt/GuitarPro6/./libz.so.1: nie znaleziono wersji `` ZLIB_1.2.3.3 '' (wymagany przez / usr / lib / i386-linux-gnu / libxml2 .so.2)
Shahe Tajiryan,
Próbowałem zainstalować to na innym komputerze (12.10 64bit) i napotkałem inny błąd, który naprawił to: bit.ly/X7nvJ5 . Chciałem się tu tylko podzielić, jeśli ktokolwiek
napotka
Co za niesamowita odpowiedź. Działa to doskonale na 64-bitowym Ubuntu 14.10. Chciałbym móc głosować więcej niż raz ... FYI, musiałem też zrobić sudo apt-get install libssl0.9.8:i386dodatkowolibportaudio2:i386
friederbluemle
Działa idealnie w 14.04
caisara
1

Próbowałem czegoś i sprawiłem, że zadziałało!

  1. Gdzieś skopiowałem „/ opt / GuitarPro6”.

  2. Zrobiłem sudo apt-get -f installusunąć Guitar Pro.

  3. Skopiowałem folder z powrotem /opt/GuitarPro6i zastąpiłem wszystko tam.

  4. Zainstalowałem więcej pakietów w następujący sposób:

    sudo apt-get install dconf-gsettings-backend python-levenshtein python-indicate libav-tools libstartup-notification0 libxmuu1 libavfilter-extra-2 libbabl-0.0-0 libgegl-0.0-0 libgconf2-4 python-vobject libgtk-3-0 libpam-cap python-utidylib libdconf0 python-iniparse python-xmpp libpam-gnome-keyring libxcb-util0 python-farstream
    
  5. Pobrałem ten obraz ikony GuitarPro i zapisałem go, /opt/GuitarPro6/icon.pngaby mieć obraz do stworzenia własnego .desktoppliku.

  6. Utworzyłem .desktopplik z sudo gedit:

    #!/usr/bin/env xdg-open
    
    [Desktop Entry]
    Type=Application
    Name=Guitar Pro 6
    Comment=Guitar Pro 6
    Icon=/opt/GuitarPro6/icon.png
    Exec=sh /opt/GuitarPro6/gp-launcher.sh
    Terminal=false
    Categories=Audio
    

    Zapisałem ten plik pod /usr/share/applicationsnazwą GuitarPro6.desktop.

Teraz wszystko działa i mogę znaleźć Guitar Pro w desce rozdzielczej.

Jeggy
źródło
1
To okropne rozwiązanie.
tgm4883,
1
Jakie jest lepsze rozwiązanie? Próbowałem już wszystkie inne odpowiedziały. znasz coś lepszego? a ten faktycznie działa dobrze.
Jeggy
Zainstalowałeś wszystkie zależności Guitar Pro?
tgm4883,
cóż, teraz to zrobiłem sudo apt-get install dconf-gsettings-backend python-levenshtein python-indicate libav-tools libstartup-notification0 libxmuu1 libavfilter-extra-2 libbabl-0.0-0 libgegl-0.0-0 libgconf2-4 python-vobject libgtk-3-0 libpam-cap python-utidylib libdconf0 python-iniparse python-xmpp libpam-gnome-keyring libxcb-util0 python-farstream. i działa równie dobrze.
Jeggy
W przyszłości nie powinieneś biegać sudo gedit. Powinieneś użyć gksu geditlub gksudo geditzamiast tego. Uruchamianie programów graficznych jako rootzwykłych sudo, gdy aplikacja ma pliki konfiguracyjne dla poszczególnych użytkowników, może zepsuć te programy rootużytkownikom niebędącym użytkownikami .
Eliah Kagan,
1

W ciągu ostatnich kilku dni miałem z tym problem. Odkryłem, że najlepszym sposobem jest użycie pliku wykonywalnego Windows pod Wine. Wydaje się o wiele bardziej solidny.

16b7195abb140a3929bbc322d1c6f1
źródło
0

Aby odpowiedzieć na twoje pytanie, aby przestać apt-get -f installusuwać oprogramowanie, musisz dodać --no-removedo uruchamianego polecenia. Spowoduje to natychmiastowe przerwanie uruchamiania apt-get, jeśli coś ma zostać usunięte, a twoje oprogramowanie nie zostanie usunięte.

Jednak to, czego prawdopodobnie szukasz, to sposób na normalne działanie systemu, a jednocześnie zainstalowanie tego oprogramowania. To, co musisz zrobić, to spojrzeć na dane wyjściowe z wymuszenia instalacji pakietu za pomocą dpkg i zobaczyć, co się nie powiedzie, a następnie zainstalować tę zależność, używając

apt-get install package-name

W twoim przypadku jest to gksu (konkretnie gksu). Teraz może się okazać, że podczas próby zainstalowania gksu ma również zależności, które należy zainstalować. Ponieważ wymuszasz instalację pakietu 32-bitowego, musisz ręcznie zainstalować te zależności za pomocą tego samego polecenia powyżej.

tgm4883
źródło
0

Po prostu zainstalowałem gp6 pod LinuxMint 14 32-bit, uruchomiłem aktualizator i naprawiłem problemy z zlib, kopiując zlib.so1.2.27 do / opt / GuitarPro, zmieniając nazwę na zlib.so.1, zainstalowałem gksu i jego zależności, ponownie uruchomiłem aktualizator za aktualizowanie wszystkich. Następnie podłączyłem mój 64-bitowy Linux do 3s-Bit Linux poprzez fish: // nazwa użytkownika @ mymachineIP / opt w Dolphin i skopiowałem cały katalog GuitarPro6 do mojego katalogu domowego na 64-bitowym Linuksie, a stamtąd do / opt. Pracuje.

Michael Bergmann
źródło
-2

Spróbuj tego:

Ściągnięte z http://www6.guitar-pro.com/en/index.php?pg=download plik .deb, ale nie instaluj go.

Pobierz i zainstaluj getlibs Następnie:

sudo apt-get install libportaudio0
getlibs -l libportaudio.so.2
dpkg -i –force-all /path/to/GuitarPro6Demo2.deb

Na koniec uruchom go za pomocą (ignoruj ​​błędy):

/opt/GuitarPro6/gp-launcher.sh
jaśmin
źródło
To nie działało lepiej niż ja wcześniej :(
Jeggy