AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1367231
Accepted
raj
raj
Asked: 2021-10-04 13:05:47 +0800 CST2021-10-04 13:05:47 +0800 CST 2021-10-04 13:05:47 +0800 CST

Eu quero executar um aplicativo GNOME antigo

  • 772

Eu sei que o que eu quero fazer é um pouco incomum, mas eu preciso rodar uma versão bem antiga do gThumb (2.10.11, vindo do Ubuntu 10.04) no Ubuntu 20.04.

(Alguém me perguntou nos comentários o porquê, então aqui vai a explicação: essa versão antiga tem um modo de apresentação de slides muito bom, que fornece vários recursos que a versão atual do gThumb presente no Ubuntu 20.04 não oferece. Entre eles estão: 1) opção " ajuste à tela apenas para imagens maiores" funciona no modo de apresentação de slides; 2) As animações GIF são reproduzidas no modo de apresentação de slides; 3) a tecla de atalho "I" - exibir informações sobre a imagem atual - funciona no modo de apresentação de slides. Tudo isso NÃO funciona no gThumb atual).

Até agora, consegui coletar todas as bibliotecas antigas necessárias para executar este aplicativo em um único diretório (para que todas as dependências sejam satisfeitas), o aplicativo é iniciado e a GUI aparece (captura de tela abaixo). No entanto, o aplicativo não consegue se comunicar com o daemon GNOME VFS atual e, portanto, não carrega o conteúdo da pasta, portanto, na verdade, é inutilizável. A seguinte mensagem de erro aparece no terminal:

(gthumb:13485): libgnomevfs-WARNING **: 13:34:54.800: Failed to activate daemon: The name org.gnome.GnomeVFS.Daemon was not provided by any .service files

insira a descrição da imagem aqui

Definitivamente, há alguma incompatibilidade entre o daemon GNOME VFS antigo e o novo e o aplicativo não pode se comunicar com ele. Existe alguma maneira de corrigir isso e fazer o aplicativo ser executado no meu sistema - por exemplo, fazendo com que o aplicativo não use VFS, mas apenas leia diretamente do disco? (exceto ter que reconstruir o aplicativo sozinho, pois não vejo isso viável)

Como o problema está relacionado ao VFS, tentei substituir a libgnomevfs-2.so.0biblioteca que copiei do Ubuntu 10.04 pela mais nova que encontrei, que é do Ubuntu 18.04 (não há libgnomevfs-2.so.0biblioteca disponível para 20.04). No entanto, o efeito é o mesmo. Portanto, a mudança para VFS deve ter ocorrido entre 18.04 e 20.04.

20.04
  • 2 2 respostas
  • 287 Views

