Answers:
备份:
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,作为我们服务器清单的一部分。这将使您能够合理合理地准确记录服务器中已安装软件包的清单,并易于快速进行并排比较,以查看服务器是否缺少特定软件包。
aptitude
也满足此用例,并且保留了其他方法没有的有关“自动安装”软件包的信息。在参考计算机上运行以下命令:
aptitude search -F '%p' '~i!~M' > package_list
复制package_list
到另一台机器并运行
xargs aptitude --schedule-only install < package_list; aptitude install;
aptitude search -F '%p' '~i!~M' > package_list
也可以正常工作。
deborphan
@ bogdan.org.ua
[insert your own linebreaks, since http://serverfault.com/editing-help#linebreaks lies]
关于软件包还原:这将需要以root身份完成,不是吗?如果是这样,<br/> xargs
在还原命令行中= xargs aptitude-仅计划安装<package_list; 资质安装; 让我想知道,<br/> 1.为什么aptitude
需要xargs
?dpkg --set-selections
不。<BR/> 2.假设aptitude
确实需要的xargs
,在那里把一个或多个sudo
在你恢复命令行?否则,假设这是必要的,请获得root权限以运行该行。
这是一个好主意,如果您习惯这样做,则还可以使用apt-proxy设置一台服务器。
仅在按照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(轻声))安装相同的软件包。
dpkg: warning: package not in status nor available database at line ...