Как получить имя загружаемого файла apt-get download?

У меня нет привилегии sudo, поэтому я хочу установить программное обеспечение в свой домашний каталог. У меня много пакетов для загрузки, поэтому я хочу написать скрипт для этого. Я использую:

apt-get download libopencv-dev
dpkg-deb -x libopencv-dev_2.4.8+dfsg1-2ubuntu1_amd64.deb /my/path

, но когда я пишу сценарий, я не знаю имя загруженного файла (libopencv-dev_2.4.8+dfsg1-2ubuntu1_amd64.deb), кто-нибудь знает, как получить имя файла apt-get download?

1
задан 10 June 2016 в 16:19

3 ответа

Сделайте сценарий:

PACKAGE=packagename
apt-get download $PACKAGE
dpkg-deb -x $PACKAGE*.deb /my/path

Это должно работать на все пакеты. Это может или не может работать в или внешних репозиториях PPA.

0
ответ дан 10 June 2016 в 16:19

Вот сценарий, названный 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

не забывают делать это исполняемым файлом.

Вот пример использования:

./downloadthis libopencv-dev

сценарий создаст каталог, названный libopencv-dev в Вашем корневом каталоге. Можно отредактировать сценарий и изменение ~/$1 к другому пути (как /my/path, например).

, С другой стороны, Вы могли отредактировать сценарий и изменение ~/$1 к ~/$2, чтобы позволить Вам указывать каталог извлечения, когда Вы запускаете скрипт.

Вот пример этого использования:

./downloadthis libopencv-dev /my/path
1
ответ дан 10 June 2016 в 16:19

Можно попытаться анализировать вывод apt-get download --print-uris, который просто печатает информацию о загрузке, на самом деле не загружая его:

$ 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

Это дает Вам URL, имя файла, ожидаемый размер и хеш. Если бы Вы так выбрали, то Вы могли бы выполнить загрузку и проверку сами также (в этом случае, можно загрузить и сохранить к любому имени файла, которое Вы хотите).

На данный момент:

filename=$(apt-get download libopencv-dev --print-uris | awk '{print $2}')
0
ответ дан 10 June 2016 в 16:19

Другие вопросы по тегам:

Похожие вопросы: