Come posso installare un deb proprietario a 32 bit su un sistema a 64 bit senza causare problemi di dipendenza?


15

So che Guitar Pro non supporta 64 bit, ma l'ho fatto funzionare con questo comando

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

E anche dopo che ottengo quell'errore il programma funziona perfettamente e l'aggiornamento e l'aggiunta di PPA al sistema funziona alla grande, ma quando sto cercando di installare qualche altro software ottengo questo errore:

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).

E ogni volta che scrivo "apt-get -f install" ottengo questo

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 ...

E ora Guitar Pro viene eliminato.
Come posso installare Guitar Pro e continuare a installare altri software in seguito?

Risposte:


30

Avvertimento:

Il deb GuitarPro è pericolosamente impacchettato!

  • Su un sistema a 64 bit, se apt-get -f installdopo aver provato a installarlo, apt-getvorresti rimuovere i seguenti pacchetti critici di sistema , che possono rovinare la tua installazione di Ubuntu!

    I seguenti pacchetti saranno RIMOSSI:
     gksu guitarpro6: i386 libgksu2-0 libpam-gnome-keyring  sudo ubuntu-desktop
    ubuntu-minimal update-manager update-notifier xauth xinit  xorg
  • sudo ? gestore aggiornamenti ?? X! Cosa stanno pensando gli sviluppatori ?! Fa anche apt-getpensare che un gruppo di pacchetti i386 sia installato quando nessuno è stato. Ecco la pastebin integrale gory.


Installa in modo sicuro GuitarPro senza apt-getrimuoverlo

  • Credo che il comportamento di cui sopra provenga dalla stupida dipendenza del deb da gksu:i386(che è il pacchetto grafico di elevazione della radice)
  • Sfortunatamente, l'unico modo sicuro per installare questo e non avere a che fare con apt-getil piagnisteo è installarlo manualmente e le sue dipendenze. Ecco come:

Come esaminare manualmente e installare in modo sicuro un deb binario i386 con le sue dipendenze

  • Innanzitutto, rimuovi l'attuale metà installato in pacchetto con sudo dpkg --remove guitarpro:i386
  • Ora, passa alla directory in cui è memorizzato il tuo file deb. Per una semplice digitazione creiamo un breve link simbolico - il mio deb chiamato gp6-full-linux-demo-r11100.deb, il tuo potrebbe essere diverso:
    • ln -s gp6-full-linux-demo-r11100.deb gp6.deb

1. Esaminare l'architettura e le dipendenze del deb

Innanzitutto, esaminiamo le dipendenze del deb senza installarlo.

  • dpkg-deb -I gp6.deb mostraci:

     nuovo pacchetto debian, versione 2.0.
    dimensione 172147458 byte: archivio di controllo = 75020 byte.
     375 byte, 10 linee controllano 
    335109 byte, 2770 linee md5sums
    Pacchetto: GuitarPro6 Versione: 6.1.3 Sezione: non libero / audio Priorità: facoltativa Architettura: i386 Dipende: libc6 (> = 2.1.3), libstdc ++ 6, libasound2, libxml2, libxslt1.1, libportaudio0, libportaudio2, libglu1-mesa, gksu, libssl0.9.8 Dimensioni installate: 222632 Maintainer: Arobas Music Descrizione: http://www.guitar-pro.com Guitar Pro 6, versione Linux.

  • Quindi questa è un'applicazione i386 e tutte le sue dipendenze saranno anche i386.

  • La prima cosa da fare è installare il ia32-libspacchetto di compatibilità i386, se non lo hai già fatto:
    • sudo apt-get install ia32-libs
  • Copiamo e incolliamo anche le dipendenze del pacchetto in un file di testo, per dopo.

2. "Estrai" il deb in un archivio tar ed esaminane il contenuto

  • Ora estraiamo il deb in un archivio tar in modo da poterne esaminare il contenuto senza doverlo installare:
    • dpkg-deb --fsys-tarfile gp6.deb > gp6.tar
  • E apri il File Manager (Nautilus), e monta gp6.tarcome archivio facendo clic con il tasto destro e selezionando Apri in Archive Mounter ; successivamente vedrai gp6.taraggiunta in basso la barra laterale di sinistra, con un'icona di espulsione accanto ad essa:

    inserisci qui la descrizione dell'immagine

  • Vai al menu Visualizza per File Manager e modifica la barra laterale nell'opzione Vista ad albero invece di Luoghi :

    inserisci qui la descrizione dell'immagine

  • Ora espandi l' gp6.taralbero nella barra laterale facendo clic sui triangoli; ripetere per ogni livello fino a visualizzare la struttura delle cartelle del file:

    inserisci qui la descrizione dell'immagine

  • Dalla struttura, vediamo che i file del programma vanno in due posizioni: /opte /usr/share:

    • Tutto ciò che entra /optè autonomo e non influenzerà nient'altro sul sistema.
    • Vediamo che /usr/sharecontiene solo icone / bitmap, che sono innocue.

