Eu encontrei a resposta:
dpkg -x openssh-server_6.0p1-4+deb7u2_mips.deb openssh_mips_outdir
Estou tentando instalar o servidor openssh em um roteador e preciso de um binário compilado pelo MIPS. Eu baixei o de aqui mas encontro um erro na extração:
$ sudo dpkg --unpack openssh-server_6.0p1-4+deb7u2_mips.deb
dpkg: error processing openssh-server_6.0p1-4+deb7u2_mips.deb (--unpack):
package architecture (mips) does not match system (amd64)
Errors were encountered while processing:
openssh-server_6.0p1-4+deb7u2_mips.deb
O dpkg também está me pedindo privilégios administrativos, o que sugere que ele está tentando instalar o pacote, e não extraí-lo. Não consigo extrair / instalar o arquivo .deb no roteador, pois ele não tem dpkg ou qualquer utilitário de pacote. Eu só posso copiar o servidor como está e emitir um número de comandos para criar os diretórios e chaves apropriados.
O que estou perdendo?
dpkg
é a ferramenta para manipular o banco de dados de pacotes instalados. A ferramenta para manipular um arquivo .deb
é dpkg-deb
.
dpkg-deb -x openssh-server_6.0p1-4+deb7u2_mips.deb openssh-server_mips
ou
dpkg-deb --fsys-tarfile openssh-server_6.0p1-4+deb7u2_mips.deb | gzip -9 >openssh-server_6.0p1-4+deb7u2_mips.tgz
Se preferir, você pode usar dpkg
em vez de dpkg-deb
, já que ele passa os comandos dpkg-deb
. Mas verifique se você está usando as opções corretas; por exemplo, --unpack
é um comando de dpkg
proper, o que significa fazer uma etapa da instalação do pacote (a etapa em que o conteúdo do pacote é descompactado em uma instalação Debian).
Como alternativa, se você não tiver dpkg
, use ar
e tar
.
ar p openssh-server_6.0p1-4+deb7u2_mips.deb data.tar.xz >openssh-server_6.0p1-4+deb7u2_mips.tar.xz
Um deb é apenas um arquivo ar
, para que você possa abri-lo em qualquer programa de visualização de arquivos.