Como instalar padrões e pacotes ao mesmo tempo?

5

Como posso instalar padrões de pacote (por exemplo, "ferramentas de desenvolvimento C / C ++") e pacotes (por exemplo, "mercurial") ao mesmo tempo? Atualmente, dois comandos são necessários; Por exemplo, as instruções de instalação que escrevi para sketch-frontend são

sudo zypper install -t pattern "devel_C_C++" "devel_java"
sudo zypper install java-1_6_0-openjdk-devel mercurial

[ link ].

(motivação) . É verdade que só precisamos de dois comandos, mas em máquinas com conexões de internet mais lentas (ou processadores mais lentos), não ter o segundo comando automaticamente é irritante. Além disso, o usuário precisa ser solicitado para a resolução do pacote, portanto, apenas a adição do sinal --non-interactive não é uma opção.

Obrigado!

    
por gatoatigrado 19.04.2012 / 02:58

2 respostas

5

edit: anexar <resolveabletype>: ao resolvível permite que você corresponda diferentes tipos em um comando.

zypper in java-1_6_0-openjdk-devel mercurial +pattern:devel_C_C++ +pattern:devel_java

A criação de uma instalação com apenas um clique permitirá que você faça a resolução de pacotes de uma só vez, mas não tenho certeza se um padrão pode ser chamado a partir de um. link , você pode chamá-lo com oci /sbin/OCICLI /path/to/foobar.ymp

    
por 19.04.2012 / 04:57
2

Solução mais simples:

sudo zypper install -t pattern "devel_C_C++" "devel_java" && sudo zypper install java-1_6_0-openjdk-devel mercurial

Se você está preocupado que sudo irá expirar após 5 minutos e não quiser que o usuário tenha que digitar sua senha duas vezes, você pode fazer

sudo sh -c 'zypper install -t pattern "devel_C_C++" "devel_java" && zypper install java-1_6_0-openjdk-devel mercurial'

ATUALIZAÇÃO

Como parece que você queria que tudo fosse uma única ligação para zypper install , mais algumas ideias:

  1. execute zypper search ou zypper list duas vezes, analise os nomes dos pacotes, combine a saída e execute zipper install uma vez com uma lista completa de pacotes
  2. execute zypper install --dry-run para imprimir a saída, depois peça ao usuário para confirmar e execute zypper install sem a opção de execução a seco se o usuário responder sim
  3. execute zypper install --download-only duas vezes com um diretório de pacotes personalizados e execute zypper install <that directory>/*.rpm (consulte mktemp -d e a opção packagesdir em zypp.conf
por 19.04.2012 / 06:35