Wie installiere ich ein proprietäres 32-Bit-Deb auf einem 64-Bit-System, ohne Abhängigkeitsprobleme zu verursachen?


15

Ich weiß, dass Guitar Pro 64-Bit nicht unterstützt, aber ich habe es mit diesem Befehl zum Laufen gebracht

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

Und selbst nachdem ich diesen Fehler erhalten habe, funktioniert das Programm einwandfrei und das Aktualisieren und Hinzufügen von PPAs zum System funktioniert hervorragend, aber wenn ich versuche, eine andere Software zu installieren, erhalte ich diesen Fehler:

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

Und wenn ich "apt-get -f install" schreibe, bekomme ich das

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

Und jetzt ist Guitar Pro gelöscht.
Wie kann ich Guitar Pro installieren und danach noch andere Software installieren?

Antworten:


30

Warnung:

Die GuitarPro- Deb ist gefährlich verpackt!

  • Wenn Sie auf einem 64-Bit-System apt-get -f installversuchen, es zu installieren, apt-getmöchten Sie die folgenden systemkritischen Pakete entfernen , die Ihre Ubuntu-Installation ruinieren können!

    Die folgenden Pakete werden ENTFERNT:
     gksu guitarpro6: i386 libgksu2-0 libpam-gnome-keyring  sudo ubuntu-desktop
    Ubuntu-Minimal Update-Manager Update-Notifier xauth  xinit xorg
  • sudo ? update-manager ?? X! Was denken die Entwickler ?! Es scheint auch, apt-getdass eine Reihe von i386-Paketen installiert sind, wenn noch keine installiert wurden. Hier ist der volle Pastebin.


Installieren Sie GuitarPro sicher, ohne apt-getes entfernen zu wollen

  • Ich glaube, das obige Verhalten rührt von der dummen Abhängigkeit von deb her gksu:i386(das ist das grafische Root Elevation Package).
  • Leider ist die einzige sichere Möglichkeit, dies zu installieren und sich nicht mit apt-getdem Gejammer auseinanderzusetzen, die manuelle Installation und der damit verbundenen Abhängigkeiten. Hier ist wie:

Wie man manuell ein binäres i386-Deb mit seinen Abhängigkeiten überprüft und sicher installiert

  • Entfernen Sie zunächst die aktuell halb installierte Version mit sudo dpkg --remove guitarpro:i386
  • Wechseln Sie nun in das Verzeichnis, in dem Ihre Deb-Datei gespeichert ist. Zum einfachen Schreiben erstellen wir einen kurzen Symlink - meine Deb aufgerufen gp6-full-linux-demo-r11100.deb, Ihre kann abweichen:
    • ln -s gp6-full-linux-demo-r11100.deb gp6.deb

1. Untersuchen Sie die Architektur und Abhängigkeiten der Deb

Zuerst untersuchen wir die Abhängigkeiten der Deb, ohne sie zu installieren.

  • dpkg-deb -I gp6.deb zeigt uns:

     neues Debian-Paket, Version 2.0.
    Größe 172147458 Bytes: Kontrollarchiv = 75020 Bytes.
     375 Bytes, 10 Zeilen steuern 
    335109 Bytes, 2770 Zeilen md5sums
    Verpackung: GuitarPro6 Version: 6.1.3 Abschnitt: nicht frei / Audio Priorität: optional Architektur: i386 Abhängig von: libc6 (> = 2.1.3), libstdc ++ 6, libasound2, libxml2, libxslt1.1, libportaudio0, libportaudio2, libglu1-mesa, gksu, libssl0.9.8 Installierte-Größe: 222632 Betreuer: Arobas Music Beschreibung: http://www.guitar-pro.com Guitar Pro 6, Linux Version.

  • Dies ist also eine i386-Anwendung, und alle ihre Abhängigkeiten werden auch i386 sein.

  • Das erste , was zu tun ist , um die Installation von ia32-libsi386 Kompatibilität Paket, wenn Sie nicht bereits haben:
    • sudo apt-get install ia32-libs
  • Kopieren Sie auch die Abhängigkeiten des Pakets und fügen Sie sie für später in eine Textdatei ein.

