Como usar o zypper em scripts bash para alguém vindo do apt-get?

8

Eu tenho algumas perguntas sobre como migrar do apt-get para o zypper em scripts do bash.

Qual é o equivalente disso?

sudo apt-get install curl --assume-yes

(onde o curl pode ser qualquer pacote)

Eu encontrei a Folha de dicas do Zypper - openSUSE . Muito agradável! Mas eu apreciaria a voz da experiência aqui - qual é a maneira correta de usar o zypper em um script onde eu quero concordar automaticamente com todos os prompts e não pular coisas que precisam de uma resposta?

Com minha inexperiência, eu ficaria tentado a usar:

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

Mas isso é realmente o equivalente de --assume-yes ?

E o equivalente para estes?

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

Isso sugere que não há um ...

Existe algum substituto para o gdebi-core? Ou não é necessário o gdebi com o "poderoso solucionador de satisfação" do zypper? Eu uso gdebi para situações onde eu preciso instalar um pacote em uma versão mais antiga e eu tenho um arquivo .deb já (mas não todas as dependências).

    
por MountainX 06.07.2013 / 21:05

3 respostas

6

zypper não é muito consistente com os sinalizadores de nomenclatura dos subcomandos. Para install você deve usar o modo --non-interactive , no atalho -n :

zypper -n install curl

Isso pode ser um pouco confuso para alguém vindo de apt-get install -y curl . Embora a opção legada do zypper seja -y/--no-confirm (às vezes, a única opção que realmente funciona).

De acordo com a documentação , não há como aceitar uma chave GPG sem o modo interativo:

a new key can be trusted or imported in the interactive mode only

Mesmo com --no-gpgp-checks , a chave GPG será rejeitada.

Uma solução alternativa para scripts é usar pipe e echo :

zypper addrepo http://repo.example.org my_name | echo 'a'
    
por 18.01.2017 / 13:51
6

Você tem a opção --non-interactive. Na página do manual:

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'.

Não há correspondência real para o autoremove do apt-get. A mais próxima é a opção --clean-deps do comando remove , que limpa as dependências imediatamente (mas não depois).

    
por 09.07.2013 / 15:59
0

Isso é uma amostra

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

Claro que você pode incluir mais opções como --auto-agree-with-licenses , mas lembre-se de que faz diferença se antes ou depois de install

    
por 17.04.2018 / 01:42