如何获取apt-get download的下载文件名?

如何获取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

您可以尝试解析的输出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}')

答案2

这是一个名为的脚本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

答案3

制作脚本:

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

这应该适用于所有软件包。它可能适用于 PPA 或外部存储库,也可能不适用于。

相关内容