Faça o script:
PACKAGE=packagename
apt-get download $PACKAGE
dpkg-deb -x $PACKAGE*.deb /my/path
Isso deve funcionar para todos os pacotes. Pode ou não funcionar em PPAs ou repositórios externos.
Não tenho privilégios de sudo. Por isso, quero instalar o software em meu diretório pessoal. Eu tenho muito pacote para baixar, então eu quero escrever um script para fazer isso. Eu uso:
apt-get download libopencv-dev
dpkg-deb -x libopencv-dev_2.4.8+dfsg1-2ubuntu1_amd64.deb /my/path
mas quando eu escrevo um script, eu não sei o nome do arquivo baixado ( libopencv-dev_2.4.8+dfsg1-2ubuntu1_amd64.deb
), alguém sabe como obter o nome do arquivo apt-get download
?
Faça o script:
PACKAGE=packagename
apt-get download $PACKAGE
dpkg-deb -x $PACKAGE*.deb /my/path
Isso deve funcionar para todos os pacotes. Pode ou não funcionar em PPAs ou repositórios externos.
Você pode tentar analisar a saída de apt-get download --print-uris
, que apenas imprime informações sobre o download sem baixá-lo:
$ apt-get download vim --print-uris
'http://ppa.launchpad.net/pi-rho/dev/ubuntu/pool/main/v/vim/vim_7.4.1907-1~ppa1~x_amd64.deb' vim_2%3a7.4.1907-1~ppa1~x_amd64.deb 1073208 SHA256:f2d9029ec937fa0d4f16612f21bc2cb4ff2ef8dc16f7f31af660c5cb272d92bc
Ele fornece o URL, o nome do arquivo, o tamanho esperado e o hash. Se você escolher, você também pode fazer o download e a verificação (nesse caso, você pode fazer o download e salvar em qualquer nome de arquivo que desejar).
Por enquanto:
filename=$(apt-get download libopencv-dev --print-uris | awk '{print $2}')
Aqui está um script chamado downloadthis
.
#!/bin/bash
for i in $(apt-cache show $1 | grep Version | sed 's/^Version..//g')
do apt-get download $1
dpkg-deb -x "$1"*"$i"*deb $2
done
Não se esqueça de torná-lo executável.
Aqui está um exemplo de uso:
./downloadthis libopencv-dev
O script criará um diretório chamado libopencv-dev
em seu diretório pessoal. Você pode editar o script e alterar ~/$1
para outro caminho (como /my/path
, por exemplo).
Como alternativa, você pode editar o script e alterar ~/$1
para ~/$2
para permitir que você especifique o diretório de extração ao executar o script.
Aqui está um exemplo desse uso:
./downloadthis libopencv-dev /my/path