Como baixar um pacote RPM e instalá-lo em uma linha?

18

Fiquei me perguntando se wgetera possível fazer o download de um RPM e depois canalizá-lo sudo rpm -ipara instalá-lo, em uma única linha? Eu percebo que eu poderia simplesmente correr:

wget -c <URL>
sudo rpm -i <PACKAGE-NAME>.rpm

para instalar o pacote, mas eu queria saber se seria possível fazer isso em uma única linha usando o quiet e gravar nas opções de saída padrão do wget. Eu tentei usar:

wget -cqO- <URL> | sudo rpm -i

mas retornou:

rpm: no packages given for install
BH2017
fonte
Você tentou sudo rpm -i <URL>?
Mikel
Você já tentou wget -cqO- <URL> | xargs sudo rpm -iou talvez sudo rpm -i $(wget -cqO- <URL>)? Que erro eles dão?
Firelord 27/11
1
@Senhor do fogo. 1º comando: tentei e deu o erro mostrado aqui . 2º comando: deu o erro rpm: no packages given for install.
BH2017

Respostas:

29

O RPM possui suporte nativo para baixar um pacote de uma URL. Você pode fazer:

sudo rpm -i <URL>

Não há necessidade de baixar o RPM manualmente. Se esse suporte não existir, você poderá usar basha substituição de processo.

sudo bash -c 'rpm -i <(wget -O - <URL>)'
jordanm
fonte
7
É melhor usar o yum install -y <URL>, porque também instalará quaisquer dependências.
cristi
1
Bem, se eu estivesse usando uma distribuição que usa o yum como gerenciador de pacotes, mas lembre-se de que os pacotes RPM também são usados ​​por distribuições que usam gerenciadores de pacotes APT-RPM, DNF, urpmi e ZYpp. Acontece que eu estava usando o openSUSE Tumbleweed, que usa o ZYpp.
BH2017
13

Melhor fazer yum install -y <URL>isso, pois isso cuida das dependências, em oposição ao rpmuso direto da ferramenta.

sorin
fonte
Como eu disse nos comentários sobre a resposta do jordanm, eu estava usando o openSUSE Tumbleweed, yum não está disponível no Tumbleweed.
BH2017
1

Eu acho que uma maneira possível poderia ser definir o nome do arquivo do que você está baixando:

wget -cqO- <URL> -O my-output-file.rpm && sudo rpm -i my-output-file.rpm

Mas certamente deve haver melhores abordagens

lese
fonte
Não aceitarei esta resposta, pois (como você disse), espero melhores abordagens, mas você sabe que é uma boa tentativa, então obrigado.
BH2017