Для вывода списка и описания установленных пакетов в системе :
ekzor# pkg_info
libiconv-1.13.1_1 A character set conversion library
libid3tag-0.15.1b ID3 tags library (part of MAD project)
libidn-1.22 Internationalized Domain Names command line tool
libksba-1.2.0 KSBA is an X.509 Library
libltdl-2.4_1 System independent dlopen wrapper
libmad-0.15.1b_2 Libmad library (part of MAD project)
Подробная информация по пакету:
ekzor# pkg_info nano-2.2.6
Information for nano-2.2.6:
Nano’s ANOther editor, an enhanced free Pico clone
nano is a small, free and friendly editor which aims to replace
Pico, the default editor included in the non-free Pine package.
Rather than just copying Pico’s look and feel, nano also implements
some missing (or disabled by default) features in Pico, such as
«search and replace» and «goto line number».
Вывод отчёта о версиях установленных пакетов, сравнение идёт с пакетом находящимся в дереве портов:
FreeBSD | Обзор, мнение, пригодность для десктопа
ekzor# pkg_version
Символы во второй колонке указывают сравнительную разницу в возрасте установленной версии и версии, находящейся в локальном дереве портов.
Символ | Значение |
= | Версия установленного пакета соответствует версии, находящейся в локальном дереве портов. |
Установленная версия старее, чем та, что имеется в дереве портов. | |
> | Установленная версия новее, чем та, что есть в дереве портов. (Скорее всего, локальное дерево портов устарело.) |
? | В индексном файле портов установленный пакет не может быть найден. (Это может случиться, например, если установленный порт был удалён из Коллекции Портов или переименован.) |
* | Имеется несколько версий пакета. |
Для удаления ранее установленных пакетов :
К примеру, это будет текстовый редактор nano
ekzor# pkg_info | grep nano
nano-2.2.6 Nano’s ANOther editor, an enhanced free Pico clone
ekzor # pkg _ delete nano -2.2.6
Для того чтобы принудительно удалить пакет игнорируя зависимости можно использовать ключ — f , но в этом случае принудительное удаление приведёт к неработоспособности всех тех программ которые зависят от удаляемого пакета. Поэтому использовать принудительное удаление следует только в тех случаях, когда это действительно необходимо. Ключ — a применимый к pkg _ delete удалит все пакеты из системы полностью.
Установка пакетов при наличии интернета:
утилита автоматически определит правильный формат объектных файлов и релиз, а затем загрузит и установит пакет с сервера FTP.
ekzor# pkg_add -r nano
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9.0-release/Latest/nano.tbz… Done.
Использование портов в FreeBSD
, где Nano – название устанавливаемого пакета.
ekzor# pkg_add -r wget
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9.0-release/Latest/wget.tbz… Done.
Установка пакетов при отсутствии интернета:
Если же на машине интернет отсутствует, то пакет можно установить из какого либо каталога файловой системы. Если, к примеру создать в каталог /usr/packages , а в него положить скаченный из другого места пакет nano.tbz с зависимостями. Тогда установка пакета будет выглядеть так:
ekzor# mkdir /usr/packages
Скачаем пакет с ftp :
ekzor# wget -c ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9.0-release/Latest/nano.tbz
—2012-11-07 22:08:54— ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9.0-release/Latest/nano.tbz
Resolving ftp.freebsd.org (ftp.freebsd.org). 193.162.146.4, 204.152.184.73, 2001:4f8:0:2::e, .
Connecting to ftp.freebsd.org (ftp.freebsd.org)|193.162.146.4|:21. connected.
Logging in as anonymous . Logged in!
==> SYST . done. ==> PWD . done.
==> TYPE I . done. ==> CWD (1) /pub/FreeBSD/ports/i386/packages-9.0-release/Latest . done.
==> SIZE nano.tbz . 382474
==> PASV . done. ==> RETR nano.tbz . done.
Length: 382474 (374K) (unauthoritative)
2012-11-07 22:08:55 (1.07 MB/s) — nano.tbz’ saved [382474]
Информация по скаченному пакету:
ekzor# file nano.tbz
nano.tbz: bzip2 compressed data, block size = 900k
Собственно сама установка:
ekzor# pkg_add nano.tbz
Если в процессе ручной установки пакетов потребуются зависимости будут выведены в консоли следующие сообщения
pkg_add: could not find package
Следует, также выкачать их и положить рядом и сперва установить зависимости и после попробовать установку снова.
Вся информация о пакете хранится в каталоге /var/db/pkg . Список установленных файлов и описания всех пакетов могут быть найдены среди файлов этого каталога . Вот собственно и всё, некоторый набор знаний получен и уже проще осваивать систему FreeBSD 9.0 .
От ekzorchik
Всем хорошего дня, меня зовут Александр. Я под ником — ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог — это шпаргалка онлайн.
Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору.
Источник: www.ekzorchik.ru
ЗАПИСКИ АДМИНИСТРАТОРА FREEBSD
В этой статье рассматриваются установка и обновление приложений операционной системы FreeBSD разными методами.
Устанавливаем пакет Curl. С ним и будем играться.
freebsd7# setenv HTTP_PROXY http://172.16.2.1:3128
Скачиваем и инсталируем пакет:
freebsd7# pkg_add -vr curl
(ключ -v -расширенный вывод, -r — ставить из удаленного репозитария.)
looking up 172.16.2.1
connecting to 172.16.2.1:3128
>>> User-Agent: pkg_add libfetch/2.0
content length: [1088297]
last modified: [2008-09-08 10:45:09]
tar command returns 0 status
extract: Package name is curl-7.18.0
extract: CWD to /usr/local
extract: execute ‘/sbin/ldconfig -m /usr/local/lib’
Running mtree for curl-7.18.0..
mtree -U -f +MTREE_DIRS -d -e -p /usr/local >/dev/null
Attempting to record package into /var/db/pkg/curl-7.18.0..
Package curl-7.18.0 registered in /var/db/pkg/curl-7.18.0
Проверяем регистрацию пакета:
curl-7.18.0 Non-interactive tool to get files
from FTP, GOPHER, HTTP(S)
Инструмент Portaudit — самый легкий путь для проверки обновлений безопасности установленных пакетов. Инсталируем portaudit на FreeBSD.
freebsd7# pkg_add -r portaudit
===> To check your installed ports for known
vulnerabilities now, do:
Проверяем инсталированные пакеты
freebsd7# portaudit -Fdav
Attempting to fetch from http://www.FreeBSD.org/ports/.
auditfile.tbz 100% of57 kB 95 kBps
New database installed.
Database created: Mon Aug 24 15:10:03 EDT 2009
Affected package: curl-7.18.0 (matched by curl>=5.11<7.19.4)
Type of problem: curl — cURL/libcURL Location: Redirect
URLs Security Bypass.
1 problem(s) in your installed packages found.
You are advised to update or deinstall the affected
(matched by curl>=5.11<7.19.4)
говорит нам о том, что есть более новая версия программного обеспечения Curl.
Теперь нам необходимо обновить программу.
Делаем это методом удаления старой версии и инсталляции новой.
Удаление пакета FreeBSD c помощью pkg_delete:
Смотрим какие пакеты установлены.
curl-7.18.0 Non-interactive tool to get files from FTP, GOPHER,HTTP(S)
portaudit-0.5.12 Checks installed ports against a list of security
Переходим в /var/db/pkg/
freebsd7# cd /var/db/pkg/
Удаляем пакет curl-7.18.0
freebsd7# pkg_delete curl-7.18.0/
Проверяем — удалилось ли.
portaudit-0.5.12 Checks installed ports against a list of security
Инсталяция новой версии пакета Curl с помощью pkg_add.
Определяем переменную PACKAGESITE, которая ссылается на место расположения новых пакетов
freebsd7# setenv PACKAGESITE ftp://ftp.freebsd.org//pub/
Инсталлируем новый пакет.
bsd7# pkg_add -vr curl
looking up 172.16.2.1
connecting to 172.16.2.1:3128
>>> User-Agent: pkg_add libfetch/2.0
content length: [1097934]
last modified: [2009-04-13 21:18:46]
offset 0, length -1, size -1, clength 1097934
tar command returns 0 status
Package ‘curl-7.19.4’ depends on ‘ca_root_nss-3.11.9_2’
with ‘security/ca_root_nss’ origin.
looking up 172.16.2.1
connecting to 172.16.2.1:3128
>>> User-Agent: pkg_add libfetch/2.0
content length: [172602]
last modified: [2009-04-13 21:00:07]
offset 0, length -1, size -1, clength 172602
tar command returns 0 status
Finished loading ca_root_nss-3.11.9_2 over FTP.
extract: Package name is ca_root_nss-3.11.9_2
extract: CWD to /usr/local
Running mtree for ca_root_nss-3.11.9_2..
mtree -U -f +MTREE_DIRS -d -e -p /usr/local >/dev/null
Attempting to record package into /var/db/pkg/ca_root_nss-3.11.9_2..
Package ca_root_nss-3.11.9_2 registered in /var/db/pkg/ca_root_nss-3.11.9_2
‘ca_root_nss-3.11.9_2’ loaded successfully.
extract: Package name is curl-7.19.4
extract: CWD to /usr/local
extract: execute ‘/sbin/ldconfig -m /usr/local/lib’
Running mtree for curl-7.19.4..
mtree -U -f +MTREE_DIRS -d -e -p /usr/local >/dev/null
Attempting to record package into /var/db/pkg/curl-7.19.4..
Trying to record dependency on package ‘ca_root_nss-3.11.9_2’ with ‘security/ca_root_nss’ origin.
Package curl-7.19.4 registered in /var/db/pkg/curl-7.19.4
ca_root_nss-3.11.9_2 The root certificate bundle from the Mozilla Project
curl-7.19.4 Non-interactive tool to get files from FTP, GOPHER, HTTP(S)
portaudit-0.5.12 Checks installed ports against a list of security vulnerabi
Проверяем инсталированные пакеты.
freebsd7# portaudit -Fdav
Attempting to fetch from http://www.FreeBSD.org/ports/.
auditfile.tbz 100% of 57 kB 69 kBps
New database installed.
Database created: Mon Aug 24 15:40:01 EDT 2009
0 problem(s) in your installed packages found.
Итак видим что все нормально.
Работаем с портами.
Во FreeBSD дерево портов находится в директории/usr/ports. Простейший путь обновить дерево портов — использовать утилиту portsnap.Она входит в стандартную установку FreeBSD
Сначала необходимо выполнить команду:
# portsnap fetch для загрузки дерева портов.
# portsnap extract (используется только 1 раз при первой загрузке (обновлении) портов).
#portsnap update для обновления базы данных портов.
Проинсталлировав порты. мы можем использовать утилиту pkg_version.
Вот как это делается.
freebsd7# portsnap fetch
Looking up portsnap.FreeBSD.org mirrors… 3 mirrors found.
Fetching public key from portsnap2.FreeBSD.org… done.
Fetching snapshot tag from portsnap2.FreeBSD.org… done.
Fetching snapshot metadata… done.
Fetching snapshot generated at Sun Aug 23 20:41:07 EDT 2009:
e4a063906c569a6d82cdc053dda2ced013f53d80723ef4100% of 59 MB 359 kBps
Extracting snapshot… done.
Verifying snapshot integrity… done.
Fetching snapshot tag from portsnap2.FreeBSD.org… done.
Fetching snapshot metadata… done.
Updating from Sun Aug 23 20:41:07 EDT 2009 to Mon Aug 24 13:52:56 EDT 2009.
Fetching 4 metadata patches… done.
Applying metadata patches… done.
Fetching 0 metadata files… done.
Fetching 36 patches…..10….20….30… done.
Applying patches… done.
Fetching 2 new ports or files… done.
freebsd7# portsnap extract
Building new INDEX files… done.
Используем pkg_version для проверки обновлений
freebsd7# pkg_version -v
ca_root_nss-3.11.9_2 = up-to-date with port
Обновляем программу Curl.
Сначала удаляем старый Curl.
freebsd7# pkg_deinstall -R curl
[Updating the pkgdb in /var/db/pkg … – 9 packages found
[Updating the pkgdb in /var/db/pkg … – 8 packages found
Ищем порт Curl в дереве портов.
freebsd7# cd /usr/ports
freebsd7# make search name=curl
Info: Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
B-deps: perl-5.8.9_3R-deps: ca_root_nss-3.11.9_2
Info: A C++ wrapper for libcurl
B-deps: ca_root_nss-3.11.9_2 curl-7.19.6_1
R-deps: ca_root_nss-3.11.9_2 curl-7.19.6_1
freebsd7# cd /usr/ports/ftp/curl
Выполняем make showconfig порта Curl, что покажет с каками опциями будет собираться порт.
Если необходимо редактируем опции.
freebsd7# make showconfig
===> The following configuration options are available for curl-7.19.6_1:
CARES=off «Asynchronous DNS resolution via c-ares»
CURL_DEBUG=off «Enable curl diagnostic output»
GNUTLS=off «Use GNU TLS if OPENSSL is OFF»
IPV6=on «IPv6 support»
KERBEROS4=off «Kerberos 4 authentication»
LDAP=off «LDAP support»
LDAPS=off «LDAPS support (requires LDAP and SSL)»
LIBIDN=off «Internationalized Domain Names via libidn»
LIBSSH2=on «SCP/SFTP support via libssh2»
NTLM=off «NTLM authentication»
OPENSSL=on «OpenSSL support»
PROXY=on «Proxy support»
TRACKMEMORY=off «Enable curl memory diagnostic output»
===> Use ‘make config’ to modify these settings
Выполняем команду make
===> Found saved configuration for curl-7.19.6_1
=> curl-7.19.6.tar.bz2 doesn’t seem to exist in /usr/ports/distfiles/.
curl-7.19.6.tar.bz2 100% of 2292 kB 2336 kBps
===> Extracting for curl-7.19.6_1
=> MD5 Checksum OK for curl-7.19.6.tar.bz2.
=> SHA256 Checksum OK for curl-7.19.6.tar.bz2.
===> curl-7.19.6_1 depends on file: /usr/local/bin/perl5.8.9 – found
===> Patching for curl-7.19.6_1
===> curl-7.19.6_1 depends on file: /usr/local/bin/perl5.8.9 – found
===> Applying FreeBSD patches for curl-7.19.6_1
===> curl-7.19.6_1 depends on file: /usr/local/bin/perl5.8.9 – found
===> curl-7.19.6_1 depends on shared library: ssh2.1– not found
===> Verifying install for ssh2.1 in /usr/ports/security/libssh2
=> libssh2-1.2.tar.gz doesn’t seem to exist in /usr/ports/distfiles/.
libssh2-1.2.tar 100% of 519 kB 2150 kBps
===> Extracting for libssh2-1.2,2
=> MD5 Checksum OK for libssh2-1.2.tar.gz.
=> SHA256 Checksum OK for libssh2-1.2.tar.gz.
===> Patching for libssh2-1.2,2
===> Configuring for libssh2-1.2,2
checking whether to enable maintainer-specific portions
of Makefiles… no
checking for sed… /usr/bin/sed
checking for a BSD-compatible install… /usr/bin/
install -c -o root -g wheel
checking whether build environment is sane… yes
===> Registering installation for libssh2-1.2,2
===> Returning to build of curl-7.19.6_1
===> Configuring for curl-7.19.6_1
checking whether to enable maintainer-specific portions of Makefiles… no
checking whether to enable debug build options… no
checking whether to enable compiler optimizer… notspecified (assuming yes)
checking whether to enable strict compiler warnings… no
checking whether to enable curl debug memory tracking… no
checking for sed… /usr/bin/sed
checking for grep… /usr/bin/grep
checking for egrep… /usr/bin/grep -E
checking for ar… /usr/bin/ar
Making all in examples
Making all in libcurl
Выполняем команду make install порта Curl.
freebsd7# make install
===> Installing for curl-7.19.6_1
===> curl-7.19.6_1 depends on file: /usr/local/share/certs/ca-root-nss.crt – found
===> curl-7.19.6_1 depends on shared library: ssh2.1 – found
===> Generating temporary packing list
===> Checking if ftp/curl already installed
Making install in lib
===> Registering installation for curl-7.19.6_1
This port has installed the following files which
Источник: freebsd-ru.ru
FAQ FreeBSD.
Желательно устанавливать программы в FreeBSD из портов, которые являются проверенными исходниками программ. Но минусом make в портах является невозможность штатно обновить в дальнейшем программу. Для примера, представим, что есть порт вымышленной программы VAV в /usr/ports/myth/vav/. В начале VAV версии 1.0. Вы устанавливаете VAV 1.0 с помощью cd /usr/ports/myth/vav/ make install clean . Напомню, что установка из портов создаёт сначала бинарный пакет (package), который уже и устанавливается в систему и это можно проверить командой pkg_info.
Выходит новая версия VAV 2.0. Сопровождающий порта /usr/ports/myth/vav/ обновляет порт и делает его актуальным. Вы должны получить эту новую версию порта с помощью portsnap update . НО если вы снова сделаете make в новом порте, у вас будет установлена как VAV 1.0 так и VAV 2.0!
Выход? Использовать нужно portupgrade. После синхронизации ваших портов с новыми официальными, нужно вызвать команду portsdb -uU, которая обновит базу portupgrade. С помощью portupgrade вы должны устанавливать софт из портов и тогда получите нужную возможность — легко ОБНОВЛЯТЬ программу, вместе с её зависимостями.
Не работает fetch через прокси сервер.
Если прокси авторизирует по IP, то достаточно прописать в /etc/make.conf
FETCH_ENV=FTP_PROXY=http://адрес_прокси_сервера:порт/
FETCH_ENV=HTTP_PROXY=http://адрес_прокси_сервера:порт/
На нулевой терминал сыпятся сообщения системы.
что может мешать вам работать. Закоментируйте строку нулевого терминала
#ttyv0 «/usr/libexec/getty Pc» cons25r on secure
в файле /etc/ttys и работайте на других терминалах, отдав нулевой терминал системе.
Portsnap с отладкой.
В новых версиях FreeBSD порты принято обновлять утилитой portsnap. У неё есть недокументированная возможность выдавать на консоль больше информации при ошибках работы. Запускайте с параметром —debug и получите более информативный вывод.
portsnap —debug fetch update
Дата последней правки: 2013-10-31 17:33:01
Источник: vasilisc.com