Порты (ports) FreeBSD
Ну-с, сегодня я наконец-то осилил установку FreeBSD :)) Ну если честно — осилил я её уже давно, но всё никак не хватало времени довести её до конца (ибо компик дохленький был:( да и нужды особо не было).
И вот после русификации консоли (чёртова KOI8-R :( ), я приступил к самому главному … к более глубокому изучению работы системы портов в FreeBSD (сразу извиняюсь за возможные неточности ибо сам новичёк, но чтоб не забыть — записываю тута).
Чем мне нравится Gentoo ? Ну да, сборка live версий из SVN — это отдельный разговор (буду учиться делать такой же финт и во фряхе ^_^). Но ещё мне очень сильно нравится тамошняя система portage (которая кстати берёт своё начало, а точнее основы, с системы портов) — всё очень удобно и логично в ней (несколько постов назад я уже рассказывал о ней). И вот решил я навести такой же порядок и в системе портов FreeBSD … и что же я вижу когда пытаюсь поставить какую-либо программу? Ну да, она качается, ставится, даже соблюдает все зависимости, но вот только делает она это всё сама и совсем без моего участия (и фиг знает сколько она пакетов собирается ставить …). В Gentoo перед установкой какой-либо проги сразу выводится список зависимостей которые надо поставить или обновить. Вот и здесь я искал подобный функционал … и нашёл!
Переходим от слов к делу:[cc lang=»bash»]porteasy — A tool for fetching and building ports. [/cc]
Но не так она проста как кажется … и вот основные фишки: [cc lang=»bash»] — automatically update the necessary files (and only the necessary
files) using CVS (including anoncvs support)
— list all of a port’s dependencies, optionally hiding those that
are already installed
— fetch all the necessary distfiles right away, in a single batch,
so you don’t have to wait for one dependency to build before
fetching the next one’s distfile. Dialup users will love this.
— build and install arbitrary ports.
— build packages.[/cc]
Особенно радует пункт №2. То что нужно.
Не много о флагах программы:[cc lang=»bash»]-e — Убрать из списка порты, которые уже установлены в системе
-l — Показать выбранные порты (в данном случае они как зависимости от одного порта)
-s — Показать индикатор статуса (см. ниже) рядом с каждым выбранным (см.выше) портом[/cc]
Статусы:[cc lang=»bash»]`!` — Не установлено
` ` — Стоит последняя версия
`<` - Стоит, но старее, чем версия в портах
`>` — Стоит, но новее, чем версия в портах[/cc]
Вывод зависимостей, которые не установлены в системе, для определённой версии программы (которую мы собираемся ставить) на примере mplayer:[cc lang=»bash»]porteasy -le mplayer-0.99.11_14 | less[/cc]
А эта команда покажет полный список зависимостей mplayer, но с пометками (статусы) рядом с некоторыми зависимостями (например которые не установлены или которые можно обновить):
[cc lang=»bash»]porteasy -ls mplayer-0.99.11_14 | less[/cc]
На этом пока что всё — по возможности буду пополнять список.
И вот ещё, пока не забыл (жосский копи-паст):[cc lang=»bash»]porteasy will also assist in keeping your software up-to-date. I create a script like this:
echo «Updating installed ports skeletons»
porteasy -uI
echo «The following ports need upgrading:»
porteasy -s |grep «<"[/cc]