3. Se è sicuro, "installa" il programma estraendo il file tar

  • Torna al terminale e assicurati di trovarti nella directory contenente i file deb / tar scaricati. Quindi digitare:

    sudo tar -C / -xvf gp6.tar
    
  • Questo estrarrà i file del programma nelle posizioni appropriate, mostrando i nomi dei file e l'avanzamento. ( Uscita campione )

    • Lo -Cswitch indica tardi eseguire questa operazione relativamente alla directory principale, non alla directory corrente.

4. Scopri quali dipendenze mancano ldd, installale e rock-and-roll!

  • Apri la /opt/GuitarPro6cartella in File Manager:

    inserisci qui la descrizione dell'immagine

    • Vediamo che l'eseguibile si chiama GuitarPro (con l'icona a forma di diamante "ingranaggi"), e anche che molti lib-xxxxfile sono inclusi nella cartella.
    • Questo è normale per i programmi solo binari; cercano di includere le versioni delle librerie specifiche di cui hanno bisogno, dal momento che quelle potrebbero non essere disponibili dai repository di una specifica distribuzione.
  • Insieme a queste librerie e al ia32-libspacchetto inclusi , avrebbe dovuto essere installata la maggior parte delle dipendenze a 32 bit. Invece di installare ciecamente le dipendenze che abbiamo visto nelle informazioni del file deb tramite apt-get- che possono causare problemi - cerchiamo di capire se in realtà ci manca qualcosa.

    • Torna al terminale e passa alla directory GuitarPro con cd /opt/GuitarPro6

utilizzando ldd

  • Digita ldd GuitarPro | grep founde l'output saràlibportaudio.so.2 => not found

    • lddstampa le dipendenze (librerie condivise) di un programma e se esistono o meno sul sistema. Ecco come appare l'intero output di GuitarPro.
    • Per rendere la vita più semplice, filtriamo semplicemente quelli che non esistono tramite grep found.
  • Qui manca solo la libreria libportaudio2 . Ma le dipendenze dicevano libportaudio 0 ? (vedi passaggio 1) Qual è ??

    • Cerchiamo le versioni disponibili utilizzando apt-cache search libportaudiodal terminale.
    • Quel ci dice che sia libportaudio2 e libportaudio0pacchetti sono disponibili. Installiamo prima i 2 , con
      sudo apt-get install libportaudio2 : i386
    • La parte : i386 è molto importante , poiché il nostro programma è a 32 bit. Se apt-getchiede di sostituire / rimuovere libportaudio2e / o altri file, va bene, perché alcune librerie non possono essere installate contemporaneamente in entrambe le versioni a 32 e 64 bit.
  • Ricontrolliamo le dipendenze un'ultima volta: nonldd GuitarPro6 | grep found ci dà nulla (è quello che vogliamo!)

    • Se viene visualizzato l'errore, ./GuitarPro: /opt/GuitarPro6/./libz.so.1: version ZLIB_1.2.3.3 not found (required by /usr/lib/i386-linux-gnu/libxml2.so.2)ciò significa che Guitar Pro utilizza una versione errata di libz , correggerlo rimuovendo il file libz.so.1 dalla directory GuitarPro6:
      sudo rm libz.so.1
      Guitar Pro tornerà alla versione libz del tuo sistema.
  • Esci dal terminale e torna alla /opt/GuitarPro6cartella in File Manager. Fai doppio clic su GuitarPro e ...

    inserisci qui la descrizione dell'immagine

  • Pulisci la cartella Download eliminando il file tar da File Manager.

5. Il collegamento di avvio è già stato aggiunto

  • Poiché il pacchetto conteneva già un GuitarPro6.desktopcollegamento a cui era stato estratto /usr/share/applications, non è necessario crearne uno manualmente. È seduto lì nel Launcher:

    inserisci qui la descrizione dell'immagine


