在另一个系统上安装相同的debian软件包


Answers:


17

备份:

sudo dpkg --get-selections > /tmp/dpkglist.txt

恢复:

sudo dpkg --set-selections < /tmp/dpkglist.txt
sudo apt-get -y update
sudo apt-get dselect-upgrade

另请参见此问题以获取其他选项和信息:Ubuntu,如何设置一台新计算机,例如现有计算机

我在日常cronjob中运行了上述内容,该工作将dpgklist检查为SVN,作为我们服务器清单的一部分。这将使您能够合理合理地准确记录服务器中已安装软件包的清单,并易于快速进行并排比较,以查看服务器是否缺少特定软件包。


1
我收到每个输入行的错误消息: dpkg: warning: package not in status nor available database at line ...
danorton

由于很少的ubuntu版本,这种方式行不通
QkiZ

10

aptitude也满足此用例,并且保留了其他方法没有的有关“自动安装”软件包的信息。在参考计算机上运行以下命令:

aptitude search -F '%p' '~i!~M' > package_list 

复制package_list到另一台机器并运行

xargs aptitude --schedule-only install < package_list; aptitude install; 

只是一个小笔记。根据aptitude参考手册,默认情况下,“ package”字段为“ expandable”,因此aptitude search -F '%p' '~i!~M' > package_list也可以正常工作。
chronos 2013年

关于软件包备份:请参阅deborphan@ bogdan.org.ua
2013

[insert your own linebreaks, since http://serverfault.com/editing-help#linebreaks lies] 关于软件包还原:这将需要以root身份完成,不是吗?如果是这样,<br/> xargs在还原命令行中= xargs aptitude-仅计划安装<package_list; 资质安装; 让我想知道,<br/> 1.为什么aptitude需要xargsdpkg --set-selections不。<BR/> 2.假设aptitude 确实需要的xargs,在那里把一个或多个sudo在你恢复命令行?否则,假设这是必要的,请获得root权限以运行该行。
TomRoche 2015年

0

这是一个好主意,如果您习惯这样做,则还可以使用apt-proxy设置一台服务器。


在使用了多个apt代理之后,我最终决定使用apt-cacher-ng。apt-cacher-ng的安装非常简单,并且从多个角度看,它比原始的apt-proxy更健壮。每个人都有自己的最爱。 unix-ag.uni-kl.de/~bloch/acng
faultyserver

我的投票是大约,这是唯一没有某种疯狂的投票。
womble

有趣的是……我实际上没有尝试过任何其他选择。

0

仅在按照http://rayslinux.blogspot.de/2012/10/ubuntu-1210-dpkg-warning-package-not-in.html运行其他命令后,faultyservers回答才对我有用

sudo apt-get install dselect sudo dselect access sudo dselect update

在那之前

sudo apt-get dselect-upgrade

只返回

[...]
dpkg:警告:软件包不在数据库中的第302行:xfonts-utils
dpkg:警告:发现未知的软件包;这可能意味着可用的数据库已过时,需要通过前端方法
pi @ FHEM-new:/ tmp $ sudo apt-get dselect-upgrade进行更新
读取软件包列表...完成
构建依赖关系树
读取状态信息...完成
0升级,0新安装,0删除和0未升级。

我试图在我的新Raspberry(Raspbian GNU / Linux 8(jessie))上从旧的Raspberry Pi(运行Raspbian GNU / Linux 7(轻声))安装相同的软件包。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.