Apt-get'den gelen biri için bash komut dosyalarında zypper nasıl kullanılır?


12

Bh komut dosyalarında apt-get'den zypper'a geçmeyle ilgili birkaç sorum var.

Bunun eşdeğeri nedir?

sudo apt-get install curl --assume-yes

(curl herhangi bir paket olabilir)

Zypper Hile Sayfasını buldum - openSUSE . Çok hoş! Ama burada deneyim sesini takdir ediyorum - zypper'ı tüm komut istemlerini otomatik olarak kabul etmek ve yanıt gerektiren şeyleri atlamak istemediğim bir komut dosyasında kullanmanın doğru yolu nedir?

Benim deneyimim ile kullanmak cazip olurdu:

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

Ama bu gerçekten eşdeğer --assume-yesmi?

Bunların eşdeğeri ne olacak?

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

Bu bir tane olmadığını gösterir ...

Gdebi-çekirdeği için bir yedek var mı? Yoksa zdepper'ın "güçlü tatmin edici çözücü" ile gdebi'ye hiç ihtiyaç duyulmuyor mu? Daha eski bir sürüme bir paket yüklemeniz gereken durumlar için gdebi kullanıyorum ve zaten bir .deb dosyasına sahibim (ancak tüm bağımlılıkları değil).

Yanıtlar:


10

Genel olarak, zypper'ı etkileşimli olmayan bir şekilde çalıştırırken --non-interactivekısayolda modu kullanmalısınız -n:

zypper -n install curl

Gelen biri için kafa karıştırıcı gelebilir apt-get install -y curl. Bazı zypper alt komutlar da bir komut özgü desteklemek -y/ --no-confirmiçin takma ad olarak seçeneği -n/ --non-interactivefakat tüm alt komutlar yapamaz. As installkomutu bu uygulamaya yapar bu komut yukarıdaki eşdeğerdir:

zypper install -y curl

Global seçeneğin alt komuttan önce-y gelmesi gerektiğinden sonra gelmesi gerektiğini unutmayın ( farklı bir şey ifade eder; bunun için man sayfasını okuyun).install-nzypper install -n

[Düzenle] Aşağıdaki bölüm artık doğru değil, ancak geçmiş referans olarak saklanıyor. Geçerli zypper, --gpg-auto-import-keysyeni bir havuzla ilişkili gpg anahtarlarını otomatik olarak içe aktarma ve güvenme seçeneğini destekler .


Belgelere göre, etkileşimli mod olmadan bir GPG anahtarını kabul etmenin bir yolu yoktur:

yeni bir anahtara yalnızca etkileşimli modda güvenilebilir veya içe aktarılabilir

--no-gpgp-checksGPG anahtarı ile bile reddedilecektir.

Komut dosyaları için geçici bir çözüm boru kullanmaktır echo:

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

1
Ciddi anlamda? Bir  -nseçenek ve bir  -yseçenek var ve bunlar aynı anlama geliyor, ancak komut satırında farklı konumlara yerleştirilmeleri gerekiyor mu? Evet, kafa karıştırıcı. (Açıkça söylemek gerekirse: Elçiyi vurmuyorum; geliştiricinin kullanılabilirlik sorunları hakkında daha fazla düşünmesi gerektiğini söylüyorum.)
G-Man,

@ G-Man - bir bakıma. :) zypperbir -nseçeneği var. installAlt komut hem sahiptir -yküresel için diğer adlar bir kolaylık seçeneği -nseçeneği ve aynı zamanda kendi vardır -nkısaltması olan --name. Paketleri kapasiteye göre kurmak mümkündür. Bu nedenle, zypper install -n blahyalnızca adlandırılan paketin çözümleneceğini belirtir blahve sağlayan paketleri dikkate almaz blah. Bu olmadan, zypper, bağımlılık çözünürlüğünü kolaylaştırabilen bir RPM'den (sürüm karşılaştırmaları dahil) sağlama bölümüne dayalı olarak çözülebilir. zypper install 'python>3.5'Örneğin.
dannysauer

Bunun ana kullanımı zypper install -n, adı başkaları tarafından sağlanan bir yetenek olan belirli bir paketi yüklemek istiyorsanız. Örneğin, belki birkaç vi uygulaması vardır ve belirli bir paketin deponuzda bir vinedenle eksik olması durumunda sadece vi adında belirli bir paketin gvim'e geri dönmeden (vi sağlar) istersiniz . Şahsen, kısa seçeneklerin kafa karıştırıcı doğasından hoşlanmıyorum ve bunları nadiren senaryolarda veya birisinin (benim gibi) daha sonra okuması gereken herhangi bir şeyde nadiren kullanıyorum. : D
dannysauer

8

Etkileşimli olmayan seçeneğiniz vardır. Man sayfasından:

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'in otomatik kaldırılmasına gerçek bir karşılık yoktur. En yakın olan, bağımlılıkları hemen temizleyen (ancak daha sonra değil) komut --clean-depsseçeneğidir remove.


zypper.confdiğer paket yöneticilerinde olduğu gibi kalıcı onay için böyle bir seçenek eklemek mümkün müdür?

Bilmiyorum. Bir süredir sigorta kullanmadım, bu yüzden kontrol edemiyorum.
mat

pacman, apt ve yum /

3

Bu bir örnek

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

Tabii ki daha fazla seçenek ekleyebilirsiniz, --auto-agree-with-licensesancak önce veya sonrainstall


2

Bu benim için çalıştı (SLES12SP3'te kontrol edildi):

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

Not -C/--no-checkiçin zypper ar.

Şimdi paketleri yükleyebilirsiniz:

zypper in -y --auto-agree-with-licenses vim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.