Почему репо, не переустанавливая после удаления его от /etc/yum.repos.d?

Приложение, запущенное в терминале, оставило терминал в состоянии, когда печать новой строки только перемещает курсор на следующую строку, но не перемещает его обратно в начало строки. Восстановите настройки терминала:

stty sane
1
22.07.2018, 22:19
1 ответ

Неясно, какой репозиторий вы удалили и пытались переустановить с помощью команды dnf install..., но мы можем только предположить, что вы пытались сделать что-то подобное:

$ 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!

Затем удалил файл.repo следующим образом:

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

А затем попытался выполнить установку еще раз:

$ 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!

Решение

Чтобы вернуть все в форму, вам нужно выполнить reinstallэтого RPM, а не 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!

И если мы подтвердим, удаленный файл.repo возвращается:

$ 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

Без URL?

При желании вы можете сделать это, даже не зная URL-адреса оригинального RPM, который использовался для настройки/установки этого репозитория.

Проверить имя RPM:

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

Затем выполните dnf reinstall...только с именем 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!

И убедитесь, что файл вернулся:

$ 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

Что делать, если я не знаю названия RPM?

Если вы попали в затруднительное положение, когда не можете понять или вспомнить, какой RPM использовать для переустановки, вам все же не совсем повезло.

Вы можете увидеть, какой файл вы удалили с помощью команды history, а затем запустить эту команду rpm, чтобы узнать, какой RPM предоставил его:

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

Затем выполните переустановку с именем RPM, как описано выше.

Что делать, если RPM не был установлен через DNF или YUM?

В вашем конкретном случае оказывается, что RPM, который вы упомянули:geogebra -classic -6.0.477.0 -201807062103.i386.rpm , не является RPM, содержащим какой-либо YUM файлы.repo.

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

В этом сценарии ни dnf, ни yumне могут оказать никакой помощи, поскольку ни один из них не знает URL-адрес для переустановки/загрузки этого RPM. Это связано с тем, что этот RPM, вероятно, изначально был просто скачан и установлен напрямую.

Когда RPM устанавливается таким образом,dnfи yumслепы к URL-адресу и просто устанавливают любой RPM, который вы им поручите, через файл, который находится на вашем локальном жестком диске.

Единственным выходом в этом сценарии является повторная -загрузка соответствующего RPM и переустановка его вручную с помощью dnf, yumили rpm.

Ссылки

1
28.01.2020, 00:31

Теги

Похожие вопросы