apt-get에서 온 누군가를 위해 bash 스크립트에서 zypper를 사용하는 방법은 무엇입니까?


12

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

이것과 동등한 것은 무엇입니까?

sudo apt-get install curl --assume-yes

(컬은 모든 패키지가 될 수 있습니다)

Zypper Cheat Sheet-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가 필요하지 않습니까? 이전 버전에 패키지를 설치해야하는 경우 gdebi를 사용하고 .deb 파일이 이미 있습니다 (모든 종속성이 아님).

답변:


10

일반적으로 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 키를 승인하는 방법은 없습니다.

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

심지어와 --no-gpgp-checksGPG 키가 거부됩니다.

스크립트의 해결 방법은 pipe 및 echo:

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

1
진심이야? 거기의  -n옵션과  -y옵션 그리고 그들은 같은 일을 의미 하지만, 명령 줄에서 다른 위치에 배치해야합니까? 예, 혼란 스럽습니다. (확실하게하려면 : 나는 메신저를 촬영하고 있지 않다, 나는 개발자가 사용성 문제에 대해 더 생각해야한다고 말하고있다.)
G-남자 '분석 재개 모니카'말한다

@ G-Man-글쎄요. :)는 zypper-n옵션을 선택합니다. install하위 명령은 모두가 -y글로벌 별칭있는 편리 옵션 -n옵션은, 또한 그것의 자신 -n의 줄임말 인을 --name. 기능별로 패키지를 설치할 수 있습니다. 따라서 zypper install -n blah이름이 지정된 패키지 만 해결하고을 제공하는 패키지는 blah고려하지 않도록 지정 합니다 blah . 이를 사용하지 않으면 zypper는 RPM (버전 비교 포함)의 제공 섹션을 기반으로 분석 할 수 있으므로 종속성 분석이 더 쉬워집니다. zypper install 'python>3.5'예를 들어.
dannysauer

다른 용도로 zypper install -n제공되는 기능을 가진 특정 패키지를 설치하려는 경우 주로 사용 합니다. 예를 들어, 몇 가지 vi 구현이있을 수 있으며 특정 vi패키지가 어떤 이유로 리포지토리에서 누락 된 경우 해상도가 gvim (vi를 제공)으로 떨어지지 않고 vi라는 특정 패키지 만 원할 수 있습니다. 개인적으로, 나는 짧은 옵션의 혼란스러운 성격을 싫어하고 스크립트 나 다른 사람 (나 같은 사람)이 나중에 읽을 필요가있는 다른 곳에서는 거의 사용하지 않습니다. : D
dannysauer

8

--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옵션으로, remove종속성을 즉시 정리하지만 나중에는 정리하지 않습니다.


zypper.conf다른 패키지 관리자와 같이 영구적으로 확인하기 위해 이러한 옵션을 추가 할 수 있습니까?

모르겠어요 한동안 수세를 사용하지 않았으므로 확인할 수 없습니다.
mat

pacman, apt 및 yum / dnf와 달리 zypper에서는 불가능한 것 같습니다 :-(

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


2

이것은 나를 위해 일했습니다 (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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.