有没有好的方法可以管理/跟踪 Ubuntu 机器上已安装的软件?
这些年来,我们不断改进我们的系统,安装各种有用的工具,使我们在自己的系统中更加“自在”。然后有一天,我们必须买一台新笔记本电脑,安装新版本的 Ubuntu,复制所有文件并设置新系统。然后花几天、几周甚至几个月的时间重新安装所有以前安装的应用程序。
在此过程中,将所有以前的申请延续下来将会非常有帮助。
实现此目的的最佳方法是什么? apt 肯定会维护所有已安装软件包的数据库,但是如何在新安装的系统中轻松地重新安装所有这些软件包?
答案1
dpkg --get-selections > YourFile.txt
会将您当前的所有包的名称放入一个文本文件中。
然后,在新机器上将其放在YourFile.txt
某处(我将使用桌面作为示例)并执行以下操作:
sudo apt-get update
sudo apt-get install aptitude
dpkg --set-selections < ~/Desktop/YourFile.txt
sudo apt-get dselect-upgrade
sudo aptitude install $(cat ~/Desktop/YourFile.txt | awk '{print $1}')
编辑并注明:这将重新安装您已安装的所有软件包。因此,如果您现在正在使用(例如)xubuntu 12.04,但您的新机器将是 kubuntu 14.04,那么您的桌面管理器就会出现许多问题,在这种情况下,您可能需要编辑YourFile.txt
以摆脱其中的一些问题
答案2
上述两个答案都没有提到的一件事是那些来自非标准 PPA 的应用程序——我遇到过一个备份/重新安装脚本,它
备份:
dpkg --get-selections > ~/Package.list
sudo cp -R /etc/apt/sources.list* ~/
sudo apt-key exportall > ~/Repo.keys
恢复
sudo apt-key add ~/Repo.keys
sudo cp -R ~/sources.list* /etc/apt/
sudo apt-get update
sudo apt-get install dselect
sudo dpkg --set-selections < ~/Package.list
sudo apt-get dselect-upgrade -y
我不能为此承担任何责任,是的,它确实存在与上述评论中提到的相同的版本问题,但如果您要寻找的是干净的备份/重新安装,这可能会有所帮助。
另请注意,我已稍微修改了 rsync 脚本以供自己使用
答案3
在旧系统上,运行
sudo apt-get install dpkg-repack fakeroot && mkdir ~/dpkg-repack; cd ~/dpkg-repack && sudo fakeroot -u dpkg-repack `dpkg --get-selections | grep install | cut -f1`
将每个已安装的应用程序作为 deb 包放入文件夹中,然后使用以下命令将其安装在目标计算机上
sudo dpkg -i *.deb
最好的部分是,它会一次安装所有内容,因此您不必担心依赖关系。