/usr/share
我经常对安装触发器 (postinst、postrm) 或软件包的某些部分 (如和)感兴趣/etc
。目前,我正在运行下一个命令来检索源代码:
apt-get source [package-name]
缺点是,该文件通常比二进制包大得多,并且不反映安装树。
现在,我正在通过以下方式下载软件包http://packages.ubuntu.com/:
- 搜索
[package-name]
- 选择套餐
- 点击 amd64/i386 下载
- 下载实际文件
这对我来说花了太长时间,作为一个真正喜欢 shell 的人,我想做类似下面的事情(假想) 命令:
apt-get get-deb-file [package-name]
我在apt-get 手册页。我发现最接近的方法是--download-only
使用开关,但是这会将包放入/var/cache/apt/archives
(需要 root 权限)而不是当前目录中。
答案1
您可以使用或的download
子命令。例如,如果apt
apt-get
aptitude
包价是你想要的包,以下任何一个都可以:
apt-get download $PKG
apt download $PKG
aptitude download $PKG
这不需要 root 权限。也可以使用apt-get
和来近似实现相同的效果wget
:
wget $(apt-get install --reinstall --print-uris -qq $PKG | cut -d"'" -f2)
但是,这将获取安装该包所需的所有包,因此您可以尝试限制它:
wget $(apt-get install --reinstall --print-uris -qq $PKG | cut -d"'" -f2 | grep "/${PKG}_")
您还可以将 wget 行放入函数中,以便能够将其用作命令 apt-download,并以软件包名称作为参数:
function apt-download { wget -c $(apt-get install --reinstall --print-uris -qq $1 | cut -d"'" -f2); }
请注意修改:$PKG 被 $1 替换,并且 -c 参数可以继续中断的下载。
答案2
sudo apt-get -o dir::cache::archives="/path/to/folder/" -d install package
笔记:
您需要在目标文件夹中创建一个名为 partial 的文件夹。
答案3
在 Ubuntu 14.04(我相信是apt
包版本)中,包含将给定包下载为当前目录中的命令。1.0.1ubuntu2
apt-get
download
.deb
例如,假设我们要下载文件管理器Ranger
:
$ apt-get download ranger
结果是:
$ ls . | grep ranger
ranger_1.6.0-1_all.deb
答案4
sudo apt-get install devscripts
dget [package-name]