¿Cómo instalo una deb de propiedad de 32 bits en un sistema de 64 bits sin causar problemas de dependencia?

15

Sé que Guitar pro no admite 64 bits, pero lo hice funcionar con este 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 incluso después de recibir ese error, el programa funciona perfectamente bien y la actualización y la adición de PPA al sistema funciona muy bien, pero cuando intento instalar algún otro software obtengo este error:

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

Y cada vez que escribo "apt-get -f install" obtengo esto

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

Y ahora se elimina Guitar Pro.
¿Cómo puedo instalar Guitar Pro y aún poder instalar otro software después?

Jeggy
fuente

Respuestas:

30

Advertencia:

¡El Deb GuitarPro está peligrosamente empaquetado!

  • En un sistema de 64 bits, si apt-get -f installdespués de intentar instalarlo, apt-getquerrá eliminar los siguientes paquetes críticos del sistema , que pueden arruinar su instalación de Ubuntu.

    Los siguientes paquetes serán ELIMINADOS :
     gksu guitarpro6: i386 libgksu2-0 libpam-gnome-keyring  sudo ubuntu-desktop
    ubuntu-minimal update-manager update-notifier xauth xinit  xorg
  • sudo ? gestor de actualizaciones ?? ¡X! ¿Qué están pensando los desarrolladores? También hace apt-getpensar que se han instalado un montón de paquetes i386 cuando no se ha instalado ninguno. Aquí está el sangriento pastebin completo.


Instale GuitarPro de forma segura sin apt-getquerer quitarlo

  • Creo que el comportamiento anterior proviene de la dependencia tonta de deb en gksu:i386(que es el paquete gráfico de elevación de raíz)
  • Desafortunadamente, la única forma segura de instalar esto y no tener que lidiar con apt-getlas quejas es instalarlo manualmente y sus dependencias. Así es cómo:

Cómo examinar manualmente e instalar de forma segura un deb binario i386 con sus dependencias

  • Primero, elimine el paquete actual medio instalado con sudo dpkg --remove guitarpro:i386
  • Ahora, cambie al directorio donde está almacenado su archivo deb. Para escribir con facilidad, creemos un breve enlace simbólico: mi deb llamó gp6-full-linux-demo-r11100.deb, el tuyo puede diferir:
    • ln -s gp6-full-linux-demo-r11100.deb gp6.deb

1. Examine la arquitectura y las dependencias del deb.

Primero, examinamos las dependencias del deb sin instalarlo.

  • dpkg-deb -I gp6.deb nos muestra:

     nuevo paquete debian, versión 2.0.
    tamaño 172147458 bytes: archivo de control = 75020 bytes.
     375 bytes, control de 10 líneas 
    335109 bytes, 2770 líneas md5sums
    Paquete: GuitarPro6 Versión: 6.1.3 Sección: no libre / audio Prioridad: opcional Arquitectura: i386 Depende: libc6 (> = 2.1.3), libstdc ++ 6, libasound2, libxml2, libxslt1.1, libportaudio0, libportaudio2, libglu1-mesa, gksu, libssl0.9.8 Tamaño instalado: 222632 Mantenedor: Arobas Music Descripción: http://www.guitar-pro.com Guitar Pro 6, versión Linux.

  • Entonces, esta es una aplicación i386, y todas sus dependencias también serán i386.

  • Lo primero que debe hacer es instalar el ia32-libspaquete de compatibilidad i386, si aún no lo ha hecho:
    • sudo apt-get install ia32-libs
  • Copiemos y peguemos también las dependencias del paquete en un archivo de texto, para más adelante.

2. "Extraiga" el deb en un archivo tar y examine su contenido

  • Vamos a extraer el deb a un archivo tar ahora para que podamos examinar su contenido sin tener que instalarlo:
    • dpkg-deb --fsys-tarfile gp6.deb > gp6.tar
  • Y abra el Administrador de archivos (Nautilus) y móntelo gp6.tarcomo archivo haciendo clic derecho y seleccionando Abrir en el montador de archivos ; después de eso, verá gp6.taragregado en la parte inferior la barra lateral izquierda, con un ícono de expulsión al lado:

    ingrese la descripción de la imagen aquí

  • Vaya al menú Ver para el Administrador de archivos y cambie la barra lateral a la opción Vista de árbol en lugar de Lugares :

    ingrese la descripción de la imagen aquí

  • Ahora expanda el gp6.tarárbol en la barra lateral haciendo clic en los triángulos; repita para cada nivel hasta que pueda ver la estructura de carpetas del archivo:

    ingrese la descripción de la imagen aquí

  • Desde la estructura, vemos que los archivos del programa van a dos ubicaciones: /opty /usr/share:

    • Todo lo que entra /optes autónomo y no afectará nada más en el sistema.
    • Vemos que /usr/sharesolo contiene iconos / mapas de bits, que son inofensivos.