2. "Extrahieren" Sie die Deb in ein Tar-Archiv und untersuchen Sie deren Inhalt

  • Lassen Sie uns extrahieren nun die deb zu einem tar - Archiv , so dass wir seinen Inhalt, ohne untersuchen kann es zu installieren:
    • dpkg-deb --fsys-tarfile gp6.deb > gp6.tar
  • Öffnen Sie den Dateimanager (Nautilus) und hängen Sie das gp6.tarals Archiv ein, indem Sie mit der rechten Maustaste klicken und In Archive Mounter öffnen auswählen . nach , dass Sie sehen, gp6.tardie linke Seitenleiste mit einem Auswurfsymbol neben ihn auf den Boden gelegt:

    Bildbeschreibung hier eingeben

  • Gehen Sie auf das Ansicht - Menü für Datei - Manager, und ändern Sie die Sidebar auf die Baumansicht Option statt Orte :

    Bildbeschreibung hier eingeben

  • Erweitern Sie nun den gp6.tarBaum in der Seitenleiste, indem Sie auf die Dreiecke klicken. Wiederholen Sie dies für jede Ebene, bis Sie die Ordnerstruktur der Datei sehen können:

    Bildbeschreibung hier eingeben

  • Aus der Struktur geht hervor, dass sich die Programmdateien an zwei Orten befinden: /optund /usr/share:

    • Alles, /optwas in das System einfließt, ist in sich abgeschlossen und beeinträchtigt nichts anderes im System.
    • Wir sehen, dass /usr/sharenur Icons / Bitmaps enthalten sind, die harmlos sind.

3. Wenn es sicher ist, "installieren" Sie das Programm, indem Sie die tar-Datei extrahieren

  • Kehren Sie zum Terminal zurück und vergewissern Sie sich, dass Sie sich in dem Verzeichnis befinden, das die heruntergeladenen deb / tar-Dateien enthält. Dann tippe:

    sudo tar -C / -xvf gp6.tar
    
  • Dadurch werden die Programmdateien an den entsprechenden Speicherorten extrahiert und die Dateinamen und der Fortschritt angezeigt. ( Beispielausgabe )

    • Der -CSchalter weist Sie taran, diese Operation relativ zum Stammverzeichnis und nicht zum aktuellen Verzeichnis auszuführen.

4. Finden Sie heraus, bei welchen Abhängigkeiten sie fehlen ldd, installieren Sie sie und rocken Sie!

  • Öffnen Sie den /opt/GuitarPro6Ordner im Dateimanager:

    Bildbeschreibung hier eingeben

    • Wir sehen, dass die ausführbare Datei GuitarPro heißt (mit dem Diamant- "Zahnrad" -Symbol) und dass viele lib-xxxxDateien im Ordner enthalten sind.
    • Dies ist normal für reine Binärprogramme. Sie versuchen, die Versionen der benötigten Bibliotheken einzuschließen, da diese möglicherweise nicht in den Repositorys einer bestimmten Distribution verfügbar sind.
  • Zusammen mit diesen enthaltenen Bibliotheken und dem ia32-libsPaket sollten die meisten 32-Bit-Abhängigkeiten installiert sein. Anstatt die Abhängigkeiten, die wir in der Deb-Datei gesehen haben, blind zu installieren, apt-getlassen Sie uns herausfinden, ob tatsächlich etwas fehlt. Dies kann zu Problemen führen .

    • Kehren Sie zum Terminal zurück und wechseln Sie mit in das GuitarPro-Verzeichnis cd /opt/GuitarPro6

