Шпаргалка по работе с портами FreeBSD

За несколько лет работы с FreeBSD собрал множество заметок по работе с софтом в FreeBSD. Собрав их все в месте выкладываю в одном посте.

Содержание:

  1. Поиск портов;
  2. Установка и конфигурирование  порта;
  3. Аудит установленных портов и зависимостей между ними;
  4. Удаление портов;
  5. Обновление портов.

Поиск портов
Поиск порта можно осуществить четырьмя способами:

Поиск портов 1-й способ:

#: cd /usr/ports

#: make search name=<имя_порта>

Поиск портов 2-й способ:

#: cd /usr/ports#: make search key=

Поиск портов 3-й способ:

#: cd /usr/ports#: locate <название_порта>

Поиск портов 4-й способ:

#: whereis <название_порта> 


Установка и конфигурирование  портов

Процедура установки

Рассмотрим процедуру инсталляции порта по этапам.

1. Конфигурирование порта:

#: make config

2. Конфигурирование и установка необходимых зависимостей порта

#: make configure

3. Сборка 

#: make

4. Установка

#: make instal

5. Очистка созданных во время компиляции и конфигурирования файлов

#: make clean


Операции можно сократить:

#: make configure && make && make install && make clean


Полезные опции утилиты make

Просмотреть получившуюся конфигурацию (созданную командой make config) порта можно командой:

#: make showconfig

Загрузка всех зависимых портов:

#: make fetch-recursive

У каждого порта можно узнать список его  зависимостей:

#: make all-depends-list

#: make run-depends-list

#: make build-depends-list

Удаление файлов созданных во время сборки зависимых портов:

#: make clean-depends

Переустановка пакета:

#: make reinstall


Обновление установленного порта

Для поддержания системы в актуальном состоянии необходимо периодически производить обновление установленных пакетов.

Это можно сделать с помощью утилиты portupgrade (/usr/ports/sysutils/portupgrade/)

Обновление порта:

#: portupgrade название_программы

Если вы хотите обновить только определенное приложение, но не полностью базу данных, используйте portupgrade pkgname, с флагом -r, если portupgrade должен отработать все пакеты, которые зависят от указанного, и использовать флаг -R для отработки всех пакетов, которые требуют указанные пакеты.

Так же можно обновить пакет перейдя в его директорию в папке /usr/ports/ и выполнив:

#: portupgrade 


Обновление дерева портов через portsnap 

Для первого запуска:

#: portsnap fetch

#: portsnap extract

Для всех последующих запусков:#: portsnap fetch

#: portsnap update

Или

#: portsnap fetch update


Обновление портов с помощью portupgrade

#: portsnap fetch update

#: portupgrade -arR

Второй командой будут скачаны исходники всех портов, нуждающихся в обновлении, распакованы, скомпилированы и инсталлированы в порядке, определяемом зависимостями.

Ключи portupgrade:

-a — обновление всех портов, для которых portversion выявила «старение» по сравнению с текущим деревом;

-r — рекурсивное обновление всех портов, которые зависят от установленных и обновляемых;

-R — рекурсивное обновление всех портов, от которых зависят пакеты, установленные в системе.

Две последние опции могут показаться тавтологичными, но это не так: только их сочетание позволяет корректно обновить все установленные ранее пакеты (да и то не всегда — в некоторых случаях может потребоваться ручное вмешательство). 


Устранение возможных неполадок и пере конфигурирование собранного порта

Варианты развития событий:

Вариант 1 — необходимо пере конфигурировать пакет.Необходимо удалить собственную заданную с помощью make config конфигурацию:

#: make rmconfig

Затем можно начинать с начало всю процедуру инсталляции

Вариант2 — необходимо пересобрать порт с другим набором зависимостей или конфигурациями этих зависимостей.

Есть такой момент, что опции заданные через make configure задаются один раз. При последующих попытках пересбора порта могут появится сообщения вида:… Found saved configuration for <имя пакета> …Один раз заданные опции порта хранятся в /var/db/ports//options .

Для того чтобы иметь возможность заново переконфигурировать все зависимости пакета следует файл options удалить

Подробнее можно прочитать п. 5.11.2: http://www.freebsd.org/doc/ru_RU.KOI8-R/books/porters-handbook/makefile-options.html


Удаление портов

Удаление портов с помощью утилиты pkg_deinstall

Ключ -r

#: pkg_deinstall -r

Удалить все пакеты, которые от него не зависят без учета зависимостей от него других пакетов. Т. е. удаляет порт и все, что от него зависит — рекурсия к листьям.

Ключ -R

#: pkg_deinstall -R

Удалить пакеты и пакеты, которые от него зависят — рекурсия к корню. При этом пакеты используемые в других портах будут пропущены (если pkg_deinstall без ключа -f).


Аудит установленных портов и зависимостей между ними

Утилита pkg_tree

Утилита pkg_tree строит визуальное дерево пакетов и их зависимостей.

#: cd /usr/ports/ports-mgmt/pkg_tree ; make install clean

Используемые ключи:

  1. -v — зависимости зависимостей.
  2. -t — чтобы показывать только верхнего уровня пакетов.
  3. -b — чтобы показать только нижний уровень пакеты.
  4. -t -q — даст список верхнего уровня пакетов без их зависимостей, установка только этих пакетов должны установить всех установленных пакетов.

Список установленных пакетов и портов:

#: pkg_info

Поиск установленных пакетов по части названия

Для поиска пакета с помощью утилиты pkg_info необходимо ввести не только полное название, но и версию пакета, что иногда может вызвать трудность.

C ключом -x можно указать только первую часть названия пакета:

#: pkg_ingp -xc lynk


Как узнать какие файлы относятся к данному пакету:

#: pkg_info -xL имя_пакета


Как узнать какому пакету необходимо обновление:

#: pkg_version -v | grep «need»

По материалам devicejuice

micro — лучше чем vim и nano

Micro — простой и легковесный текстовый редактор для терминалов, написанный на Go. Он поставляется в виде бинарного файла и не требует зависимостей.

Как можно догадаться из названия, micro претендует стать заменой старому доброму nano, сохраняя его простоту, но в то же время обладая большими возможностями:

легкая установка — micro представляет собой один исполняемый бинарный файл, не зависящий от других библиотек;
привычные сочетания клавиш;
табы и возможность разделения рабочего пространства;
нормальная поддержка мыши;
плагины на Lua;
подсветка синтаксиса из коробки для более чем 75 языков;
анализ и подсветка ошибок в коде;
поддержка цветовых схем, в том числе и true color.


Micro распространяется под лицензией MIT.

===============
micro: https://micro-editor.github.io/

Опции: https://github.com/zyedidia/micro/blob/master/runtime/help/options.md

Плагины: https://micro-editor.github.io/plugins.html

===============
По материалам: Черный треугольник, Linux.org.ru