2 respostas

  • Voted
  1. drpjkurian
    2021-10-04T17:35:47+08:002021-10-04T17:35:47+08:00

    Você quebrará o sistema operacional devido a problemas de dependências. Por isso, sugiro: Baixe o Ubuntu 10.04 aqui . Instale-o no contêiner da VM e execute o aplicativo nele.

    • 0
  2. Best Answer
    raj
    2021-10-05T11:45:49+08:002021-10-05T11:45:49+08:00

    Consegui resolver o problema. O problema era que, além do daemon GNOME VFS regular ( /usr/libexec/gvfsd, ou /usr/lib/gvfs/gvfsdem versões mais antigas do Ubuntu), havia outro daemon usado pelo gThumb até o Ubuntu 18.04 - /usr/lib/gnome-vfs-2.0/gnome-vfs-daemon. Este daemon não está mais presente no Ubuntu 20.04, então o antigo gThumb não pode acessar arquivos/pastas no disco. Foi necessário copiar o daemon para o Ubuntu 20.04, para que a aplicação possa utilizá-lo.

    A solução completa para fazer o aplicativo rodar é a seguinte (isso é longo e provavelmente ninguém além de mim está interessado nisso, mas como resolvi o problema eu posto uma resposta, talvez alguém no futuro possa usá-lo :)):

    (BTW. Suponho que tudo isso pode ser transformado em um pacote AppImage, se eu soubesse como fazê-lo :))

    1. crie um diretório para o antigo aplicativo gThumb, por exemplo /opt/gthumb_old.
    2. da instalação de trabalho do Ubuntu 10.04 de 64 bits, copie os seguintes arquivos para /opt/gthumb_old(eu tinha essa instalação disponível; caso não esteja disponível, você precisa identificar os pacotes que contêm esses arquivos, baixá-los e extrair os arquivos, o que requer mais trabalhar):
    /usr/bin/gthumb
    /usr/lib/gthumb/libgthumb.so
    /usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so
    /usr/lib/glade/2.0/libbonobo.so
    /usr/lib/glade/2.0/libcanvas.so
    /usr/lib/glade/2.0/libgnome.so
    /usr/lib/gnome-vfs-2.0/gnome-vfs-daemon
    /usr/lib/libart_lgpl_2.so.2
    /usr/lib/libaudiofile.so.0
    /usr/lib/libbonobo-2.so.0
    /usr/lib/libbonobo-activation.so.4
    /usr/lib/libbonoboui-2.so.0
    /usr/lib/libcanberra-gtk.so.0
    /usr/lib/libcanberra.so.0
    /usr/lib/libesd.so.0
    /usr/lib/libfam.so.0
    /lib/libgcrypt.so.11
    /usr/lib/libglade-2.0.so.0
    /usr/lib/libgnome-2.so.0
    /usr/lib/libgnomecanvas-2.so.0
    /usr/lib/libgnome-keyring.so.0
    /usr/lib/libgnomeui-2.so.0
    /usr/lib/libgnomevfs-2.so.0
    /usr/lib/libgnutls.so.26
    /usr/lib/libhal-storage.so.1
    /usr/lib/libhal.so.1
    /usr/lib/libiptcdata.so.0
    /usr/lib/libopenrawgnome.so.1
    /usr/lib/libopenraw.so.1
    /usr/lib/libORBit-2.so.0
    /usr/lib/libORBitCosNaming-2.so.0
    /lib/libpng12.so.0
    /usr/lib/libtasn1.so.3
    /usr/lib/libtiff.so.4
    

    Os arquivos /usr/lib/*.so.*ou acima /lib/*.so.*são links simbólicos para outros arquivos, então é claro que você deve copiar o arquivo para o qual o link aponta, mas o nome de destino deve ser o do link. (Se você usar cpou scpcopiar os nomes acima, não precisa se preocupar com isso, pois isso acontece automaticamente.)

    Você também precisa fazer um link simbólico /usr/lib/x86_64-linux-gnu/libjpeg.so.8 para libjpeg.so.62. /opt/gthumb_oldO aplicativo espera vincular, libjpeg.so.62mas a libjpeg.so.62biblioteca original copiada do Ubuntu 10.04 não funciona corretamente e os arquivos JPEG não são exibidos; então usaremos a biblioteca do sistema atual.

    1. crie um diretório /opt/gthumb_old/gladee copie o conteúdo da /usr/share/gthumb/gladeinstalação do Ubuntu 10.04 para este diretório.

    2. crie um diretório /opt/gthumb_old/modulese copie o conteúdo da /usr/lib/gthumb/modulesinstalação do Ubuntu 10.04 para este diretório.

    3. crie um diretório /opt/gthumb_old/vfs_modulese copie o conteúdo da /usr/lib/gnome-vfs-2.0/modulesinstalação do Ubuntu 10.04 para este diretório.

    4. crie um diretório /opt/gthumb_old/modules_confe copie o conteúdo da /etc/gnome-vfs-2.0/modulesinstalação do Ubuntu 10.04 para este diretório.

    5. crie um subdiretório .gtk-2.0/x86_64-pc-linux-gnu/enginesem seu /home/usernamediretório e copie o arquivo /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.sodo Ubuntu 10.04 para este diretório. Isso é necessário para que menus e outros gadgets de interface do usuário sejam exibidos corretamente (o aplicativo funcionará sem esse arquivo, mas a interface do usuário ficará um pouco distorcida). Se você não tem o Adobe Reader 9 instalado (a última versão disponível para Linux), pode pular o x86_64-pc-linux-gnusubdiretório intermediário e colocar o arquivo apenas em .gtk-2.0/engines. Mas se você tiver o Adobe Reader instalado (como eu), ele precisa de uma versão de 32 bits do arquivo libmurrine.so, que deve estar localizada em .gtk-2.0/i686-pc-linux-gnu/engines, portanto, é melhor usar a versão "mais longa".

    6. crie um link simbólico /usr/share/gthumb/gladeapontando para /opt/gthumb_old/glade.

    7. crie um link simbólico /usr/lib/gthumb/modulesapontando para /opt/gthumb_old/modules(o diretório /usr/lib/gthumbnão existe na instalação padrão do Ubuntu 20.04, então você deve criá-lo primeiro)

    8. crie um link simbólico /usr/lib/gnome-vfs-2.0/modulesapontando para /opt/gthumb_old/vfs_modules(o diretório /usr/lib/gnome-vfs-2.0não existe na instalação padrão do Ubuntu 20.04, então você deve criá-lo primeiro)

    9. crie um link simbólico /etc/gnome-vfs-2.0/modulesapontando para /opt/gthumb_old/modules_conf(o diretório /etc/gnome-vfs-2.0não existe na instalação padrão do Ubuntu 20.04, então você deve criá-lo primeiro)

    10. crie um script /opt/gthumb_old/gvfsd_wrappercom o seguinte conteúdo (o arquivo deve ser executável):

    #!/bin/sh
    GVFSD_DIR=`/usr/bin/dirname $0`
    LD_LIBRARY_PATH=${GVFSD_DIR} ${GVFSD_DIR}/gnome-vfs-daemon
    
    1. copie o arquivo /usr/share/dbus-1/services/gnome-vfs-daemon.servicedo Ubuntu 10.04 para o mesmo diretório no Ubuntu 20.04 ( /usr/share/dbus-1/services) e edite- o da seguinte maneira. O arquivo original tem o seguinte conteúdo:
    [D-BUS Service]
    Name=org.gnome.GnomeVFS.Daemon
    Exec=/usr/lib/gnome-vfs-2.0/gnome-vfs-daemon
    

    Altere para:

    [D-BUS Service]
    Name=org.gnome.GnomeVFS.Daemon
    Exec=/opt/gthumb_old/gvfsd_wrapper
    
    1. Por fim, crie um script /usr/local/bin/gthumb_oldpara executar o aplicativo:
    #!/bin/sh
    LD_LIBRARY_PATH=/opt/gthumb_old /opt/gthumb_old/gthumb
    

    (você também pode criar um lançador no menu ou painel do GNOME referindo-se a este script).

    O aplicativo não entra em conflito com o gThumb 3.8.0 existente do Ubuntu 20.04, pois armazena seus dados de configuração em um local diferente. Ambos podem ser usados ​​independentemente, mas há um possível problema descrito abaixo.

    Observe que o aplicativo trava em um diretório de imagens que possui um .commentssubdiretório contendo comentários criados pela versão mais recente do gThumb. Portanto, caso o aplicativo falhe após entrar em algum diretório, você deve excluir o .commentssubdiretório.

    Também encontrei um caso estranho com dois arquivos de imagem específicos (dos vários milhares que tenho). O aplicativo travou em um diretório que continha links simbólicos para esses dois arquivos que estavam em outro diretório (quando substituí os links simbólicos por cópias dos arquivos ou links físicos, não houve travamento - aconteceu apenas nesses dois arquivos). Se você não tiver links simbólicos em seus diretórios de imagem, esse problema não deve aparecer.

    Captura de tela final do aplicativo de trabalho:

    insira a descrição da imagem aqui

    • 0

relate perguntas

  • Como posso configurar a resolução de domínio curinga local (127.0.0.1) em 18.04..20.04?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve