Назад | Перейти на главную страницу

Самый простой способ синхронизировать только пакеты и зависимости в открытом космосе?

Судя по веб-интерфейсу и документации, выход в открытый космос, похоже, хочет загрузить все в данном репо независимо от актуальности, что не так уж плохо, если вы используете все / большинство пакетов в репо, но что является большим излишеством, если только один либо используются два пакета из репо, а репо содержит 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