다음 우분투 설치 스크립트가 있습니다.
#!/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
답변1
rpm
대부분 동일함 dpkg
, 아니오 apt
동일함은 apt
( yum
버전 7 이전의 RHEL 및 CentOS에서) 또는 dnf
(버전 8부터 시작하는 Fedora 및 RHEL 및 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
두 경우 모두 동일한 이름으로 패키지되어 있기 때문에 작동합니다. 항상 그런 것은 아닙니다. 특정 소프트웨어는 다른 배포판이나 심지어 특정 배포 팩의 다른 버전에서 다른 이름으로 패키지될 수 있습니다.)
바라보다팩맨 로제타그리고Ubuntu RHEL 마이그레이션 가이드더 알아보기.
차이점을 추상화하는 데 도움이 되는(또는 최소한 더 강력하게 처리하는 데) 도움이 되는 구성 관리 도구를 살펴보고 싶을 수도 있습니다.
귀하의 테스트는 Debian 파생 제품(Ubuntu 포함)에 설치할 수 있기 if [ $(command -v yum) ]
때문에 결함이 있습니다 . 테스트가 있다고 해서 패키지 관리자라는 의미는 아닙니다. yum
실행 중인 운영 체제를 감지하고 이를 기반으로 선택해야 합니다.운영 체제의 이름을 안정적으로 얻는 방법은 무엇입니까?더 알아보기.
답변2
아니요, 와 의 옵션과 매개변수는 apt
다르며 yum
대부분의 경우 패키지 이름도 다릅니다.
당신 은 또한 rpm
혼란 yum
스러워 yum
보입니다 apt
. 예 백엔드 , 예 백엔드 .rpm
dpkg
dpkg
apt
rpm
yum
man
두 페이지를 모두 살펴보고 apt
동등한 yum
옵션을 찾아야 합니다. 또는 puppet
배포판 간의 많은 운영 체제 차이점을 추상화할 수 있는 구성 관리 도구를 살펴볼 수도 있지만 이는 현재 수행 중인 작업에 비해 약간 과잉일 수 있습니다.