migrando (NÃO instalando) software obscuro legado de 32 bits para 16 bits LTS de 64 bits

0

Eu tenho um servidor muito antigo (8 anos!) que foi recentemente danificado por um pico de energia quando um transformador de baixa tensão no prédio "deixou de ser". Ele não será mais inicializado a partir do HDD, de jeito nenhum como. Este servidor estava executando o Slackware 13 e servindo um pacote de contabilidade escrito na linguagem PVX. Todo o sistema é / foi de 32 bits. Eu consegui inicializar o sistema a partir do USB usando o Ubuntu 16.04 LTS, manualmente instalado, então iniciei, os vários softwares de raid necessários para criar um dos arrays, falsificando um monte de links simbólicos, restaurando alguns diretórios .ssh e voilá! temos uma máquina pseudo-estável que serve o software de contabilidade em um ambiente de produção. Estou prendendo a respiração de que não há falta de energia que supere o no-break, já que todo o sistema é o LiveCD.

Nesse meio tempo, configurei um novo servidor a partir da mesma imagem usada para inicializar a máquina antiga (16.04 LTS), é claro, é de 64 bits. Eu copiei os diretórios de software e dados do servidor antigo, todas as permissões e locais estão corretos. Inicialmente tive problemas para iniciar os daemons de PVX, já que eles nem sequer eram reconhecidos como executáveis, até que eu adicionei manualmente alguns pacotes i386 (libc6, libc5, libncurses5, etc., como era necessário /lib/ld-linux.so.2). Agora os scripts de inicialização serão executados, os daemons de escuta estarão atentos, os clientes de PC poderão se conectar, mas eles não poderão efetuar login ... um erro será retornado e outro programa PVX (LOGON) não será executado. É estranho para mim que o LiveCD "try Ubuntu" execute o software muito bem, sem nenhuma modificação (ou seja, sem instalação manual de pacotes de 32 bits), mas a instalação limpa na nova máquina não possui muitas bibliotecas. Além disso, na instalação do LiveCD, há ~ 90 bibliotecas no nível superior do diretório / lib, enquanto na instalação limpa existe apenas um: ld-linux.so.2. todas as outras bibliotecas estão nos subdiretórios / lib / i386-linux-gnu e / lib / x86_64-linux-gnu. Eu poderia simplesmente gerar os links apropriados em / lib que apontam para arquivos nos diretórios i386 e i86_64, mas estou hesitante em começar a fazer uma bagunça ...

Qualquer ajuda muito apreciada.

    
por Dave Spear 16.08.2016 / 23:43

1 resposta

0

Você obteve o primeiro passo, obtendo o carregador de 32 bits instalado (seu /lib/ld-linux.so.2 do pacote libc6-x32), portanto a saída do ldd em seu executável de 32 bits deve ser razoável (ou seja, não reivindicando "não um executável dinâmico") e você pode identificar onde o programa espera encontrar as bibliotecas e adicionar o necessário para ele. Eu não achei tão difícil conseguir que progs antigos de 32 bits funcionassem dessa maneira.

    
por ubfan1 17.08.2016 / 22:05