Por que o repo não está sendo reinstalado depois de removê-lo do /etc/yum.repos.d?

1

Eu removi um repo excluindo seu arquivo de /etc/yum.repos.d usando rm -rf . Então tentei instalar o mesmo repositório com dnf install , mas ele não está aparecendo em /etc/yum.repos.d ou quando eu executo dnf repolist .

Eu suponho que existe a possibilidade de que o pacote ainda possa ser memorizado no cache de dnf , então eu tentei limpar o cache digitando

dnf clean expire-cache e até mesmo passando a opção --refresh para dnf install , mas o repo ainda não aparece.

Como instalo um repositório depois de removê-lo manualmente?

    
por MyWrathAcademia 22.07.2018 / 21:19

1 resposta

0

Não está claro qual repositório você excluiu e tentou reinstalar com seu comando dnf install ... , mas só podemos supor que você tentou fazer algo assim:

$ sudo dnf install -y http://download1.rpmfusion.org/free/fedora/releases/28/Everything/x86_64/os/Packages/r/rpmfusion-free-release-28-1.noarch.rpm
Fedora 28 - x86_64                                                                                                                               411 kB/s |  60 MB     02:30
Last metadata expiration check: 0:00:00 ago on Mon 23 Jul 2018 02:06:48 AM UTC.
rpmfusion-free-release-28-1.noarch.rpm                                                                                                            40 kB/s |  20 kB     00:00
Dependencies resolved.
...
...
  Preparing        :                                                                                                                                                         1/1
  Installing       : rpmfusion-free-release-28-1.noarch                                                                                                                      1/1
  Verifying        : rpmfusion-free-release-28-1.noarch                                                                                                                      1/1

Installed:
  rpmfusion-free-release.noarch 28-1

Complete!

Depois apagou o arquivo .repo assim:

$ sudo rm /etc/yum.repos.d/rpmfusion-free-updates.repo

E depois tentei instalar novamente:

$ sudo dnf install -y http://download1.rpmfusion.org/free/fedora/releases/28/Everything/x86_64/os/Packages/r/rpmfusion-free-release-28-1.noarch.rpm
RPM Fusion for Fedora 28 - Free                                                                                                                  1.3 MB/s | 754 kB     00:00
Last metadata expiration check: 0:00:00 ago on Mon 23 Jul 2018 02:11:12 AM UTC.
rpmfusion-free-release-28-1.noarch.rpm                                                                                                            57 kB/s |  20 kB     00:00
Package rpmfusion-free-release-28-1.noarch is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!

Solução

Para colocar as coisas em forma novamente, você precisa fazer reinstall deste RPM e não install .

$ sudo dnf reinstall -y http://download1.rpmfusion.org/free/fedora/releases/28/Everything/x86_64/os/Packages/r/rpmfusion-free-release-28-1.noarch.rpm
Last metadata expiration check: 0:03:11 ago on Mon 23 Jul 2018 02:11:12 AM UTC.
rpmfusion-free-release-28-1.noarch.rpm                                                                                                            44 kB/s |  20 kB     00:00
Dependencies resolved.
...
...
  Preparing        :                                                                                                                                                         1/1
  Reinstalling     : rpmfusion-free-release-28-1.noarch                                                                                                                      1/2
  Erasing          : rpmfusion-free-release-28-1.noarch                                                                                                                      2/2
  Verifying        : rpmfusion-free-release-28-1.noarch                                                                                                                      1/2
  Verifying        : rpmfusion-free-release-28-1.noarch                                                                                                                      2/2

Reinstalled:
  rpmfusion-free-release.noarch 28-1

Complete!

E se confirmarmos, o arquivo deleted .repo está de volta:

$ ls -l /etc/yum.repos.d/rpmfusion-free-updates.repo
-rw-r--r--. 1 root root 1264 Apr 24 11:27 /etc/yum.repos.d/rpmfusion-free-updates.repo

Sem o URL?

Se você quiser, pode fazer isso sem saber a URL do RPM original que foi usado para configurar / instalar este repositório.

Verifique o nome do RPM:

$ rpm -qa|grep rpmfus
rpmfusion-free-release-28-1.noarch

Em seguida, faça o dnf reinstall ... com apenas o nome do RPM:

$ sudo dnf reinstall -y rpmfusion-free-release
Last metadata expiration check: 0:10:00 ago on Mon 23 Jul 2018 02:11:12 AM UTC.
Dependencies resolved.    
...
...
  Preparing        :                                                                                                                                                         1/1
  Reinstalling     : rpmfusion-free-release-28-1.noarch                                                                                                                      1/2
  Erasing          : rpmfusion-free-release-28-1.noarch                                                                                                                      2/2
  Verifying        : rpmfusion-free-release-28-1.noarch                                                                                                                      1/2
  Verifying        : rpmfusion-free-release-28-1.noarch                                                                                                                      2/2

Reinstalled:
  rpmfusion-free-release.noarch 28-1

Complete!

E verifique se o arquivo está de volta:

$ ls -l /etc/yum.repos.d/rpmfusion-free-updates.repo
-rw-r--r--. 1 root root 1264 Apr 24 11:27 /etc/yum.repos.d/rpmfusion-free-updates.repo

E se eu não souber o nome do RPM?

Se você está na estranha situação em que você não consegue descobrir ou lembrar qual RPM usar para reinstalar, você ainda não está completamente sem sorte.

Você pode ver qual arquivo foi excluído do comando history e executar este comando rpm para saber o que o RPM forneceu:

$ rpm -qf /etc/yum.repos.d/rpmfusion-free-updates.repo
rpmfusion-free-release-28-1.noarch

E, em seguida, faça a reinstalação com o nome do RPM, conforme descrito acima.

E se o RPM não foi instalado via DNF ou YUM?

No seu caso particular, o RPM que você mencionou: geogebra-classic- 6.0.477.0-201807062103.i386.rpm , não é um RPM que contenha arquivos YUM .repo.

$ rpm -qpl geogebra-classic-6.0.477.0-201807062103.i386.rpm  | grep yum
$

Nesse cenário, nem dnf nem yum podem fornecer qualquer assistência, porque nenhum dos dois conhece a URL para reinstalar / baixar esse RPM. Isso ocorre porque esse RPM provavelmente foi originalmente baixado e instalado diretamente.

Quando um RPM é instalado dessa maneira, dnf & yum estão cegos para a URL e estão apenas instalando o RPM que você instrui a fazer através do arquivo que está em seu HDD local.

Seu único recurso neste cenário é baixar novamente o RPM em questão e reinstalá-lo manualmente usando dnf , yum ou rpm .

Referências

por 23.07.2018 / 04:26