Como instalo um débito proprietário de 32 bits em um sistema de 64 bits sem causar problemas de dependência?

15

Eu sei que o Guitar pro não suporta 64 bits, mas consegui que funcionasse com 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 mesmo depois de receber esse erro, o programa funciona perfeitamente e a atualização e a adição de PPAs no sistema funcionam muito bem, mas quando estou tentando instalar outro software, recebo esse erro:

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 sempre que eu escrevo "apt-get -f install" eu recebo isso

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 agora o Guitar Pro é excluído.
Como posso instalar o Guitar Pro e ainda assim poder instalar outro software depois?

Jeggy
fonte

Respostas:

30

Atenção:

A deb GuitarPro está perigosamente empacotada!

  • Em um sistema de 64 bits, se você apt-get -f installdepois de tentar instalá-lo, apt-getdesejará remover os seguintes pacotes críticos do sistema , que podem arruinar a instalação do Ubuntu!

    Os seguintes pacotes serão REMOVIDOS:
     gksu guitarpro6: i386 libgksu2-0 libpam -gnome-keyring  sudo ubuntu-desktop
    ubuntu-minimal update-manager update-notificador xauth xinit  xorg
  • sudo ? gerente de atualização ? X! O que os desenvolvedores estão pensando ?! Também faz apt-getpensar que vários pacotes do i386 estão instalados quando nenhum foi instalado. Aqui está o pastebin sangrento completo.


Instale com segurança o GuitarPro sem apt-getquerer removê-lo

  • Eu acredito que o comportamento acima vem da dependência idiota do deb gksu:i386(que é o pacote gráfico de elevação de raiz)
  • Infelizmente, a única maneira segura de instalar isso e não ter que lidar com apt-getas reclamações é instalá-lo manualmente e suas dependências. Aqui está como:

Como examinar e instalar manualmente um deb binário i386 com suas dependências

  • Primeiro, remova o pacote semi-instalado atual com o sudo dpkg --remove guitarpro:i386
  • Agora, mude para o diretório em que seu arquivo deb está armazenado. Para facilitar a digitação, vamos criar um link simbólico curto - minha deb chamada gp6-full-linux-demo-r11100.deb, a sua pode ser diferente:
    • ln -s gp6-full-linux-demo-r11100.deb gp6.deb

1. Examine a arquitetura e as dependências do deb

Primeiro, examinamos as dependências do deb sem instalá-lo.

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

     novo pacote debian, versão 2.0.
    tamanho 172147458 bytes: arquivo de controle = 75020 bytes.
     375 bytes, 10 linhas controlam 
    335109 bytes, 2770 linhas md5sums
    Pacote: GuitarPro6 Versão: 6.1.3 Seção: não livre / áudio Prioridade: opcional Arquitetura: i386 Depende: libc6 (> = 2.1.3), libstdc ++ 6, libasound2, libxml2, libxslt1.1, libportaudio0, libportaudio2, libglu1-mesa, gksu, libssl0.9.8 Tamanho instalado: 222632 Mantenedor: Arobas Music Descrição: http://www.guitar-pro.com Guitar Pro 6, versão Linux.

  • Portanto, este é um aplicativo i386 e todas as suas dependências também serão i386.

  • A primeira coisa a fazer é instalar o ia32-libspacote de compatibilidade i386, se você ainda não tiver:
    • sudo apt-get install ia32-libs
  • Vamos também copiar e colar as dependências do pacote em um arquivo de texto, para mais tarde.

2. "Extraia" a deb para um arquivo tar e examine seu conteúdo

  • Vamos extrair o deb para um arquivo tar agora, para que possamos examinar seu conteúdo sem precisar instalá-lo:
    • dpkg-deb --fsys-tarfile gp6.deb > gp6.tar
  • E abra o Gerenciador de Arquivos (Nautilus) e monte-o gp6.tarcomo um arquivo clicando com o botão direito do mouse e selecionando Abrir no Archive Mounter ; depois disso, você verá gp6.taradicionada ao fundo a barra lateral esquerda, com um ícone de ejeção ao lado:

    insira a descrição da imagem aqui

  • Vá para o menu Exibir do Gerenciador de arquivos e altere a barra lateral para a opção de exibição em árvore em vez de locais :

    insira a descrição da imagem aqui

  • Agora expanda a gp6.tarárvore na barra lateral clicando nos triângulos; repita para cada nível até ver a estrutura de pastas do arquivo:

    insira a descrição da imagem aqui

  • A partir da estrutura, vemos que os arquivos do programa vão para dois locais: /opte /usr/share:

    • Qualquer coisa que entrar /opté independente e não afetará mais nada no sistema.
    • Vemos que /usr/shareapenas contém ícones / bitmaps, que são inofensivos.

