Off*_*ics 19 linux software-installation
我时不时地需要重新安装 Linux 系统(主要是基于 Ubuntu 的发行版)。重新安装我需要的每一个软件的过程真的很无聊而且很耗时。有什么软件可以帮助我吗?Windows 有 Ninite,Linux 有其他东西吗?
编辑:感谢所有的答案!我选择了 Ansible,它是一个了不起的工具。
Mar*_*rad 41
在基于 Debian/Ubuntu 的系统上,您可以将已安装的软件包列表转储到文件中
dpkg --get-selections > my_package_list.txt
Run Code Online (Sandbox Code Playgroud)
并通过运行再次安装它们
apt-cache dumpavail | sudo dpkg --merge-avail
sudo dpkg --set-selections < my_package_list.txt
sudo apt-get dselect-upgrade
Run Code Online (Sandbox Code Playgroud)
第一行确保dpkg的数据库是最新的(现在大多数人使用apt安装维护自己数据库的软件包),第二行导入您保存的选择,第三个命令安装选定的软件包。有关详细信息,请参阅Debian 管理员手册。
如果您已经安装了来自第三方存储库的软件包,您需要在执行上述恢复步骤之前添加这些存储库。
Aptitude 会自动安装依赖项(例如应用程序所需的库)。这些包被标记为“自动”,可以在不再需要时自动删除。如果您想保留这些“自动”标志,我们将无法使用,dpkg因为它不会跟踪自动安装的软件包。相反,我们必须使用稍微更神秘的
LC_ALL=C aptitude search -F '%p %C' '~i!~M' > my_package_list.txt
Run Code Online (Sandbox Code Playgroud)
这将搜索所有已安装 ( ~i) 而非 ( !) 标记为自动 ( ~M) 的软件包。对于每个匹配的包,包名称 ( %p) 和状态 ( %C) 将被打印出来(这模仿了 的输出dpkg --get-selections)。LC_ALL=C确保所有输出均以英语完成,无需翻译成母语。使用上面提到的命令安装此列表中的软件包。有关详细信息,请参阅aptitude 用户手册。
Ale*_*ies 10
Ansible 是一种开源软件供应、配置管理和应用程序部署工具。它可以在许多类 Unix 系统上运行,并且可以配置类 Unix 系统以及 Microsoft Windows。它包括自己的声明性语言来描述系统配置
(来自维基百科。)主页(Github)。
同一类别中还有其他几个。阅读ansible应该会给你提供搜索其他词汇的词汇,并在需要时进行比较。Nix是一个较新的竞争者。有人说“更复杂,但也许恰到好处。”。厨师也在现场。
主机名myhost、模块的Ansible 示例apt(替换为yum或其他):
ansible -K -i myhost, -m apt -a "name=tcpdump,tmux state=present" --become myhost
Run Code Online (Sandbox Code Playgroud)
列表“tcpdump,tmux”可以用逗号扩展。(事实上,主机名myhost在命令行中出现了两次,因为我们使用的不是固定的主机清单列表,而是带有尾随逗号的临时清单。)
这只是触及皮毛,Ansible 拥有广泛的模块集合。