3. Si es seguro, "instale" el programa extrayendo el archivo tar

  • Regrese a la terminal y asegúrese de estar en el directorio que contiene los archivos deb / tar descargados. Luego escriba:

    sudo tar -C / -xvf gp6.tar
    
  • Esto extraerá los archivos del programa en las ubicaciones apropiadas, mostrándole los nombres y el progreso del archivo. ( Salida de muestra )

    • El -Cconmutador le indica tarque realice esta operación en relación con el directorio raíz, no con el directorio actual.

4. Averigua qué dependencias faltan ldd, instálalas y ¡rock and roll!

  • Abra la /opt/GuitarPro6carpeta en el Administrador de archivos:

    ingrese la descripción de la imagen aquí

    • Vemos que el ejecutable se llama GuitarPro (con el icono de "engranajes" de diamante) y también que lib-xxxxse incluyen muchos archivos en la carpeta.
    • Esto es normal para programas solo binarios; intentan incluir las versiones de las bibliotecas específicas que necesitan, ya que pueden no estar disponibles en los repositorios de una distribución específica.
  • Junto con estas bibliotecas incluidas y el ia32-libspaquete, la mayoría de las dependencias de 32 bits deberían haberse instalado. En lugar de instalar ciegamente las dependencias que vimos en la información del archivo deb a través de, lo que apt-getpuede causar problemas, averigüemos si realmente nos falta algo.

    • Regrese a la terminal y cambie al directorio GuitarPro con cd /opt/GuitarPro6

Utilizando ldd

  • Escriba ldd GuitarPro | grep found, y la salida serálibportaudio.so.2 => not found

  • Aquí, solo falta la biblioteca libportaudio2 . Pero las dependencias dijeron libportaudio 0 ? (ver paso 1.) ¿Cuál es?

    • Busquemos las versiones disponibles usando apt-cache search libportaudiodesde la terminal.
    • Eso nos dice que ambos libportaudio2 y los libportaudio0paquetes están disponibles. Instalemos los 2 primero, con
      sudo apt-get install libportaudio2 : i386
    • La parte : i386 es muy importante , ya que nuestro programa es de 32 bits. Si apt-getsolicita reemplazar / eliminar libportaudio2y / u otros archivos, está bien, porque algunas bibliotecas no se pueden instalar simultáneamente en las versiones de 32 y 64 bits.
  • Verifiquemos dos veces las dependencias una última vez: noldd GuitarPro6 | grep found nos da nada (¡eso es lo que queremos!)

    • Si obtiene el error, ./GuitarPro: /opt/GuitarPro6/./libz.so.1: version ZLIB_1.2.3.3 not found (required by /usr/lib/i386-linux-gnu/libxml2.so.2)esto significa que Guitar Pro está utilizando una versión incorrecta de libz , corríjalo eliminando el archivo libz.so.1 del directorio GuitarPro6:
      sudo rm libz.so.1
      Guitar Pro recurrirá a la versión libz de su sistema.
  • Salga de la terminal y regrese a la /opt/GuitarPro6carpeta en el Administrador de archivos. Haga doble clic en GuitarPro y ...

    ingrese la descripción de la imagen aquí

  • Limpie la carpeta de descargas eliminando el archivo tar del Administrador de archivos.

5. El acceso directo del iniciador ya se ha agregado

  • Debido a que el paquete ya contenía un GuitarPro6.desktopacceso directo al que se extrajo /usr/share/applications, no hay necesidad de crear uno manualmente. Está sentado allí en el Lanzador:

    ingrese la descripción de la imagen aquí

ish
fuente
Sí, bueno, todo salió bien, excepto cuando la última vez que usé ldd GuitarPro6 | grep encontró que me dio una respuesta: ./GuitarPro: /opt/GuitarPro6/./libz.so.1: no se encontró la versión `ZLIB_1.2.3.3 '(requerido por / usr / lib / i386-linux-gnu / libxml2 .so.2)
Shahe Tajiryan
Traté de instalar esto en otra computadora (12.10 64 bits), y me encontré con otro error, y esto lo solucionó: bit.ly/X7nvJ5 . Solo quería compartirlo aquí, si alguien más tuvo algunos problemas
Jeggy
Qué respuesta tan asombrosa. Esto funcionó perfectamente en Ubuntu 14.10 de 64 bits. Desearía poder votar más de una vez ... FYI, también tuve que hacerlo sudo apt-get install libssl0.9.8:i386además delibportaudio2:i386
friederbluemle
Funciona perfectamente en 14.04
caisara
1

¡Probé algo y lo conseguí!

  1. Copié "/ opt / GuitarPro6" en alguna parte.

  2. Lo hice sudo apt-get -f installpara eliminar Guitar Pro.

  3. Copié la carpeta nuevamente /opt/GuitarPro6y reemplacé todo allí.

  4. Instalé más paquetes de la siguiente manera:

    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. Descargué esta imagen del icono de GuitarPro y la guardé /opt/GuitarPro6/icon.pngpara poder tener una imagen para crear mi propio .desktoparchivo.

  6. Creé un .desktoparchivo 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
    

    Guarde este archivo /usr/share/applicationscon el nombre GuitarPro6.desktop.

Ahora todo funciona y puedo encontrar Guitar Pro en el tablero.

Jeggy
fuente
1
Esa es una solución horrible.
tgm4883
1
¿Qué mejor solución hay? He intentado todos los demás han respondido. ¿Conoces alguna mejor? y este realmente funciona bien.
Jeggy
¿Has instalado todas las dependencias de Guitar Pro?
tgm4883
Bueno, ahora hice esto 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. y funciona igual de bien
Jeggy
En el futuro, no deberías correr sudo gedit. Deberías usar gksu gedito en su gksudo geditlugar. La ejecución de programas gráficos como el rootuso simple sudo, cuando la aplicación tiene archivos de configuración por usuario, puede estropear esos programas para el no rootusuario .
Eliah Kagan
1

También he estado luchando con esto en los últimos días. He encontrado que la mejor manera es usar el ejecutable de Windows en wine. Parece mucho más sólido.

16b7195abb140a3929bbc322d1c6f1
fuente
0

Para responder a tu pregunta, para detener apt-get -f install eliminación del software, debe agregar --no-removeal comando que ejecuta. Esto anulará inmediatamente la ejecución de apt-get si se va a eliminar algo y su software no se eliminará.

Sin embargo, lo que probablemente esté buscando es una forma de tener un sistema funcionando normalmente, pero también tener ese software instalado. Lo que tendrá que hacer es mirar el resultado de cuando fuerza la instalación del paquete con dpkg, y ver qué está fallando, luego instale esa dependencia usando

apt-get install package-name

En su caso, es gksu (específicamente, gksu). Ahora puede encontrar que cuando intenta instalar gksu también tiene dependencias que deben instalarse. Como está forzando la instalación del paquete de 32 bits, deberá instalar manualmente estas dependencias con el mismo comando anterior.

tgm4883
fuente
0

Simplemente instalé gp6 en LinuxMint 14 de 32 bits, ejecuté el actualizador y solucioné problemas con zlib copiando zlib.so1.2.27 a / opt / GuitarPro, renombrándolo a zlib.so.1, instalé gksu y sus dependencias, ejecuté el actualizador nuevamente por poner todo al día. Luego, conecté mi Linux de 64 bits a Linux de 3 bits a través de fish: // username @ mymachineIP / opt en Dolphin y copié todo el directorio GuitarPro6 a mi directorio de inicio en Linux de 64 bits y desde allí a / opt. Trabajos.

Michael Bergmann
fuente
-2

Prueba esto:

Descargar desde http://www6.guitar-pro.com/en/index.php?pg=download el archivo .deb pero no lo instale.

Descargue e instale getlibs Luego:

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

Finalmente, inícielo con (ignorar errores):

/opt/GuitarPro6/gp-launcher.sh
jazmines
fuente
Eso no funcionó mejor que antes :(
Jeggy