3. Se for seguro, "instale" o programa extraindo o arquivo tar

  • Volte ao terminal e verifique se você está no diretório que contém os arquivos deb / tar baixados. Então digite:

    sudo tar -C / -xvf gp6.tar
    
  • Isso extrairá os arquivos de programa nos locais apropriados, mostrando os nomes e o andamento dos arquivos. ( Saída de amostra )

    • A -Copção informa tarpara executar esta operação em relação ao diretório raiz, não ao diretório atual.

4. Descubra quais dependências estão faltando ldd, instale-as e rock-and-roll!

  • Abra a /opt/GuitarPro6pasta no Gerenciador de arquivos:

    insira a descrição da imagem aqui

    • Vemos que o executável é chamado GuitarPro (com o ícone de "engrenagens" de diamante) e também que muitos lib-xxxxarquivos estão incluídos na pasta.
    • Isso é normal para programas somente binários; eles tentam incluir as versões das bibliotecas específicas de que precisam, pois elas podem não estar disponíveis nos repositórios de uma distribuição específica.
  • Juntamente com as bibliotecas incluídas e o ia32-libspacote, a maioria das dependências de 32 bits deveria ter sido instalada. Em vez de instalar cegamente as dependências que vimos nas informações do arquivo deb via - o apt-getque pode causar problemas - vamos descobrir se realmente estamos perdendo alguma coisa.

    • Volte ao terminal e mude para o diretório GuitarPro com cd /opt/GuitarPro6

Usando ldd

  • Digite ldd GuitarPro | grep founde a saída serálibportaudio.so.2 => not found

  • Aqui, apenas a biblioteca libportaudio2 está ausente. Mas as dependências disseram libportaudio 0 ? (consulte a etapa 1.) Qual é?

    • Vamos procurar as versões disponíveis usando a apt-cache search libportaudiopartir do terminal.
    • Isso nos diz que ambos libportaudio2 e libportaudio0pacotes estão disponíveis. Vamos instalar o 2 primeiro, com
      sudo apt-get install libportaudio2 : i386
    • A parte : i386 é muito importante , pois nosso programa é de 32 bits. Se apt-getpedir para substituir / remover libportaudio2e / ou outros arquivos, tudo bem, porque algumas bibliotecas não podem ser instaladas simultaneamente nas versões de 32 e 64 bits.
  • Vamos verificar as dependências uma última vez: nãoldd GuitarPro6 | grep found nos dá nada (é isso que queremos!)

    • Se você receber o erro, ./GuitarPro: /opt/GuitarPro6/./libz.so.1: version ZLIB_1.2.3.3 not found (required by /usr/lib/i386-linux-gnu/libxml2.so.2)isso significa que o Guitar Pro está usando uma versão errada da libz , corrija isso removendo o arquivo libz.so.1 do diretório GuitarPro6:
      sudo rm libz.so.1
      O Guitar Pro voltará à versão libz do seu sistema.
  • Saia do terminal e volte para a /opt/GuitarPro6pasta no Gerenciador de arquivos. Clique duas vezes em GuitarPro e ...

    insira a descrição da imagem aqui

  • Limpe a pasta Download excluindo o arquivo tar do Gerenciador de Arquivos.

5. O atalho do iniciador já foi adicionado

  • Como o pacote já continha um GuitarPro6.desktopatalho extraído /usr/share/applications, não é necessário criar manualmente um. Está sentado no Launcher:

    insira a descrição da imagem aqui

