This topic created in 4236 days ago, the information mentioned may be changed or developed.
前提:本地服务器无外网,只有通过deb装
网上多是生成依赖关系图,但是我这种情况还得一个一个的去源里慢慢找,再一个一个的下载。
完了还不一定漏掉一个两个的
所以我想伸手的是:有没有一个工具能根据源和包名称来生成一个依赖包在该源中的链接表,批量下载,最好还能生成依赖顺序,从底层往上记录,这样也方便顺序安装。
不知道有没有现成的,或者,这是不是一个good idea
12 replies • 2018-08-30 10:00:01 +08:00
 |
|
1
9hills Nov 2, 2014 1
Ubuntu:
清空 /var/cache/apt/archives
sudo apt-get -y install --reinstall --download-only XXXX
这样XXXX以及它的所有依赖包就会存到archives目录,copy走,批量install即可
|
 |
|
2
046569 Nov 2, 2014
我觉得自己建个镜像更好些,当作离线服务器.就是需要个比较大的硬盘...
|
 |
|
3
calvey Nov 2, 2014
把整个源脱下来就好了
|
 |
|
4
cbsw Nov 2, 2014
apt-offline
|
 |
|
5
ifishman Nov 2, 2014 via Android
@ 9hills 我的情况比较特殊,内网服务器是ARM架构,外网的是X86,这样是否可以换ARM源,再update & --download-only ?
|
 |
|
6
wisatbff Nov 2, 2014
能解决网的问题就优先解决,不然要手动装一个大的软件能把人累死。可以像楼上说的自己整个本地源。。 先获得所有依赖 $ dpkg -I package.deb 然后找/写个脚本..
|
 |
|
8
ifishman Nov 2, 2014
@ 9hills 实验了一把,apt还是会去找i386的资源,然后报404错误,难道我姿势不对?
|
 |
|
9
wanganjun Nov 2, 2014
曾经试过挂载iso文件,从iso中直接获取包,可以用。只是是在intel的cpu上试的
|
 |
|
10
withrock Oct 10, 2015
apt-offline +1 你把那几个特别大的镜像 ISO 下载到内网就可以了
|
 |
|
12
CheneyC Aug 30, 2018
为了回答这个问题,还专门注册了一个账号,也是佩服自己。另外新用户 7000s 后回复的设置佩服这个网站;
就题主的需求,基于几个源和二进制包名,得到这个二进制包的向上所有依赖包,架构 deb 系。 这里介绍两个相关命令: 1 ) apt-cache depends xx #获取 xx 的依赖关系 例如 ----------------------- root@cbs-06:/home/cc# apt-cache depends vim vim 依赖: vim-common 依赖: vim-runtime 依赖: libacl1 依赖: libc6 依赖: libgpm2 依赖: libpython2.7 依赖: libselinux1 依赖: libtinfo5 建议: <ctags> exuberant-ctags:i386 exuberant-ctags 建议: vim-doc 建议: vim-scripts 冲突: vim:i386
----------------------- 2 ) apt-rdepends vim #依次返回向上依赖的包 例如: ----------------------- root@cbs-06:/home/cc# apt-rdepends vim Reading package lists... Done Building dependency tree Reading state information... Done vim Depends: libacl1 (>= 2.2.51-8) Depends: libc6 (>= 2.15) Depends: libgpm2 (>= 1.20.4) Depends: libpython2.7 (>= 2.7) Depends: libselinux1 (>= 1.32) Depends: libtinfo5 Depends: vim-common (= 2:7.4.052-1ubuntu3) Depends: vim-runtime (= 2:7.4.052-1ubuntu3) libacl1 Depends: libattr1 (>= 1:2.4.46-8) Depends: libc6 (>= 2.14) PreDepends: multiarch-support libattr1 Depends: libc6 (>= 2.4) PreDepends: multiarch-support libc6 Depends: libgcc1 libgcc1 Depends: gcc-4.9-base (= 4.9-20140406-0ubuntu1) Depends: libc6 (>= 2.14) PreDepends: multiarch-support
.... 中间内容较多省略了....
debconf PreDepends: perl-base (>= 5.6.1-4) perl-base PreDepends: dpkg (>= 1.14.20) PreDepends: libc6 (>= 2.14) debconf-2.0 mime-support vim-common Depends: libc6 (>= 2.3.4) vim-runtime
-----------------------
综上:apt-rdepends 这个命令可以满足题主的要求,对结果进行正则匹配下再下载到本地即可。 eg: j=0;for i in `apt-rdepends XX |grep "Depends:" |awk '{print $2}' |sort |uniq `;do echo "$j)---$i";apt-get download $i;j=$(($j+1));done
|