我有以下ubuntu的安装脚本:
#!/bin/bash
sudo apt update
sudo apt full-upgrade -y
sudo apt install jq
sudo apt autoclean -y
sudo apt autoremove
以下将在fedora,red hat,mageia或其他基于rpm的发行版下工作
...或者语法是否需要更多更改?
#!/bin/bash
sudo rpm update
sudo rpm full-upgrade -y
sudo rpm install jq
sudo rpm autoclean -y
sudo rpm autoremove
我还可以采取以下措施吗?:
#!/bin/bash
if [ $(command -v yum) ]
then
sudo yum update
sudo yum full-upgrade -y
sudo yum install jq
sudo yum autoclean -y
sudo yum autoremove
else
sudo rpm update
sudo rpm full-upgrade -y
sudo rpm install jq
sudo rpm autoclean -y
sudo rpm autoremove
fi
rpm
基本上等同于dpkg
,不等同apt
; 的apt
当量是yum
(在RHEL和CentOS以释放7),或dnf
(在Fedora,和RHEL和开始释放8 CentOS的),或zypper
(在SuSE) 。对于您的特定命令:
sudo dnf distro-sync
sudo dnf install jq
sudo dnf clean all
sudo dnf autoremove
或者
sudo yum upgrade
sudo yum install jq
sudo yum clean all
(这jq
是可行的,因为在两种情况下都以相同的名称打包。这并不总是正确的;给定的软件可以以不同的名称打包在不同发行版中,甚至可以在给定发行版的不同发行版中打包。)
有关详细信息,请参见《 Pacman Rosetta》和《 Ubuntu RHEL迁移指南》。
您可能想要研究配置管理工具,它们将帮助您消除差异(或至少更有效地应对它们)。
您的if [ $(command -v yum) ]
测试存在缺陷,因为yum
可以安装在Debian衍生产品(包括Ubuntu)上;它的存在并不意味着它是程序包管理器。您可能应该检测到正在运行的操作系统,并以此为基础进行选择。请参阅如何可靠地获取操作系统的名称?有关详细信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句