ish
fonte
Sim, tudo correu bem, exceto quando da última vez que usei o ldd GuitarPro6 | O grep encontrou uma resposta: ./GuitarPro: /opt/GuitarPro6/./libz.so.1: versão `ZLIB_1.2.3.3 'não encontrada (exigida por / usr / lib / i386-linux-gnu / libxml2 .so.2)
Shahe Tajiryan
Tentei instalar isso em outro computador (12,10 64 bits) e encontrei outro erro, que foi corrigido: bit.ly/X7nvJ5 . Só queria partilhá-la aqui, se alguém tive alguns problemas
Jeggy
Que resposta incrível. Isso funcionou perfeitamente no Ubuntu 14.10 de 64 bits. Eu gostaria de poder upvote mais de uma vez ... FYI, eu também tinha que fazer sudo apt-get install libssl0.9.8:i386, além delibportaudio2:i386
friederbluemle
Funciona perfeitamente em 14.04
caisara
1

Eu tentei algo e fiz funcionar!

  1. Copiei "/ opt / GuitarPro6" em algum lugar.

  2. Eu fiz sudo apt-get -f installpara remover o Guitar Pro.

  3. Copiei a pasta novamente /opt/GuitarPro6e substituí tudo lá.

  4. Eu instalei mais pacotes da seguinte maneira:

    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. Eu baixei esta imagem do ícone GuitarPro e salvei-a /opt/GuitarPro6/icon.pngpara que eu pudesse ter uma imagem para criar meu próprio .desktoparquivo.

  6. Eu criei um .desktoparquivo com 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
    

    I salvo esse arquivo para /usr/share/applicationscom o nome GuitarPro6.desktop.

Agora tudo funciona e posso encontrar o Guitar Pro no painel.

Jeggy
fonte
11
Essa é uma solução horrível.
tgm4883 18/06/12
11
Que melhor solução existe? Eu tentei todos os outros responderam. você conhece alguém melhor? e este realmente funciona bem.
Jeggy
Você instalou todas as dependências do Guitar Pro?
tgm4883
Bem, agora eu fiz isso 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 funciona tão bem.
perfil completo de Jeggy
No futuro, você não deve executar sudo gedit. Você deve usar gksu geditou em gksudo geditvez disso. A execução de programas gráficos como o rootuso simples sudo, quando o aplicativo possui arquivos de configuração por usuário, pode atrapalhar esses programas para o não rootusuário .
Eliah Kagan
1

Eu também tenho lutado com isso nos últimos dias. Eu encontrei a melhor maneira é usar o executável do Windows no wine. Parece muito mais sólido.

mk444
fonte
0

Para responder sua pergunta, para parar apt-get -f installde remover o software, você precisa adicionar --no-removeo comando que você executa. Isso interromperá imediatamente a execução do apt-get se algo for removido e o seu software não será removido.

No entanto, o que você provavelmente está procurando é uma maneira de executar um sistema normalmente, mas também instalar esse software. O que você precisará fazer é olhar para a saída de quando você força a instalação do pacote com o dpkg e ver o que está falhando, e instalar essa dependência usando

apt-get install package-name

No seu caso, é gksu (especificamente, gksu). Agora você pode descobrir que, ao tentar instalar o gksu, ele também possui dependências que precisam ser instaladas. Como você está forçando a instalação do pacote de 32 bits, será necessário instalar manualmente essas dependências usando o mesmo comando acima.

tgm4883
fonte
0

Eu simplesmente instalei o gp6 no LinuxMint 14 de 32 bits, executei o atualizador e corrigi problemas com o zlib, copiando o zlib.so1.2.27 para / opt / GuitarPro, renomeando-o para zlib.so.1, instalei o gksu e suas dependências e executei o atualizador novamente por atualizar tudo. Depois, conectei meu Linux de 64 bits ao Linux de 3 bits via fish: // nome do usuário @ mymachineIP / opt no Dolphin e copiei todo o diretório GuitarPro6 no meu diretório doméstico no Linux de 64 bits e daí para / opt. Trabalho.

Michael Bergmann
fonte
-2

Tente o seguinte:

Faça o download em http://www6.guitar-pro.com/en/index.php?pg=download do arquivo .deb, mas não o instale.

Baixar e instalar getlibs Then:

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

Por fim, inicie-o com (ignorar erros):

/opt/GuitarPro6/gp-launcher.sh
jasmim
fonte
Isso não funcionou melhor do que eu fiz antes :(
Jeggy