Sì, tutto è andato bene, tranne quando l'ultima volta che ho usato ldd GuitarPro6 | grep ha riscontrato che mi ha dato una risposta: ./GuitarPro: /opt/GuitarPro6/./libz.so.1: versione `ZLIB_1.2.3.3 'non trovata (richiesta da / usr / lib / i386-linux-gnu / libxml2 .so.2)
Shahe Tajiryan,

Ho provato a installarlo su un altro computer (12.10 a 64 bit) e ho riscontrato un altro errore e questo ha risolto il problema: bit.ly/X7nvJ5 . Volevo solo condividerlo qui, se qualcun altro si è imbattuto in alcuni problemi
Jeggy

Che risposta incredibile. Funzionava perfettamente su Ubuntu 14.10 a 64 bit. Vorrei poter votare più di una volta ... Cordiali saluti, ho anche dovuto faresudo apt-get install libssl0.9.8:i386 oltre alibportaudio2:i386
friederbluemle

Funziona perfettamente nel 14.04
caisara il

1

Ho provato qualcosa e l'ho fatto funzionare!

  1. Ho copiato "/ opt / GuitarPro6" da qualche parte.

  2. Ho fatto sudo apt-get -f installper rimuovere Guitar Pro.

  3. Ho copiato nuovamente la cartella /opt/GuitarPro6e ho sostituito tutto lì.

  4. Ho installato più pacchetti come segue:

    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. Ho scaricato questa icona di GuitarPro e l'ho salvata in /opt/GuitarPro6/icon.pngmodo da poter avere un'immagine per creare il mio .desktopfile.

  6. Ho creato un .desktopfile con 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
    

    Ho salvato questo file /usr/share/applicationscon il nome GuitarPro6.desktop.

Ora tutto funziona e posso trovare Guitar Pro nel cruscotto.


1
Questa è una soluzione orribile.
tgm4883,

1
Quale soluzione migliore c'è? Ho provato tutti gli altri hanno risposto. ne conosci qualcuna migliore? e questo funziona davvero bene.
Jeggy,

Hai installato tutte le dipendenze di Guitar Pro?
tgm4883,

bene ora l'ho fatto 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. e funziona altrettanto bene.
Jeggy,

In futuro, non dovresti correre sudo gedit. Dovresti usare gksu gedito gksudo geditinvece. L'esecuzione di programmi grafici come l' rootutilizzo di plain sudo, quando l'applicazione ha file di configurazione per utente, può confondere quei programmi per i non rootutenti .
Eliah Kagan,

1

Ho anche avuto difficoltà con questo negli ultimi giorni. Ho trovato il modo migliore è usare l'eseguibile di Windows sotto wine. Sembra molto più solido.


0

Per rispondere alla tua domanda, per interrompere la apt-get -f installrimozione del software devi aggiungere --no-removeil comando che esegui. Ciò interromperà immediatamente l'esecuzione apt-get se qualcosa deve essere rimosso e il software non verrà rimosso.

Tuttavia, ciò che probabilmente stai cercando è un modo per far funzionare normalmente un sistema, ma hai anche quel software installato. Quello che dovrai fare è guardare l'output da quando imponi l'installazione del pacchetto con dpkg e vedere cosa non riesce, quindi installare quella dipendenza usando

apt-get install package-name

Nel tuo caso, è gksu (in particolare, gksu). Ora potresti scoprire che quando tenti di installare gksu ha anche delle dipendenze che devono essere installate. Poiché stai forzando l'installazione del pacchetto a 32 bit, dovrai installare manualmente queste dipendenze usando lo stesso comando sopra.


0

Ho semplicemente installato gp6 sotto LinuxMint 14 32-Bit, ho eseguito il programma di aggiornamento e risolto i problemi con zlib copiando zlib.so1.2.27 in / opt / GuitarPro, rinominandolo in zlib.so.1, installato gksu e le sue dipendenze, ho eseguito nuovamente l'aggiornamento per aver aggiornato tutto. Successivamente ho collegato il mio Linux a 64 bit a Linux a 3 bit tramite fish: // username @ mymachineIP / opt in Dolphin e ho copiato l'intera directory GuitarPro6 nella mia home directory su Linux a 64 bit e da lì a / opt. Lavori.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.