Как установить пакет с yum без обновления информации о репозитории?


10

Я хочу установить некоторые пакеты из репозитория, но всегда, когда я пытаюсь yum install packagenameнайти обновления базы данных:

Loaded plugins: fastestmirror, langpacks, presto, refresh-packagekit
Determining fastest mirrors
updates/metalink                                                                                                                      |  23 kB     00:00     
 * fedora: nl.mirror.eurid.eu
 * rpmfusion-free: ftp.astral.ro
 * rpmfusion-free-updates: ftp.astral.ro
 * rpmfusion-nonfree: ftp.astral.ro
 * rpmfusion-nonfree-updates: ftp.astral.ro
 * updates: nl.mirror.eurid.eu
fedora-awesome                                                                                                                    | 3.3 kB     00:00     
google-chrome                                                                                                                     |  951 B     00:00     
rpmfusion-free-updates                                                                                                        | 3.3 kB     00:00     
rpmfusion-free-updates/primary_db                                                                                             | 272 kB     00:08     
rpmfusion-nonfree-updates                                                                                                     | 3.3 kB     00:00     
rpmfusion-nonfree-updates/primary_db                                                                                          |  93 kB     00:05     
updates                                                                                                                       | 4.7 kB     00:00     
updates/primary_db                                                                                                            | 4.6 MB     02:35     
updates/group                                                                                                                     | 1.9 MB     00:33     

Таким образом, использование yum install packagename -Cтакже не работает (ошибка «кеш не найден» происходит и yum makecacheтоже не дает результатов). Но я просто хочу установить пакеты без обновления БД.


3
Почему? Обновление БД означает, что у вас есть последние версии списка пакетов
Smudge

О какой БД мы говорим? Yum репо / кеш пакетов?
thinice

1
@ sam, потому что у меня слишком низкая скорость интернета, чтобы обновлять репо для каждой установки.
Кларк

1
@ thinice да, как вы видите в журнале, обновление происходит для любого хранилища. Мне это не нужно, я просто хочу установить пакет без обновления репозитория.
Кларк

1
@purple Тогда вы должны использовать локальный репозиторий, yum предназначен для работы с полным доступом к данным репо, будь то удаленный или локальный yum, но он должен иметь его.
Пятно

Ответы:


12

Если вы хотите yumвести себя как apt-get(не обновлять метаданные при каждом запуске), отредактируйте /etc/yum.confи вставьте туда:

metadata_expire=never

или

metadata_expire=7d

если вы хотите обновить метаданные через неделю. Если вы запустите yum makecache, ваши метаданные будут обновлены как apt-get updateв Debian.

Но имейте в виду, что если вы используете «никогда» в файле конфигурации, вам придется позаботиться об этом вручную. Если вы используете, например, «7d», вы сохраните пропускную способность данных, но через неделю метаданные будут обновлены для вас автоматически.

Вот metadata_expireдокументация:

Вы также можете изменить стандартное использование секунд на дни, часы или минуты, добавив объявление, h или m соответственно. По умолчанию используется 6 часов, чтобы комплимент yum-updatesd работал раз в час. Также возможно использовать слово «никогда», что означает, что метаданные никогда не истекают.


будет 2wработать так же?
Себастьян Годеле

Нет 2wне работает. По умолчанию используется 6 часов, чтобы комплимент yum-updatesd работал раз в час. Вы можете изменить значение по умолчанию с использованием секунд на дни, часы или минуты, добавив a d, h or mсоответственно.
Шубхам Чаудхари

4

То, что вы спрашиваете, в некоторых отношениях не соответствует духу ням. Yum - это комплексный менеджер пакетов и зависимостей . Чтобы выполнить свою работу и не испортить вашу систему смешиванием и сопоставлением несовместимых пакетов, необходимо иметь данные, которые вы не хотите обновлять.

Вы можете вручную проанализировать зависимости пакета, используя их, deplist <packagename>и установить их вручную.

Отсутствие у yum обновленной версии кажется странным запросом при любых обстоятельствах ...


Но почему apt-get не обновляет репозиторий при вводе команды install? Он будет обновлять репозиторий только и только при вводе команды update. Я хочу, чтобы ням делал то же самое.
Кларк

1
Если вы запустите apt-get install foo - и версия удаленного пакета изменилась, вы получите следующие сообщения: bitbucket.org/ianb/silverlining/issue/26/… - Аналогично с любыми зависимостями, которые были обновлены в репозитории. также. (По сути, заставляя вас запускать обновление).
thinice

2
Да, но когда я запускаю yum для установки приложения, которое не было изменено, оно также обновляет базу данных.
Кларк

4

Если вы хотите установить пакет без обновления базы данных, вы загружаете rpm напрямую (через yumdownloader, ftp или веб-браузер), а затем устанавливаете его непосредственно с rpm:

rpm -ivh packagename

Я не рекомендую вам делать это, так как намного больше работы по отслеживанию зависимостей (именно поэтому создается yum), и это может нарушить будущие установки через yum.


Да, но почему apt-get, например, не обновляет репозиторий, когда вы просто указываете ему установить пакет? А для обновления вы используете команду «apt-get update».
Кларк
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.