apt-get 사람들을 위해 bash 스크립트에서 zypper를 사용하는 방법은 무엇입니까?

apt-get 사람들을 위해 bash 스크립트에서 zypper를 사용하는 방법은 무엇입니까?

bash 스크립트에서 apt-get에서 zypper로 마이그레이션하는 방법에 대해 몇 가지 질문이 있습니다.

이것은 무엇을 의미합니까?

sudo apt-get install curl --assume-yes

(여기서 컬은 어떤 패키지라도 될 수 있습니다)

찾았어요Zypper 치트 시트 - openSUSE. 아주 좋아! 그러나 나는 여기서 경험의 목소리에 감사드립니다. 응답이 필요한 항목을 건너 뛰지 않고 모든 프롬프트에 자동으로 동의하려는 스크립트에서 zypper를 사용하는 올바른 방법은 무엇입니까?

경험이 부족하여 다음을 사용하고 싶습니다.

sudo zypper --non-interactive --no-gpg-checks --quiet install --auto-agree-with-licenses curl

그러나 이것이 정말로 동등한가 --assume-yes?

이것과 동등한 것은 어떻습니까?

sudo apt-get autoremove -y
sudo apt-get autoclean -y

이것사람이 없다는 걸 보여주네요...

gdebi-core에 대한 대안이 있습니까? 아니면 zypper의 "강력한 만족도 해결사"에는 gdebi가 필요하지 않습니까? 이전 버전에 패키지를 설치해야 하고 이미 .deb 파일이 있는 상황에서 gdebi를 사용합니다(모든 종속 항목은 아님).

답변1

일반적으로 zypper를 비대화형으로 실행할 때는 --non-interactive바로가기에서 패턴을 사용해야 합니다.-n

zypper -n install curl

이것은 에서 오는 사람들에게는 혼란스러울 수 있습니다 apt-get install -y curl. 일부 zypper 하위 명령은 명령별 -y/ --no-confirm옵션을 -n/ 의 별칭 으로 지원 --non-interactive하지만 모든 하위 명령이 지원하는 것은 아닙니다. 이 install명령은 이를 구현하므로 위 명령과 동일합니다.

zypper install -y curl

-y오세요뒤쪽에 install, 전역 -n옵션이 제공됩니다.앞으로하위 명령( zypper install -n다른 것을 의미합니다. 매뉴얼 페이지를 읽으십시오).

[편집] 다음 부분은 더 이상 정확하지 않지만 역사적 참조를 위해 유지됩니다. 현재 zypper는 --gpg-auto-import-keys새 저장소와 연결된 gpg 키를 자동으로 가져오고 신뢰하는 옵션을 지원합니다.


문서에 따르면대화형 모드가 없으면 GPG 키를 사용할 수 없습니다.

새 키는 대화형 모드에서만 신뢰하거나 가져올 수 있습니다.

GPG 키 가 있어도 --no-gpgp-checks거부됩니다.

스크립트 해결 방법은 파이프와 다음을 사용하는 것입니다 echo.

zypper addrepo http://repo.example.org my_name | echo 'a'

답변2

--non-interactive 옵션이 있습니다. 매뉴얼 페이지에서:

Switches  to  non-interactive  mode. 
In this mode zypper doesn't ask user to type answers to various prompts, but uses default answers automatically. 
The  behaviour of this option is somewhat different than that of options like '--yes', since zypper can answer different answers to different questions. 
The answers  also  depend on other options like '--no-gpg-checks'.

apt-get의 자동 삭제에는 실제 통신이 없습니다. 가장 가까운 것은 명령 --clean-deps의 option remove으로 종속성을 즉시 삭제합니다(나중에는 삭제하지 않음).

답변3

이것은 샘플입니다

zypper --non-interactive --quiet addrepo --refresh -p 90 http://packman.inode.at/suse/openSUSE_Leap_15.0/ 'packman'
zypper --gpg-auto-import-keys refresh
zypper --non-interactive dist-upgrade --allow-vendor-change --from packman
zypper --non-interactive install vlc vlc-codecs

물론 다음과 같은 더 많은 옵션을 포함할 수 있지만 --auto-agree-with-licenses이것이 이전 또는 이후에 영향을 미칠 것이라는 점을 기억하십시오.install

답변4

이것은 나에게 효과적이었습니다(SLES12SP3에서 확인).

zypper --non-interactive --quiet ar -C http://myrepo myrepo
zypper --gpg-auto-import-keys ref

메모 -C/--no-check.zypper ar

이제 패키지를 설치할 수 있습니다.

zypper in -y --auto-agree-with-licenses vim

관련 정보