Verwenden ldd

  • Typ ldd GuitarPro | grep found, und die Ausgabe wird seinlibportaudio.so.2 => not found

    • ldddruckt die Abhängigkeiten (Shared Libraries) eines Programms und ob sie auf dem System existieren oder nicht. So sieht die vollständige Ausgabe von GuitarPro aus.
    • Um das Leben einfacher zu machen, filtern wir einfach nach jenen, die nicht über existieren grep found.
  • Hier fehlt nur die Bibliothek libportaudio2 . Aber die Abhängigkeiten sagten libportaudio 0 ? (siehe Schritt 1.) Was ist das?

    • Lassen Sie uns über apt-cache search libportaudiodas Terminal nach den verfügbaren Versionen suchen .
    • Das sagt uns, dass beide libportaudio2 und libportaudio0Pakete verfügbar sind. Lassen Sie uns zuerst die 2 mit installieren
      sudo apt-get install libportaudio2 : i386
    • Der : i386- Teil ist sehr wichtig , da unser Programm 32-Bit ist. Wenn Sie apt-getgefragt libportaudio2werden, ob Sie Dateien ersetzen oder entfernen möchten, ist dies in Ordnung, da einige Bibliotheken nicht gleichzeitig in der 32-Bit- und der 64-Bit-Version installiert werden können.
  • Lassen Sie ldd GuitarPro6 | grep founduns ein letztes Mal die Abhängigkeiten überprüfen: Gibt uns nichts (das ist was wir wollen!)

    • Wenn Sie den Fehler erhalten, ./GuitarPro: /opt/GuitarPro6/./libz.so.1: version ZLIB_1.2.3.3 not found (required by /usr/lib/i386-linux-gnu/libxml2.so.2)bedeutet dies, dass Guitar Pro eine falsche Version von libz verwendet , beheben Sie diesen Fehler, indem Sie die Datei libz.so.1 aus dem GuitarPro6-Verzeichnis entfernen:
      sudo rm libz.so.1
      Guitar Pro greift auf die libz-Version Ihres Systems zurück.
  • Verlassen Sie das Terminal und kehren Sie zu dem /opt/GuitarPro6Ordner im Dateimanager zurück. Doppelklicken Sie auf GuitarPro und ...

    Bildbeschreibung hier eingeben

  • Bereinigen Sie den Download-Ordner, indem Sie die tar-Datei aus dem Dateimanager löschen.

5. Die Launcher-Verknüpfung wurde bereits hinzugefügt

  • Da das Paket bereits eine GuitarPro6.desktopVerknüpfung enthielt , zu der extrahiert wurde, /usr/share/applicationsmuss keine Verknüpfung manuell erstellt werden. Es sitzt dort im Launcher:

    Bildbeschreibung hier eingeben


