설치 스크립트 포팅: rpm이 apt를 대체할 수 있나요?

설치 스크립트 포팅: rpm이 apt를 대체할 수 있나요?

다음 우분투 설치 스크립트가 있습니다.

#!/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. 예 백엔드 , 예 백엔드 .rpmdpkgdpkgaptrpmyum

man두 페이지를 모두 살펴보고 apt동등한 yum옵션을 찾아야 합니다. 또는 puppet배포판 간의 많은 운영 체제 차이점을 추상화할 수 있는 구성 관리 도구를 살펴볼 수도 있지만 이는 현재 수행 중인 작업에 비해 약간 과잉일 수 있습니다.

관련 정보