Страница 1 из 1

Пересборка всех портов

Добавлено: 2009-08-30 21:10:48
Nagainos
На сервере(FreeBSD 6.1) собирал образ для бездисковых станций, в make.conf добавил опцию CPUTYPE?=pentium3m дабы образы были именно под железо на тонких клиентах.
Через несколько месяцев стал обновлять порты. После обновления выяснилось что весь обновленный софт так-же собрался под pentium3m и теперь не работает. Можно-ли заставить все установленные порты пересобраться???

Re: Пересборка всех портов

Добавлено: 2009-08-30 22:10:59
xDi
Запросто.

Если не установлено, ставим portupgrade:

Код: Выделить всё

cd /usr/ports/ports-mgmt/portupgrade
make install clean
Затем запускаем пересборку всех (-a) приложений, даже если версия установленная соответствует версии в портах (-f) попутно обновляя зависимости вверх (-r) и вниз (-R), доустанавливая недостающие (-N), если надо. Можно попросить собрать пакеты (-p) чтобы уже из них можно было разнести скомпиленые приложения на другие машины с тем же железом.

Код: Выделить всё

portupgrade -afrRNp

Re: Пересборка всех портов

Добавлено: 2009-08-30 22:32:13
Nagainos
Большое спасибо, будем пробовать и надееться что до завтрашнего утра все случится))))

Re: Пересборка всех портов

Добавлено: 2009-08-30 23:29:38
iZEN

Код: Выделить всё

% portupgrade -afp

Re: Пересборка всех портов

Добавлено: 2009-09-04 14:48:36
leha
Тема о портах. Если не сюда - подскажите, пожалуйста, где спросить.
Вопрос такой.
Трафик дорогой, да и на той машине, где фря инет не всегда доступен, иногда приходится качать на другой машине, потом нести на флешке и т.п., но не всегда. И поэтому, чтобы лишнее не качать, зависимости, по возможности, ставлю используя пакеты с DVD диска (пока коллекция еще не устарела). Но приходится ставить используя sysinstall (ничего против самой проги не имею, просто как-то много всего надо нажимать, чтобы выбрать нужное) по мере поступления "заявок" от make install, т.е. по одной..

Так вот, нельзя ли сделать что-то типа репозитория (в Ubunte видел), чтобы при инсталляции make install искал сначала на диске (дисках), а уж потом лез в инет.

Заранее спасибо.

Re: Пересборка всех портов

Добавлено: 2009-09-04 14:51:53
ProFTP
-F для того что скачать все исходники сразу, если проблемы с интернетом: portupgrade -aFrR
опции -f устанавливает дальше все зависимости, если даже где-то ошибка, то пытается продолжить дальше...;
http://www.lissyara.su/?id=1957

Re: Пересборка всех портов

Добавлено: 2009-09-06 13:48:57
leha
Спасибо, что откликнулись!

Вообще-то хотелось минимизировать закачку портов из инета, т.к. инет ограничен и дороговат, понятно, что проще закачать все исходники разом и не париться...
Но хотелось использовать то что люди, создавая диски Free залили на них в виде пакетов, чтобы не качать эти же проги из инета...
Может как-то можно переделать пакеты в те файлы которые кладуться в папочку /usr/ports/distfiles
или поднастроить make, чтобы он сначала зависимости с диска брал, а потом уже пытался в инет лезть.
Может можно, что-то типа "ложного" ftp сервера сделать из DVD диска, но там .tbz файлы, а в портах, как правило .tar.gz иногда .zip (может еще какие бывают - не вникал), может их перепаковать, но будет ли это то что нужно (суммы совпадут ли).
Неужели у всех всегда был открытый выход в инет?
Может кто сталкивался? Не может быть, чтобы никто...

Заранее, спасибо.

Да, вот еще, может кто подскажет
у WinAMP есть такой плагин Joseph_DkE_Lyrics_plugin_3.0M.exe он текст песни умеет в mp3 сохранить,
так вот к xmms что-то мне не удалось его прикрутить :(
для изучения перла залез в формат mp3 файла разобрался как это работает, написал скриптик для вывота в консоли этого текста из mp3 файла,
а может кто подскажет куда обратится чтобы посмотреть как плагины к xmms пишуться - может удасться что-нибудь такое написать
или может кто подскажет уже готовый плагин, но я что-то уже не надеюсь ...

Еще раз, спасибо!

Re: Пересборка всех портов

Добавлено: 2009-09-06 14:29:22
xDi
leha писал(а): Но хотелось использовать то что люди, создавая диски Free залили на них в виде пакетов, чтобы не качать эти же проги из инета...
Может как-то можно переделать пакеты в те файлы которые кладуться в папочку /usr/ports/distfiles
или поднастроить make, чтобы он сначала зависимости с диска брал, а потом уже пытался в инет лезть.
В distfiles хранятся как раз исходники с инструкциями по сборке + другие необходимые ресурсы для приложения. make для порта будет сначала искать такие файлы в папке distfiles. Если его там не окажется, то он его будет тянуть из сети (список, откуда именно качать, прописан в самом порте).
Для обновления портов удобно пользоваться программой portupgrade (ports-mgmt/portupgrade).
Для скачивания всех необходимых distfiles для установленных приложений и соответствующих версиям в дереве портов, используется команда:

Код: Выделить всё

portupgrade -arRF
-a - все
-r -R - зависимости вниз и вверх
-F - только скачать
portupgrade может не только из портов собирать, но и пытаться сначала скачать из сети пакет, и только если не получится - собирать из пакета. За такое поведение отвечает ключ -P.
Если требуется именно пакет, и не делать попытки собрать из порта, то используется опция -PP.
Добавив к ним -F мы заставим portupgrade скачать пакеты, но пока не устанавливать.
Если же мы устанавливаем прогу из портов, то можем собрать заодно и пакет (при чем именно с вашими опциями), задав опцию -p. Пакет будет размещеен в подпапках /usr/ports/packages/ в соответствующей категории.
В любом случае, portupgrade будет ломиться в сеть только тогда, когда нужного файла (distfile или package) нужной версии нет в системе или его хеш не совпадает.

P.S. Чтобы во всем этом хозяйстве не было ничего лишнего, можно пользоваться portsclean (входит в состав пакета portupgrade).

Код: Выделить всё

portsclean -CDLP
опции:
-С - делает make clean для всех портов
-D - удаляет устаревшие и битые distfiles (соответствующие версиям в дереве портов не трогает)
-L - удаляет устаревшие библиотеки
-P - удаляет устаревшие пакеты (соответствующие версиям в дереве портов не трогает)

Re: Пересборка всех портов

Добавлено: 2009-09-06 16:03:25
arkan

Код: Выделить всё

portsclean -CDLP
ГЫ ГЫ
на 140 гигов уменьшилось
спасибо незнал о такой фишке

Re: Пересборка всех портов

Добавлено: 2009-09-08 12:18:45
leha
Огромное спасибо, за предоставленную инфу!
Побежал пробовать...