Судя по веб-интерфейсу и документации, выход в открытый космос, похоже, хочет загрузить все в данном репо независимо от актуальности, что не так уж плохо, если вы используете все / большинство пакетов в репо, но что является большим излишеством, если только один либо используются два пакета из репо, а репо содержит 10 тыс. пакетов.
В моем конкретном случае я хотел бы иметь возможность хранить только tomcat
(в пределах epel
репо) и его зависимости синхронизируются внутри его собственного подканала, оставляя все остальные ненужными epel
пакеты нетронутые (и не загруженные).
это был единственным способом, который я нашел, но это похоже на своего рода кладж и (создание локального репо для проксирования пакетов, которые я хочу), и мне не ясно, что это решение даже изящно учитывает зависимости (моя интуиция подсказывает мне это не так).
редактировать: Если вам интересно, как я могу выдержать такое впечатляющее замешательство по поводу основного аспекта выхода в открытый космос, позвольте мне проинформировать вас о состоянии текущая документация (на момент редактирования в этих заголовках ничего нет).
выход в открытый космос включает сапожника. Я обычно использую там конфигурацию репо, чтобы отфильтровать то, что мне нужно; по крайней мере для старых выходов в открытый космос.
У более новых есть фильтр, который можно поместить ПРЯМО в само репо.
spacecmd {SSM:2}> repo_listfilters epel-6-64
spacecmd {SSM:2}> repo_addfilters epel-6-64 '+tomcat'
spacecmd {SSM:2}> repo_listfilters epel-6-64
+tomcat
spacecmd {SSM:2}> repo_clearfilters epel-6-64
spacecmd {SSM:2}> repo_listfilters epel-6-64
spacecmd {SSM:2}>
Бит пользовательского интерфейса есть для нового веб-интерфейса.
Сапожник:
cobbler repo edit --name epel-6-64 --rpm-list 'tomcat'
... но это предполагает, что вы добавили репо в cobbler и получили копию для выхода в открытый космос с localhost. Потому что это будет localhost, и у вас будет две копии tomcat, и вы должны с этим мириться.
Ой. Никогда не нужно торопиться, как на форумах.
Я решил эту ситуацию, имея отдельную задачу cron для загрузки только нужных мне пакетов и помещения их в подходящее существующее репо. После их загрузки я снова запустил createrepo, чтобы восстановить индексы репо.
#!/bin/bash
CONFFILE="/local/etc/fetchextras.conf" # can be overridden
TARGETDIR="/tmp/repodl"
read_config() {
[[ -r $CONFFILE ]] || { echo "Can't read $CONFFILE, giving up..."; exit 1; }
while read type value
do
[[ "$type" = "repo" ]] && ENABLE="--enablerepo $value $ENABLE"
[[ "$type" = "package" ]] && PKGS="$value $PKGS"
done < $CONFFILE
}
fetch_packages() {
for pkg in $PKGS
do
yumdownloader -q -y --destdir=$TARGETDIR --disablerepo=* --resolve $ENABLE $pkg
done
}
get_options() {
CONFFILE=${1:-$CONFFILE}
}
get_options $@
read_config
fetch_packages
repo epel
package whatever