![]() |
Установка ПО в системе FreeBSD
Установка ПО в операциононй системе FreeBSD или Почему надо ставить программы из портов, а не руками
Q: Почему вы советуете все ставить из портов? A: Потому, что порты - это стандартный способ установки ПО в системе. Это значит, что программы, справочная документация, разделяемые библиотеки и файлы заголовков ставятся именно туда, куда надо, и потому нет необходимости в дальнейшем заниматься долгими поисками. Более того, система аудита FreeBSD работает только с ПО, установленным из портов, а значит, что устанавливая из исходников, Вы будете сами отвечаьт за безопасность системы и сами искать сообщения о критических уязвимостях программ и их новых версиях. Q: Ведь действительно проще ставить из исходников где все включено и компилируется с необходимыми опциями? A: На самом деле - не проще, а сложнее. Потому, что система портов сама находит зависимости и автоматически ставит необходимое ПО. В случае установки вручную, придется самостоятельно ставить необходимые библиотеки, которые, в свою очередь, зависят от других библиотек, которые тоже зависят от библиотек, которые..... И это - полбеды. Беда приходит тогда, когда надо обновить какой-либо пакет; например, при обнаружении какой-либо уязвимости или при смене версии. Представьте себе, что возникла необходимость обновить libfreetype. Если у нас установлен PHP5 с поддержкой gd, нам (возможно) придется пересобрать libfreetype, libgd и php-gd. И все это вручную, с вспоминанием опций, с которыми собирали все это в прошлый раз, с предварительной чисткой системы от старой версии и т.д. Но если мы собирали из портов, все решается ровно одной командой: portupgrade freetype-1.2.3. Все остальное система сделает сама. Q: Но я сам ставил из исходников - все работало и не надо было заморачиваться. A: Да, работало. Но сколько времени потребовалось, чтобы все это поставить, разобраться в зависимостях и заставить работать так, как надо? Для установки того же Apache + PHP5 + MySQL + Gd вручную, надо: - собрать библотеки gd, jpeg, png, freetype - собрать и установить mysql - собрать и установить apache - собрать PHP5. При этом надо помнить про пути установки, флаги оптимизации, дополнительные зависимости, писать вручную скрипты автозапуска.... А при установке из портов все делается ровно в две команды: Код:
cd /usr/ports/databases/php5-extensions A: Система портов сделана так, что она автоматически находит все зависимости. Поэтому не надо беспокоиться, что система что-то "забудет" поставить. Будет установлено только то, что нужно для работы. Например, надо поставиь поддержку mysql для PHP5, но мы не знаем, в каком порте искать. Делаем: Код:
cd /usr/ports Код:
/usr/ports/Tools/scripts/portsearch -n mysql -d php5A: Неправда. Проблем больше. Потому, что надо помнить, что и куда было установлено, какой версии и для чего именно. При этом, через полгода вы все равно забудете про то, что и куда ставили. Q: А как на счет оптимизации? A: Если вам действительно нужна скорость, ставьте ТОЛЬКО из портов. Как правило, порты имеют дополнительные флаги для сборки оптимизированного кода в зависимости от конкретной архитектуры. Так, mysql и openssl на x86 / amd64 собираются с широким использованием кода, написанного на ассемблере. Q: Где искать порты? A: На http://www.freshports.org/, и.... (о чудо!) на http://www.freebsd.org/ Q: Как обновлять дерево портов? A: На FreeBSD версии 5.5 и 6.X - при помощи программы portsnap, которая является частью базовой системы. В первый раз она скачает достаточно много, порядка 45 мегабайт, но потом будет обновлять только измененные порты, а это совсем небольшой трафик. Первый запуск: Код:
portsnap fetch Код:
portsnap fetch cvsup: Код:
/usr/ports/net/cvsup-without-guiКод:
cvsup -g -L 2 /usr/share/examples/cvsup/ports-supfile portsnap: Код:
/usr/ports/sysutils/portsnapQ: Как обновлять установленные порты? A: Порты следует обновлять программой portupgrade Поставить ее можно из портов: Код:
cd /usr/ports/ports-mgmt/portupgradeA: Очень просто: установив и запустив программу portaudit. Код:
cd /usr/ports/security/portaudit Код:
cd /usr/ports/ports-mgmt/portauditКод:
portaudit -Fda Код:
make -DWITHOUT_IPV6=YES WITH_STATIC_SUPPORTКод:
tcsh: setenv WITHOUT_IPV6 YES Код:
.if ${.CURDIR:N*/ports/<категория>/<название>} == "" A: В директории порта выполните: Код:
make rmconfigQ: Как правильно накладывать патчи? A: Для грамотного наложения патча нужно выполнить следующие действия: Код:
cd /usr/ports/some/prog Q: Можно ли заставить portsnap работать через proxy? A: Можно. portsnap это скрипт, который использует fetch. Достаточно установить в шелле переменные окружения HTTP_PROXY и FTP_PROXY (man 3 fetch). Для tcsh: Код:
setenv HTTP_PROXY http://user:pass@192.168.0.1:3128Код:
export HTTP_PROXY=http://user:pass@192.168.0.1:3128Q: Где прописать в системе откуда ей стоит брать порты? A: Всё в том же /etc/make.conf Код:
MASTER_SITE_OVERRIDE=http://ftp7.ua.freebsd.org/pub/FreeBSD/ports/distfiles/ \ Q: Свежая версия порта не работает/работает не так как я хочу. как мне откатится назад? A: воспользуйтесь утилитой /usr/ports/ports-mgmt/portdowngrade При запуске - требуется указать путь к репозиторию и имя порта с категорией, например: Код:
# portdowngrade -s:pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs net-mgmt/zabbix-agent$Код:
=================================================================================================================Код:
portupgrade -f zabbix-agentQ: Как мне "заморозить" порт (или категорию портов) чтобы он не обновлялся при обновлении всего дерева портов? A: Перейдите с использования portsnap (если используется portsnap) на csup и используйте refuse файлы. refuse файл содержит шаблон, описывающий файлы, не требущие обновления. например: Код:
ports/java/jboss4refuse файлы модно класть в каталог /foo/sup, где foo - каталог описанный директивой base supfile (опция -b при запуске csup), например для base=/usr: Код:
/usr/sup/refuse(c) .sysfaq.ru |
док хороший. про то что нуно ставить тока из портов - бред. порты не всегда пополняются так оперативно как хотелось бы. в портах не всегда есть то что тебе нужно на данный момент и иногда действительно легче ставить из сорсов.
|
Установка Apache+MySQL+PHP (сборка с тутариала)
Код:
аналог wget на FreeBSD должен быть fetchКод:
Apache 2.2.9 (New) - http://apache.infocom.ua/httpd/httpd-2.2.9.tar.gzУстановка с портов: Ставить ее на FreeBSD при наличии портов очень просто: MySQL: Код:
cd /usr/ports/databases/mysql51-server/скрипт для запуска Код:
/usr/local/etc/rc.d/mysql-server/etc/rc.conf Код:
mysql_enable="YES"Код:
/usr/local/etc/rc.d/mysql-server startApache: Код:
cd /usr/ports/www/apache22/в /etc/rc.conf Код:
apache22_enable="YES"Код:
apachectl startPHP: Код:
cd /usr/ports/lang/php5Код:
make install cleanРедактируем файл конфигурации апача, например с помощью ее: ee /usr/local/etc/apache22/httpd.conf или если есть Миднайт, то Код:
mcedit /usr/local/etc/apache22/httpd.confКод:
AddType application/x-httpd-php .phpИщем опять похожи строчки, и добавляем ниже: Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/" так мы делаем алиас на папку в которой стоит PHPMYADMIN , имя любое можно так, писать короче: Alias /pma/ "/usr/local/www/phpMyAdmin/" (если параноик, имя можно не стандартное) Насчёт слешей в конце путей не уверен, вроде не нужны, хз и так и так работает и ещё добавляем: Код:
<Directory "/usr/local/www/phpMyAdmin/">.example.com заменяем на ай-пи откуда будем заходить в ПМА. И ЕЩЁ. Ищем строки Код:
<IfModule dir_module>Сохраняем. Рестартуем апач. apachectl restart Заиплось, почти. :-) уже сейчас, зайдя по адрессу http://moyservak/pma Мы кое-что увидим, но не то что нам нада. Потому что нада ещё отконфигурить pma. Можно сделать это самому скопировав и отредактировав пример. Можно запустить скрипт http://moyservak/pma/scripts/setup.php ( только не вьехал как с него сохранять, но во всяком случае полученный конфиг можно увидеть и скопипастить) ......Скопипастить в: /usr/local/www/phpMyAdmin/config.inc.php Получиться ,что то типа такого: Код:
<?phpНа всякий, проверить работоспособность , верисю, модули и тд в пхп, - нада создать файл index.php c текстом: Код:
<?phpinfo()?>Установка из исходников (оффтоп): Код:
cd /usr/ports/graphics/gdКод:
mkdir /usr/local/distrКод:
tar -zxvf <ФАЙЛ> -C <Путь_куда_распаковывать>Код:
tar -zxvf apache_1.3.41.tar.gz -C /usr/local/srcКод:
./configure --helpКод:
./configure (параметры.. ... )Код:
makeКод:
cd <путь к исходным текстам> |
ТС сам писал?
А если мне не нужно устанавливать какую либо или несколько зависимых библиотек? |
Цитата:
Сразу оговорюсь - иксы и кеды ставить с портов не советую :D Хотя можно. |
копипастер, оригинал тут http://wiki.sysfaq.ru/w/index.php/Установка_ПО_в_системе_FreeBSD
|
Ох ё, уже википедию копирайтить начали...
ps/ может хэндбук под себя заточить?! :D Цитата:
|
Что не нравится он же указал sysfaq.ru,там закрепили за wiki,чтобы была всегда на виду.В первые она появилась на http://sysadmins.ru/topic107676.html .
|
Настраиваем PHP+MemCached
1. Устанавливаем сервер memcached
PHP код:
По умолчанию memcached слушает на всех адресах, чего нам не нужно (достаточно localhost). PHP код:
PHP код:
У меня FreeBSD пятерка, возникли некоторые проблемы: PHP код:
PHP код:
Настраиваем php для работы с новоиспеченным модулем. PHP код:
PHP код:
PHP код:
Для фряхи модуль для php лучше собрать из портов, чтобы удобнее обновлять PHP код:
http://www.phpclasses.org/browse/file/17230.html |
Установка eAccelerator на FreeBSD
Устанавливаем сервер eAccelerator из портов
PHP код:
Код:
vi /usr/local/Zend/etc/php.iniдобавляем строчки PHP код:
PHP код:
PHP код:
PHP код:
Код:
/usr/ports/www/eaccelerator/work/eaccelerator/eaccelerator.php |
| Время: 22:42 |