Ja, alles ist gut gelaufen, außer als ich das letzte Mal ldd GuitarPro6 | verwendet habe grep fand es gab mir eine Antwort: ./GuitarPro: /opt/GuitarPro6/./libz.so.1: Version `ZLIB_1.2.3.3 'nicht gefunden (erforderlich für / usr / lib / i386-linux-gnu / libxml2 .so.2)
Shahe Tajiryan

Ich habe versucht, dies auf einem anderen Computer zu installieren (12.10 64-Bit), und ich bin auf einen anderen Fehler gestoßen , und dieser hat es behoben: bit.ly/X7nvJ5 .
Wollte

Was für eine erstaunliche Antwort. Dies funktionierte perfekt auf Ubuntu 14.10 64-Bit. Ich wünschte, ich könnte mehr als einmal upvoten ... Zu Ihrer Information, ich hätte sudo apt-get install libssl0.9.8:i386zusätzlich zulibportaudio2:i386
friederbluemle

Es funktioniert perfekt in 14.04
Caisara

1

Ich habe etwas ausprobiert und es zum Laufen gebracht!

  1. Ich habe "/ opt / GuitarPro6" irgendwo kopiert.

  2. Ich habe sudo apt-get -f installGuitar Pro entfernt.

  3. Ich habe den Ordner zurückkopiert /opt/GuitarPro6und alles dort ersetzt.

  4. Ich habe weitere Pakete wie folgt installiert:

    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. Ich habe dieses Bild GuitarPro-Symbol heruntergeladen und gespeichert, /opt/GuitarPro6/icon.pngdamit ich ein Bild zum Erstellen meiner eigenen .desktopDatei habe.

  6. Ich habe eine .desktopDatei erstellt mit 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
    

    Ich habe diese Datei /usr/share/applicationsunter dem Namen gespeichert GuitarPro6.desktop.

Jetzt funktioniert alles und ich kann Guitar Pro im Armaturenbrett finden.


1
Das ist eine schreckliche Lösung.
TGM4883,

1
Welche bessere Lösung gibt es? Ich habe versucht, alle anderen haben geantwortet. kennst du einen besseren? und dieser funktioniert tatsächlich gut.
Jeggy

Sie haben alle Abhängigkeiten von Guitar Pro installiert?
tgm4883

Nun, ich habe das getan 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. und es funktioniert genauso gut.
Jeggy

In Zukunft solltest du nicht rennen sudo gedit. Sie sollten gksu geditoder gksudo geditstattdessen verwenden. Ausführen von grafischen Programmen wie rootschlicht mit sudo, wenn die Anwendung pro Benutzer Konfigurationsdateien hat, kann mess up diese Programme für die Nicht - rootNutzer .
Eliah Kagan,

1

Ich habe in den letzten Tagen auch damit zu kämpfen. Ich habe festgestellt, dass der beste Weg ist, die ausführbare Windows-Datei unter Wine zu verwenden. Scheint viel solider.


0

Um Ihre Frage zu beantworten und das apt-get -f installEntfernen von Software zu verhindern, müssen Sie --no-removeden ausgeführten Befehl ergänzen . Dies bricht den apt-get-Lauf sofort ab, wenn etwas entfernt werden soll und Ihre Software nicht entfernt wird.

Was Sie jedoch wahrscheinlich suchen, ist eine Möglichkeit, ein System normal laufen zu lassen, aber auch diese Software zu installieren. Was Sie tun müssen, ist die Ausgabe von zu betrachten, wenn Sie die Installation des Pakets mit dpkg erzwingen, und zu sehen, worauf es fehlschlägt, und dann diese Abhängigkeit mit zu installieren

apt-get install package-name

In Ihrem Fall ist es gksu (speziell gksu). Wenn Sie nun versuchen, gksu zu installieren, stellen Sie möglicherweise fest, dass es auch Abhängigkeiten hat, die installiert werden müssen. Da Sie die 32-Bit-Paketinstallation erzwingen, müssen Sie diese Abhängigkeiten mit demselben Befehl wie oben manuell installieren.


0

Ich habe einfach gp6 unter LinuxMint 14 32-Bit installiert, den Updater ausgeführt und Probleme mit zlib behoben, indem ich zlib.so1.2.27 nach / opt / GuitarPro kopiert, es in zlib.so.1 umbenannt, gksu und seine Abhängigkeiten installiert und den Updater erneut ausgeführt habe um alles auf den neuesten Stand zu bringen. Danach habe ich mein 64-Bit-Linux über fish: // username @ mymachineIP / opt in Dolphin mit 3s-Bit-Linux verbunden und das gesamte GuitarPro6-Verzeichnis in mein Home-Verzeichnis auf 64-Bit-Linux kopiert und von dort nach / opt. Funktioniert.


-2

Versuche dies:

Herunterladen von die .deb-Datei http://www6.guitar-pro.com/en/index.php?pg=download aber installieren Sie sie nicht.

Laden Sie getlibs herunter und installieren Sie es. Dann:

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

Starten Sie es abschließend mit (Fehler ignorieren):

/opt/GuitarPro6/gp-launcher.sh

Das hat nicht besser funktioniert als vorher :(
Jeggy
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.