Rodando pacotes .deb no Fedora 35 sem coverte-los com o alien |
É comum o conhecimento sobre a execução de pacotes de uma distribuição em outra que não pertença à mesma família através do programa Alien; O Alien é uma ferramenta que converte pacotes de uma distribuição Linux para outra; porém, alguns erros podem ocorrer nesse processo.
Mais ou menos em 2018 eu fiz um vídeo intitulado "Rodando pacotes .deb sem instalar" mostrando que é possível fazer esse tipo de tarefa sem a necessidade de convertê-los. O maior problema deste vídeo é que executei um pacotes .deb... no próprio Debian... Digamos que isso acaba não provando que é possível executar pacotes da família Debian em outras famílias de distribuições.
Pensando nisso eu decidi fazer um novo vídeo porém, desta vez executando o mesmo programa empacotado para o Debian no Fedora seguindo o mesmo processo do vídeo anterior e um pouco mais. Confiram o vídeo:
É possível também executar programas em pacotes .rpm em outras distribuições que não sejam da família Fedora, mas nesse caso são utilizadas técnicas diferentes. Enquanto os pacotes .deb são na verdade empacotamentos .ar (após serem compactados), os pacotes .rpm por sua vez são empacotamentos cpio.
Para que possamos melhor interagir com o cpio, mostrarei como gerar seu tipo pacote porém, de certa forma, em ordem inversa uma vez que eu já havia trabalhado no desempacotamento do Google Chrome e aproveitei a mesma situação.
No exemplo abaixo, na primeira linha marcada podemos ver que listamos os arquivos contidos no pacote google-chrome-stable_current_x86_64.rpm e que foram desempacotados.
Na segunda linha da imagem acima empacotamos tudo através do comando cpio. Porém, o cpio segue o processo conforme a explicação a seguir e exibido na imagem abaixo. Primeiro listamos todo o conteúdo encanamos a saída (|) do comando ls para a entrada do comando cpio com a opção -o e redirecionamos sua saída padrão (>) para um arquivo. Um pouco trabalhoso, mas é assim que funciona.
E por fim, na terceira linha da imagem podemos constatar que foi gerado o arquivo backup.cpio.
Agora sim, podemos trabalhar na explicação do desempacotamento dos pacotes .rpm uma vez que precisamos do cpio para isso. Diferente dos pacotes .deb, os pacotes .rpm precisam de um comando específico para serem desempacotados; nesse caso, o comando rpm2cpio (essa é exatamente a função do rpm2cpio: Extrair arquivo cpio de pacotes rpm).
De acordo com o manual online do rpm2cpio, existem duas formas de extrair arquivos do pacote rpm. A primeira é exatamente a forma que apresento na imagem abaixo e a segunda encanando a saída do comando cat para a entrada do comando rpm2cpio e depois encanando a saída do comando rpm2cpio para a entrada do comando cpio (cat glint-1.0-1.i386.rpm | rpm2cpio - | cpio -tv).
Então, tenham sempre em mente que, por se tratarem de binários no padrão ELF LSB (Linux Standard
Base), os programas do Linux são passíveis de execução na maioria das distribuições; o que acaba impedindo que esses programas sejam executados são as formas como esses binários são empacotados e as informações contidas em seus pacotes.
Base), os programas do Linux são passíveis de execução na maioria das distribuições; o que acaba impedindo que esses programas sejam executados são as formas como esses binários são empacotados e as informações contidas em seus pacotes.
Nenhum comentário:
Postar um comentário
Viu algum erro e quer compartilhar seu conhecimento? então comente aí.
Observação: somente um membro deste blog pode postar um comentário.