Удобный механизм обновлений во FreeBSD
На этом сервере ещё пара jail'ов есть.
Хотелось бы, чтоб и там всё обновилось.
Я подозреваю, что они были созданы не вручную, а с помощью какой-то программы, которая копирует только то, что нужно. Но apropos jail показывает только jail(2) и jail(8 беглый просмотр которых ничего не дал. Гуглением нашёл совет, датированный 2001г (что хорошо, так как FreeBSD стоит версии 4 в котором советовалось в аналогичной ситуации написать скрипт, который сравнит бинарники в jail'е и снаружи, и скопирует новые версии. Более удобные и надёжные способы есть?
Хотелось бы, чтоб и там всё обновилось.
Я подозреваю, что они были созданы не вручную, а с помощью какой-то программы, которая копирует только то, что нужно. Но apropos jail показывает только jail(2) и jail(8 беглый просмотр которых ничего не дал. Гуглением нашёл совет, датированный 2001г (что хорошо, так как FreeBSD стоит версии 4 в котором советовалось в аналогичной ситуации написать скрипт, который сравнит бинарники в jail'е и снаружи, и скопирует новые версии. Более удобные и надёжные способы есть?
cvsup для портов происходит жутко медленно. У меня - более 2 часову меня минут 5 как максимум
portupgrade тупил полчаса, и сказал, что есть проблемы с зависимостямиpkgdb -F
5 минут - тоже не особо быстро
а 2 часа, возможно, от того, что я ещё ни разу не обновлял порты
а 2 часа, возможно, от того, что я ещё ни разу не обновлял порты
5 минут это если давно не обновлял, если раз в неделю хотя бы - то быстрее
Один раз скомпилировать perl-5.6.2 оказалось недостаточно. Пошло по второму разу. Очень эффективный механизм обновлений!
UPDATE: оно и проинсталлировать его попыталось второй раз. Но не шмогло. В результате апгрейд net/p5-Net-Daemon не удался.
UPDATE2: походу, все зависимые от perl порты не установятся по той же причине. На ^C portupgrade не реагирует (я хотел его прервать и запустить повторно).
UPDATE: оно и проинсталлировать его попыталось второй раз. Но не шмогло. В результате апгрейд net/p5-Net-Daemon не удался.
UPDATE2: походу, все зависимые от perl порты не установятся по той же причине. На ^C portupgrade не реагирует (я хотел его прервать и запустить повторно).
проблемы с портапгрейдом были, если сильно менялось дерево зависимостей у какого-нить пакета (в основном, когда шло переименование).
проблем с ^C никогда не было, всегда откликается нормально.
обноволение портов лучше поставить в крон - че-нить типа
08 6 * * * lockf -t 0 /tmp/portsupdate.lock /usr/bin/make -C /usr/ports update fetchindex > /var/log/portsupdate
проблем с ^C никогда не было, всегда откликается нормально.
обноволение портов лучше поставить в крон - че-нить типа
08 6 * * * lockf -t 0 /tmp/portsupdate.lock /usr/bin/make -C /usr/ports update fetchindex > /var/log/portsupdate
У меня - более 2 часовмедленный канал в инет? медленный проц? выключенное сжатие при обновлении?
Не помешает еще отключить выкачивание портов на других языках - японском, корейском, арабском и т.д.
проблемы с портапгрейдом были, если сильно менялось дерево зависимостей у какого-нить пакета (в основном, когда шло переименование).Ну наверное, оно поменялось.
И что мне теперь делать? после "обновления" пропал perl и собственно portupgrade.
проблем с ^C никогда не было, всегда откликается нормально.И что при этом происходит нормально?
медленный канал в инет? медленный проц? выключенное сжатие при обновлении?Всё мимо.
Может быть подойдёт cpdup? (ports/sysutils/cpdup)
Even if you don't do anything wrong, a package database may get corrupt somehow when it is heavily updated.
И что мне теперь делать? после "обновления" пропал perl и собственно portupgrade.Куда пропали?
Я вот недавно обновлял программы на FreeBSD 4.11, так вот там ничего никуда не пропало.. Может ты ошибся, и portupgrade всё-таки на месте? Тогда попробуй обновить его.
Я уже заново поставил.
А пропал он, так как ruby тоже как-то не-так обновилось.
А пропал он, так как ruby тоже как-то не-так обновилось.
наверно ты както не так обновляешь
Ну если в хендбуке неправильно написано, то что ж поделаешь...
гм.
с какими ключами запускаешь cvsup?
откуда синхронизируешься?
за 2 часа можно дерево портов выкачать дохрена раз.
с какими ключами запускаешь cvsup?
откуда синхронизируешься?
за 2 часа можно дерево портов выкачать дохрена раз.
*default host=cvsup2.ru.FreeBSD.org
*default base=/usr/local/etc/cvsup
*default prefix=/usr
*default release=cvs tag=RELENG_4_8
*default delete use-rel-suffix
ports-all tag=.
только supfile, ключи не указывал
cvsup в течении 2х часов вытаскивал дерево портов или полтора часа из них пытался подключиться к серверу?
А может пора уже перейти на csup заместо cvsup-а?
(я это не про скорость скачивания, просто у меня закралась мысль что все пишут про cvsup - неужели про csup никто не в курсе?)
(я это не про скорость скачивания, просто у меня закралась мысль что все пишут про cvsup - неужели про csup никто не в курсе?)
говнотред
наврал я
не 2 часа, а "всего" 40 минут
бодро скачивал всё это время, без пауз
не 2 часа, а "всего" 40 минут
бодро скачивал всё это время, без пауз
это знчит лишь то, что ты ооочень долго не обновлял порты.
в таких ситуациях лучше качать полный tgz и его распаковывать поверх старых портов, чем делать инкрементальные изменения за несколько месяцев.
man portsnap
в таких ситуациях лучше качать полный tgz и его распаковывать поверх старых портов, чем делать инкрементальные изменения за несколько месяцев.
man portsnap
Кстати, 4.8 - это же жутко Legacy, с этим и могут быть связаны проблемы portupgrade.
Не такая уж и древность. Я Debian дольше использую - подобных косяков не наблюдал.
Короче, я всё обновил, преодолев многочисленные грабли.
Надо заметить, это всё же чуть полечге, чем поддерживать редхат того же года розлива.
Надо заметить, это всё же чуть полечге, чем поддерживать редхат того же года розлива.
Не забывай читать /usr/ports/UPDATING.
Я бы ещё рекомендовал проапдейтить систему до RELENG_4. 4_8 уже давно не поддерживается.
Так же хорошо что здесь упомянули о csup (для апдейта сырцов) и portsnap (для апдейта дерева портов).
Ещё перед апдейтом системы (но после обновления сырцов) обязательно почитай /usr/src/UPDATING.
Я бы ещё рекомендовал проапдейтить систему до RELENG_4. 4_8 уже давно не поддерживается.
Так же хорошо что здесь упомянули о csup (для апдейта сырцов) и portsnap (для апдейта дерева портов).
Ещё перед апдейтом системы (но после обновления сырцов) обязательно почитай /usr/src/UPDATING.
Не забывай читать /usr/ports/UPDATINGЯ подумал, что за N лет там написали сильно дофига.
а 2 часа, возможно, от того, что я ещё ни разу не обновлял портыС учётом того, что там у тебя какая-то старая версия можно сделать вывод, что ты скачал порты заново. В таком вырожденном случае, когда данные активно меняются, а обновляются раз в 4 года, конечно метод обновления через сравнение и патчи оказывается наихудшим.
Кстати в современных версиях FreeBSD пользователи пользуются portsnap, он работает несколько секунд.
А может пора уже перейти на csup заместо cvsup-а?csup не работает быстрее, потому что работает по тому же принципу. Может быть он работает чуть-чуть быстрее из-за другой реализации. csup нет в таких старых версиях FreeBSD. Порты надо обновлять portsnapом.
(я это не про скорость скачивания, просто у меня закралась мысль что все пишут про cvsup - неужели про csup никто не в курсе?)
Я бы ещё рекомендовал проапдейтить систему до RELENG_4. 4_8 уже давно не поддерживается.Говно совет, имхо. RELENG_4 тоже не особо поддерживается. Да, туда мержатся security fixes, перед тем как идти в RELENG_4_11. Но еще туда время от времени, кто-то что-то коммитит, и качество этих коммитов лично для меня стоит под вопросом. Назвать их мержами нельзя, т.к. слишком уж разные системы 4.x и 7.0, поэтому каждый раз патч суть ли не пишется заново. А потом эти патчи подвергаются очень незначительно тестированию. Никто из девелоперов уже не держит у себя RELENG_4, стресс тесты на нём не запускаются. Все пользователи, что держат RELENG_4 не обновляют его.
А главное смысл? Что это даст. Серьёзных security проблем не было обнаружено в этом промежутке. Если хочется закрыть несерьёзные проблемы, то лучше ставить RELENG_4_11. Ибо он прошёл цикл релиза, был оттестирован и с тех пор в него вошли исключительно security fixes.
Сейчас там RELENG_4_10, до которого я обновил 2 года назад по твоему совету. Его нужно менять на 4_11, или и так сойдёт?
В таком вырожденном случае, когда данные активно меняются, а обновляются раз в 4 года, конечно метод обновления через сравнение и патчи оказывается наихудшим.Собственно, основная претензия не в том, что порты долго качались.
Основной ахтунг начался позже

Сейчас там RELENG_4_10, до которого я обновил 2 года назад по твоему совету. Его нужно менять на 4_11, или и так сойдёт?А какая собственно цель? Если получить security fixes, то оставляй RELENG_4_10.
Оставить комментарий
Marinavo_0507
Был как-то holywar на тему преимуществ систем, основанных на компиляции из исходных текстов, но что-то не смог найти. Так вот там говорилось, что скачивание обновлений исходников происходит быстрее, так как нужно взять только патчи. И я верил. Пока не занялся сегодня обновлением FreeBSD.1. cvsup для портов происходит жутко медленно. У меня - около 40 минут. Функциональный аналог этой процедуры в Debian - apt-get update происходит примерно на порядок быстрее, даже если с заграничных серверов качать. Может, он и меньше скачивает, но обход дерева портов идёт медленнее.
2. Запустил я потом portupgrade. Так он написал про Starting session, и начал молча тупить. Фиг знает, сколько он будет тупить. Даже ключ -v разговорчивости не прибавляет. Вот что он делает в это время, и почему ничего не пишет даже в verbose mode?
UPDATE: portupgrade тупил полчаса, и сказал, что есть проблемы с зависимостями. apt-get к аналогичным выводам приходит, опять же, минимум на порядок быстрее.