как заставить emerge-webrsync не удалять снимки дерева портежей
Тут Vadis, задал мне следующий вопрос:
Можно ли сделать так, чтоб по-умолчанию emerge-webrsync с каким-нить флагом не удалял файлы из дериктории /var/tmp/emerge-webrsync, а сохранял их. Это требуется в тех случаях, когда инет есть на одном компе, а обновиться нужно на нескольких.
Может, кто что добавит, но после чтения /usr/sbin/emerge-webrsync я думаю следующее: такого флага нет, но принципиально это возможно с помощью /etc/portage/bin/post_sync. Этот скрипт выполняется прямо перед тем, как удалить файлы. Можно попробовать написать там что-то типа (ничего ниженаписанного я это не проверял ;) ):
#!/bin/bash cp "$(portageq envvar PORTAGE_TMPDIR)/emerge-webrsync/portage-*.tar.* /path/to/preserved/snapshots
и тогда по идее всё необходимое (снапшот + дайжест + подпись) будут копироваться в /path/to/preserved/snapshots.
Другой вариант - из /usr/sbin/emerge-webrsync тупо удалить строчку
rm -f "${file}" "${digest}" "${signature}"
в следующем коде:
if [ ${have_files} -eq 1 ]; then sync_local "${file}" && r=0 else vecho "${date} snapshot was not found" fi rm -f "${file}" "${digest}" "${signature}" return "${r}"
Наконец мне не очень ясно зачем всё это нужно. Несколько компов значительно проще и намного быстрее обновлять с помощью rsync: куча времени съэкономлена на том, что не надо разворачивать снапшот потом копировать его оттуда сюда... rsync работает вообще поверх чего угодно, например, поверх ssh. Загрузили на один комп и с него:
rsync --recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages /usr/portage/* user@host:/usr/portage/
HTH
- Блог пользователя - pva
- Для комментирования войдите или зарегистрируйтесь
Таких флагов для
Таких флагов для emerge-webrsync нет.
Если Отца Русской Демократии спасёт просто свежий portage (архив), то он может использовать emerge-delta-webrsync. По сути, то же самое, но в отличие от emerge-webrsync, emerge-delta-webrsync вместо целого файла portage выкачивает только дельту, собирает свежий portage и кладёт его в distfiles.
Описка? Hrundix
Описка?
По-моему, это distfiles вложенна в /usr/portage.
Я ♥ Gentoo & Funtoo
Lupo Alberto
Не описка, за поздним часом не совсем точно высказался. Следовало написать не "...вместо целого файла portage выкачивает только дельту...", а "... вместо целого portage-файла выкачивает только дельту...".