- FreeBSD: Обновление бинарников и портов
- Бинарное обновление
- Обновление портов
- Обновление портов FreeBSD, программа Portsnap
- Программа Portsnap, для обновления портом, операционной системы FreeBSD
- Использование программы Portsnap из планировщика Cron
- Snapshot is corrupt, испортилась база программы portsnap
- Установка дерева портов FreeBSD и их обновление
- Установка дерева портов
- Обновление дерева портов
- Установка программ
- Похожие статьи
FreeBSD: Обновление бинарников и портов
После установки системы первым делом рекомендуется выполнить: обновление бинарников и портов.
Бинарное обновление
Выполняем командой freebsd-update
- fetch — получает обновления для текущей архитектуры и конфиграции
- cron — случайно, с промежутком от 1 до 3600 секунды выполняет fetch для получения обновлений. Если обновления имеются, то шлется письмо, обычно на имя root.
- upgrade — получает файлы, необходимые для обновления на новый релиз. Прежде чем использовать, ознакомьтесь с анонсами и правилами обновления для нового релиза, если требуется выполнение дополнительных действий.
- install — устанавливает полученные обновления.
- rollback — удаляет установленные обновления.
Для текущих обновлений выполняется:
# freebsd-update fetch Looking up update.FreeBSD.org mirrors. 3 mirrors found. Fetching metadata signature for 9.1-RELEASE from update4.freebsd.org. done. Fetching metadata index. done. Inspecting system. done. Preparing to download files. done. No updates needed to update system to 9.1-RELEASE-p2.
Если есть обновления выполняем:
Если патчи безопасности относились к ядру (ядро или модули), по завершению работы freebsd-update систему необходимо будет перезагрузить.
Утилита freebsd-update в состоянии обновлять только GENERIC-ядро. В том случае, если Вы используете ядро собственной сборки, Вам потребуется его перекомпилировать после каждой отработки freebsd-update, в которой затронуты изменения относящиеся к ядру.
Обновление портов
Обновить дерево портов FreeBSD можно штатной утилитой – Portsnap, она имеет несколько служебных команд для выполнения различных действий:
- Команда fetch — Скачивает снимок ( snapshot ), основного дерева портов с указанного в конфигурации сервера. Используется только для интерактивной работы, не через cron
- Команда cron — Используется для запуска из планировщика заданий cron.
- Команда extract — Разворачивает дерево портов, данная команда полностью удаляет существующее дерево портов, включая все внесенные в него изменения, как правило выполняется в первый раз и в случае, если нужно получить, чистое дерево портов или при использовании с опцией path( cм. ниже )
- Команда update — Служит для, непосредственно, обновления, основного дерева портов.
- path — Это дополнительная опция, используется с командой extract, для обновления конкретного порта, или нескольких портов.
Если это первый запуск portnap, делаем:
# portsnap fetch Looking up portsnap.FreeBSD.org mirrors. 6 mirrors found. Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org. done. Fetching snapshot metadata. done. Updating from Tue Apr 9 23:00:28 EEST 2013 to Wed Apr 24 19:34:54 EEST 2013. Fetching 3 metadata patches.. done. Applying metadata patches. done. Fetching 3 metadata files. done. Fetching 1749 patches. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100. 110. 120. 130. 140. 150. 160. 170. 180. 190. 200. 210. 220. 230. 240. 250. 260. 270. 280. 290. 300. 310. 320. 330. 340. 350. 360. 370. 380. 390. 400. 410. 420. 430. 440. 450. 460. 470. 480. 490. 500. 510. 520. 530. 540. 550. 560. 570. 580. 590. 600. 610. 620. 630. 640. 650. 660. 670. 680. 690. 700. 710. 720. 730. 740. 750. 760. 770. 780. 790. 800. 810. 820. 830. 840. 850. 860. 870. 880. 890. 900. 910. 920. 930. 940. 950. 960. 970. 980. 990. 1000. 1010. 1020. 1030. 1040. 1050. 1060. 1070. 1080. 1090. 1100. 1110. 1120. 1130. 1140. 1150. 1160. 1170. 1180. 1190. 1200. 1210. 1220. 1230. 1240. 1250. 1260. 1270. 1280. 1290. 1300. 1310. 1320. 1330. 1340. 1350. 1360. 1370. 1380. 1390. 1400. 1410. 1420. 1430. 1440. 1450. 1460. 1470. 1480. 1490. 1500. 1510. 1520. 1530. 1540. 1550. 1560. 1570. 1580. 1590. 1600. 1610. 1620. 1630. 1640. 1650. 1660. 1670. 1680. 1690. 1700. 1710. 1720. 1730. 1740. done. Applying patches. done. Fetching 28 new ports or files. done.
Теперь можно распаковать дерево:
Данная команда разворачивает все дерево целиком, поэтому время выполнения не зависит от того, как давно вы обновлялись.
Вот и все, имеем свежее дерево портов.
Источник
Обновление портов FreeBSD, программа Portsnap
Собственно, что такое порт в контексте FreeBSD. Порт в операционной системе FreeBSD, это папка с минимальным набором файлов, скелетом, необходимым для нахождения и скачивания на локальную машину исходных текстов программного обеспечения, его конфигурирования, компиляции и наконец установки уже готовой программы в соответствующие каталоги. Все эти манипуляции выполняются утилитой make с использованием конфигурационных файлов порта.
Файлы порта представляют из себя сценарии, записанные в обычные текстовые файлы. Порт как правило состоит из нескольких файлов:
- /usr/ports/archivers — софт для работы с архивами
- /usr/ports/databases — софт для работы с базами данных
- /usr/ports/lang — различные языки программирования
Программа Portsnap, для обновления портом, операционной системы FreeBSD
- Команда fetch — Скачивает снимок ( snapshot ), основного дерева портов с указанного в конфигурации сервера. Используется только для интерактивной работы, не через cron
- Команда cron — Используется для запуска из планировщика заданий cron.
- Команда extract — Разворачивает дерево портов, данная команда полностью удаляет существующее дерево портов, включая все внесенные в него изменения, как правило выполняется в первый раз и в случае, если нужно получить, чистое дерево портов или при использовании с опцией path( cм. ниже )
- Команда update — Служит для, непосредственно, обновления, основного дерева портов.
- path — Это дополнительная опция, используется с командой extract, для обновления конкретного порта, или нескольких портов.
vds-admin /root# portsnap fetch Looking up portsnap.FreeBSD.org mirrors. 3 mirrors found. Fetching snapshot tag from portsnap2.FreeBSD.org. done. Fetching snapshot metadata. done. Updating from Mon Jun 1 17:22:35 UTC 2009 to Sun Jun 28 08:01:56 UTC 2009. Fetching 3 metadata patches.. done. Applying metadata patches. done. Fetching 3 metadata files. done. Fetching 2058 patches. 10. 20. 30. 40. 50. 60. 70. 80. done. Applying patches. done. Fetching 2094 new ports or files. done.
Я недавно обновлял порты, поэтому сейчас это заняло минуту, если обновление дерева портов делается впервые или давненько не делалось, естественно процесс будет куда более долгим. Пугаться этого не стОит, ничего не застряло и не зависло. Теперь можно распаковать дерево:
vds-admin /# portsnap extract /Mk /usr/ports/Templates /usr/ports/Tools /usr/ports/accessibility /usr/ports/arabic ----------------------------- пропущено.. ----------------------------- /usr/ports/x11/yelp/ /usr/ports/x11/zenity/ Building new INDEX files. done.
Данная команда разворачивает все дерево целиком, поэтому время выполнения не зависит от того, как давно вы обновлялись. У меня на тестовой, не самой сильной машине, с операционной системой FreeBSD 7.1, ушло порядка 15-ти минут Теперь обновляем:
vds-admin /# portsnap update Removing old files and directories. done. Extracting new files: /usr/ports/devel/Makefile /usr/ports/devel/p5-DateTime-Format-SQLite/ /usr/ports/lang/neko/ /usr/ports/security/fakeroot/ /usr/ports/security/tor-devel/ /usr/ports/www/lighttpd/ /usr/ports/www/webcheck/ /usr/ports/www/xpi-noscript/ Building new INDEX files. done.
Вот собственно и все, имеем свежее дерево портов. Если обновление система обнаружит что обновление не требуется, будет выдано соответствующее сообщение:
vds-admin /# portsnap update Ports tree is already up to date.
Повторюсь, первоначально, процедура может быть весьма длительной, но переживать из-за этого особо не стОит.
Использование программы Portsnap из планировщика Cron
Согласитесь, очень удобно периодически обновлять порты, практически не принимая в этом участия. Для этого у программы portsnap, есть специальная команда, cron. Это именно специальная команда, обычный portsnap fetch, из крона работать не будет. Сделано это не случайно, команда portsnap cron, после запуска, до загрузки чего-либо, отсчитывает произвольный интервал времени от 1 до 3600 секунд, это сделано разработчиками, что-бы снизить кол-во одновременно подключающихся пользователей к серверу обновлений, а затем приступает к работе.
Настоятельно не рекомендуется прописывать в cron команду update, может получится неприятная ситуация, например, если вы компилируете какую-то программу а cron запустит в этот момент обновление портов.
Что-бы избежать вышеописанной ситуации, нужно обновлять только индексный файл, для этого у программы portsnap, есть опция -I. Итак, в конфигурационном файле /etc/crontab, прописываем следующую строку:
Не забывайте, что в данном варианте у вас обновляется только индексный файл, а это не есть обновление дерева портов. Для обновления самих портов нужно вручную выполнить команду portsnap update, из командной строки. Делайте это периодически, как того требует ваша политика поддержания системы портов в актуальном состоянии.
Snapshot is corrupt, испортилась база программы portsnap
Fetching 3 metadata files. /usr/sbin/portsnap: cannot open beea5333deea7ef646b497e9cd751ba72e17fd59708f9eed1f8d857bc585ad70.gz: No such file or directory metadata is corrupt.
Наличие на экране данного сообщения, зачастую говорит о том, что попортилась база данных, программы portsnap. Ничего страшного в этом тоже нет, всякое случается. Исправить можно следующим образом:
vds-admin /# rm -rf /var/db/portsnap vds-admin /# mkdir /var/db/portsnap vds-admin /# portsnap fetch extract
Источник
Установка дерева портов FreeBSD и их обновление
Новичок во FreeBSD наверняка хочет побыстрее узнать, как устанавливать новое ПО для FreeBSD. Конечно, для более глубокого понимания темы рекомендуется прочитать соответствующий раздел FreeBSD Handbook. Этот пост просто шпаргалка, и пишу я его скорее больше для себя 🙂
Установка дерева портов
Если у вас чистая система, то нужно скачать и распаковать официальное дерево портов:
# portsnap fetch # portsnap extract
Обновление дерева портов
В дальнейшем, после одной установки дерево портов нужно лишь обновлять:
Установка программ под катом.
Установка программ
К примеру, хотим установить MySQL. Сперва нужно найти точное название программы в портах:
# cd /usr/ports # make search key=mysql-server . . . Port: mysql-server-5.1.57 Path: /usr/ports/databases/mysql51-server Info: Multithreaded SQL database (server) Maint: [email protected] B-deps: mysql-client-5.1.57 R-deps: mysql-client-5.1.57 WWW: http://www.mysql.com/ . . .
Будут выведены все пакеты, содержащие данное ключевое слово. В нашем случае получим различные версии СУБД MySQL. Полный путь к порту выбранной нами версии – /usr/ports/databases/mysql51-server. Переходим туда, задаем параметры сборки, собираем программу и убираем за собой.
# cd /usr/ports/databases/mysql51-server # make config # make install clean
Похожие статьи
Источник