- Установка пакетов linux во freebsd
- Установка пакетов linux во freebsd
- FreeBSD Установка, удаление программ
- Введение
- Установка программы из пакета
- pkgng
- Установка программы из порта
- Развёртывание дерева портов
- Поиск программы в дереве портов
- Установка программы
- Удаление программы
- Способы обновлений установленного программного обеспечения
- portupgrade
- portmanager
- portmaster
Установка пакетов linux во freebsd
Реструктурировал и частично дополнил Jim Mock > , 22 марта 2000. Оригинальная версия и Rich Murphey >
В этой главе будет рассказано о том, каким образом можно запускать приложения, изначально написанные для Linux, под FreeBSD и что нужно для этого сделать.
Возможно, Вы спрашиваете себя, зачем FreeBSD нужно уметь работать с приложениями, написанными для Linux. Ответ на этот вопрос достаточно прост: многие компании и разработчики производят программное обеспечение только для Linux, так как эта операционная система очень быстро завоевала огромную популярность в компьютерном мире. Пользователям же FreeBSD приходится обращаться к этим компаниям и разработчикам с просьбами выпустить версии своих программ специально для FreeBSD. Проблема в том, что большинство производителей программного обеспечения не осознают, насколько бы увеличился их рынок сбыта, выпускай они FreeBSD версии наряду с Linux версиями, и продолжают разрабатывать только под Linux. Что же делать пользователям FreeBSD? В этой ситуации на помощь приходит Linux эмуляция.
Вкратце, FreeBSD позволяет Вам работать с 90% приложений для Linux без каких-либо модификаций последних. Среди них: Star Office, Linux версия Netscape, Adobe Acrobat, RealPlayer 5 и 7, VMWare, Oracle, WordPerfect, Doom, Quake и многие другие. Есть сведения, что в некоторых ситуациях эти Linux программы показывали более высокую производительность при работе под FreeBSD, чем под Linux.
Конечно, существует некоторые особенности Linux, которые (пока) не поддерживаются в полной мере FreeBSD. Например, так обстоят дела с приложениями Linux, использующими файловую систему /proc , так как реализация последней сильно отличается от таковой в FreeBSD (однако, ситуация меняется к лучшему: в FreeBSD-CURRENT поддержка Linux procfs уже встроена в систему). Существуют также системные вызовы, специфичные для i386, как, например, переключение в режим V86.
О том, как установить поддержку запуска Linux программ, читайте в следующей секции .
Источник
Установка пакетов linux во freebsd
Но на каждую тетку с резьбою
Обнаружится дядька с винтом.
Тимур Шаов
Существует устоявшееся мнение о том, что применение FreeBSD в качестве настольной системы затрудняется недостаточным (по сравнению, скажем, с Linux) количеством приложений общего назначения. При этом забывают часто, что база пользовательских программ этих систем практически одинакова. И почти все приложения, доступные в исходных текстах на условиях любых свободных лицензий, можно найти если не в коллекции пакетов FreeBSD, то уж в системе ее портов — точно. Ведь число портированных под нее программ превысило десять тысяч — не каждый дистрибутив Linux может похвастаться таким числом прекомпилированных специально для него пакетов. Если же некая позарез необходимая программа случайно не попала в этот неслабый, согласитесь, список, — ее, как правило, можно скомпилировать для работы во FreeBSD руками.
Разумеется, проделать такую процедуру можно только в том случае, если исходные тексты нужной программы доступны. И тут выступает оборотная сторона медали популярности Linux, привлекшей к ней внимание производителей проприетарного софта. Каковые распространяют свои достижения, пусть подчас и бесплатно (при некоторых ограничениях), но — только в прекомпилированном специально под Linux виде (а иногда и под конкретный его дистрибутив, чаще всего — под RedHat и его клоны).
Однако на самое хитрое ухо всегда найдется палец с левой резьбой. И в данном случае таким леворельбовым» инструментом оказывается режим бинарной совместимости с Linux, реализованный во FreeBSD, который позволяет запустить минимум 90% всех Linux-приложений. Он основывается, насколько нам известно, на подмене системных вызовов ядра Linux соответствующими вызовами ядра FreeBSD. И, в отличие от большинства эмуляторов (и, тем более, виртуальных машин типа VMWare), практически не приводит к снижению производительности. Высказывается даже мнение, что Linux-программы в режиме совместимости во FreeBSD выполняются быстрее, чем в родной среде. Впрочем, количественные данные на этот предмет нам не известны.
Доступ к режиму совместимости требует двух действий — установки пакета linux-base и внесения изменений в конфигурационный файл /etc/rc.conf . Самый простой путь к этому — программа sysinstall . Запустив оную, следует отправиться в меню Configure, перейти в пункт Packages и в списке доступных (на CD, ftp- или http-сервере) пакетов выбрать в разделе emulators тот, который называется linux_base .
После установки пакета нужно будет подняться до пункта Startup в том же меню Configure и отметить опцию Linux (расшифровывающуюся как This host wants to be able to run Linux binaries). Все, теперь после перезапуска машины режим Linux-совместимости будет доступным.
Можно поступить еще проще — сразу отправиться в пункт Configure -> Startup и отметить опцию Linux. По выходе из него будет автоматически предложено установить пакет linux_base , с чем, естественно, следует согласиться.
Другой путь — установить linux_base посредством системы портов, для чего нужно перейти в каталог /usr/ports/emulators/linux_base и дать команду
А затем в любом текстовом редакторе вручную добавить в файл /etc/rc.conf строку
и перезагрузить машину.
Результат в любом случае будет одинаков — появление в каталоге /usr/compat подкаталога linux (и символической ссылки на него в корневом каталоге — /compat/linux . Он представляет собой обычное дерево файловой системы Linux, с подкаталогами bin , etc , libs и так далее, который может быть сделан корневым с помощью столь же обычной команды chroot . Впрочем, в режиме Linux-совместимости исполнимые файлы автоматически ищутся в соответствующих ветвях каталога /usr/compat/linux , и необходимости в смене корня в большинстве случаев не возникает.
Устанавливая linux_base по умолчанию, мы получаем своего рода теневую Linux-систему, соответствующую (в текущей ветке FreeBSD) примерно RedHat 7.X. Дополнительный к чему бонус — получение возможности работы с rpm-пакетами вообще (хотя сам rpm можно установить и независимо). Однако из портов можно при необходимости установить совместимость с более старым RedHat (версий 6.X) или даже Debian (порты для них находятся в каталогах /usr/ports/emulators/linux_base-6 и /usr/ports/emulators/linux_base-debian , соответственно.
Получив доступ к режиму Linux-совместимости, дело остается за малым установить сами Linux-программы. Делается это различными, иногда не совсем тривиальными, способами, некоторые из которых описаны во FreeBSD Handbook. Однако для некоторых Linux-программ установка во FreeBSD проста, как грабли. Примером чему — RealPlayer.
Конечно, формат Real и для аудио, и для видео, — далеко не верх совершенства, особенно учитывая его закрытый характер. Однако ничего не поделаешь — лучшая на Руси (и не только) подборка авторской песни существует только в этом формате, и до доведения до ума свободных альтернатив (тип Hylix) приходится слушать ее посредством проприетарного RealPlayer’а. Да и не крутит Hylix старые Real’ы — почему, остается загадкой.
Благо, для установки его Linux версии во FreeBSD достаточно скачать оную (например, можно взять rp8_linux20_libc6_i386_cs2.bin с диска OpenOffice.org сборки Altlinux), проверить, имеет ли этот файл бит исполнения (при скачивании, например, из под Windows он теряется), а затем просто запустить его (из-под root’а) в терминальном окне X-сессии (не в консоли):
Далее отвечаем на ряд обычных занудных вопросов (типа адреса электронной почты, страны, почтового кода — зачем бы он?, — скорости соединения, после чего обнаруживаем в каталоге /usr/local подкаталог RealPlayer8 . Из которого его можно запускать на исполнение (от имени уже обычного пользователя) с указанием полного пути
или создать символическую ссылку в любом охваченном переменной PATH каталоге.
Как мы уже говорили, устанавливая linux_base по умолчанию, мы одновременно получаем возможность прямой установки прекомпилированных для Linux rpm-пакетов. Делается это точно так же, как в RedHat, ASP- или Altlinux — командой rpm -i ( hv при необходимости). Однако она потребует некоторых дополнительных опций — указания нового корня (очевидно, что им должен быть /usr/compat/linux ), пути к базе данных rpm-пакетов и игнорирования ОС:
Установленные таким образом пакеты должны запускаться с указанием полного пути — /usr/compat/linux/usr/bin , например.
Многие из нас люблят периодически смотреть флэшки. Да-да, как это ни странно. Поэтому одним из первых портов, которые ставят такие любители (в из числе и один из авторов этой заметки), будет linuxplaginwrapper, включающий в себя flash-player для различных браузеров. Установка его проста, как кусок хозяйственного мыла. И столь же обманчива. Собственно, в самом процессе нет ничего сложного. Сложное начинается потом. Итак:
И вот из этого-то less , или из вывода команды
мы и узнаем, что надо скопировать приведённый там текст в /etc/libmap.conf . Затем правим этот файл ручками (ничего сложного, всё хорошо документировано). На этом всё сложное и заканчивается.
Вуаля, флэшки проигрываются в браузере.
Но этого мало. Хотелось бы проигрывать их и, так сказать, стэндэлон. К сожалению, подходящего плейера не нашлось (те, что есть — не проигрывали тестовый файл).
В результате, оптимальным выходом оказался самый простой — запускать windows-версию flash-player’а из под wine. Результат оказался вполне удовлетворительным. Файл проигрывается, скорость нормальная, звук есть. Однако это — совсем другая история. Заметим лишь, что использовался flashpl70.exe, а в качестве тестового — вот этот ролик (3,4 Mb).
Источник
FreeBSD Установка, удаление программ
Введение
Во FreeBSD я обнаружил два способа централизованной установки программ. Первый способ — установка программ из готовых пакетов, хранящихся на специальном сервере-репозитории, а второй способ — сборка программы из исходников-портов.
Пакет — архив txz, содержащий всё необходимое для работы программы. Плюс в скорости установки, но минус в неполном соответствии локальному железу. Я хочу сказать, что программа в пакете, возможно, скомпилирована под древний Intel 80486 процессор, тогда как на целевом сервере трудятся два ксеона. Работать будет, но не в полную силу. Ещё один минус, как мне кажется, заключается в несвоевременности получения заплаток к найденным дыркам в приложениях. Придётся подождать, пока добрые самаритяне произведут сборку пакета с применением заплатки.
Порт — представляет собой отдельную папку с файлами, содержащими исходные коды программы и инструкции для автоматической сборки. Эту совокупность файлов необходимо собрать в программу на локальном компьютере. Огромный минус, особенно для медленных машин, в скорости установки. Компиляция может затянуться на несколько дней. А плюс тот, что программа компилируется на железе, на котором будет работать, а значит, как мне кажется, при сборке будут учтены все особенности локального железа. То есть, если программа, которую я устанавливаю из пакета, возможно скомпилирована для Intel 486 с целью максимальной совместимости с многообразием возможного железа, то при сборке этой программы из портов на сервере с двумя ксеонами, вероятно будут использованы все современные технологии, реализованные на установленном железе. Также, огромный плюс в том, что при появлении заплатки для приложения, не нужно ждать доброго дядю-компилятора и выпуска обновлённого пакета, а можно самому своевременно применить заплатку. И ещё один плюс заключается в возможности сборки программы из порта с определёнными опциями, тогда как в пакете мы получаем программу с опциями по умолчанию?
Я пользую оба способа. Алгоритм предпочтения пока мне самому не вполне ясен. Чаще собираю из портов, но и pkgng исользую.
Установка программы из пакета
Для работы с пакетами, я использую новую систему pkgng. Во FreeBSD 9 приходится устанавливать новый pkgng рядом со старым pkg, произведя определённые процедуры по обновлению базы установленных пакетов. Во FreeBSD 10 по умолчанию установлен pkgng, а не pkg.
Система устарела. Для установки, удаления программ использовались отдельные команды: pkg_add, pkg_delete. Я не стану углубляться в описание этой системы.
pkgng
Список репозиториев находится в файле /etc/pkg/FreeBSD.conf? (Уточнить при следующей установке. Какая-то возня у меня была с указанием репозиториев при установке свежей FreeBSD.)
Список всех установленных пакетов:
# pkg info
Поиск названия пакета:
# pkg search mariadb
mariadb55-client-5.5.33a_1
mariadb55-server-5.5.33a_1
Получение информации о пакете:
# pkg info mariadb55-server
Установка пакета:
# pkg install mariadb55-server
Удаление установленной программы:
# pkg delete mariadb55-server
Уточнение изменений в списке доступных пакетов из подключённых репозиториев:
# pkg update
Обновление всех установленных пакетов:
# pkg upgrade
Установка программы из порта
Развёртывание дерева портов
Для установки программ из портов будет удобно создать локальную копию дерева портов c сайта portsnap.freebsd.org.
Для создания и обновления дерева портов можно использовать несколько команд утилиты portsnap (http://www.freebsd.org/cgi/man.cgi?query=portsnap):
# portsnap fetch — позволит скачать дерево портов с какого-либо сайта.
# portsnap extract — одноразовая команда для первоначального развёртывания дерева на локальной машине. Дерево портов будет лежать в /usr/ports.
# portsnap fetch update — обновляет дерево до актуального состояния, что необходимо делать перед установкой и/или обновлением программ.
В данный момент (2014-03-17) размер папки /usr/ports составляет 660 мегабайт.
Поиск программы в дереве портов
Искать папку с необходимым портом во множестве подпапок директории /usr/ports не так сложно, если использовать команды:
# whereis php5
php5: /usr/ports/lang/php5
# whereis apache24
apache24: /usr/ports/www/apache24
# echo /usr/ports/*/*apache*
/usr/ports/Mk/bsd.apache.mk /usr/ports/devel/apache-ant /usr/ports/distfiles/apache22 /usr/ports/net-mgmt/zenpack-apachemonitor /usr/ports/security/apache-xml-security-c /usr/ports/sysutils/apachetop /usr/ports/textproc/apache-solr /usr/ports/textproc/apache-solr3 /usr/ports/www/apache-forrest /usr/ports/www/apache-mode.el /usr/ports/www/apache22 /usr/ports/www/apache22-event-mpm /usr/ports/www/apache22-itk-mpm /usr/ports/www/apache22-peruser-mpm /usr/ports/www/apache22-worker-mpm /usr/ports/www/apache24 /usr/ports/www/mkapachepw /usr/ports/www/py-apachelog
# cd /usr/ports
# make quicksearch name=apache24
Port: apache24-2.4.4_2
Path: /usr/ports/www/apache24
Info: Version 2.4.x of Apache web server
«Для выполнения более глубокого поиска используйте make search key=string или make quicksearch key=string, где string представляет собой некоторый текст, относящийся к искомому порту. Текст ищется в комментариях, описаниях или зависимостях. Этот способ можно использовать для поиска портов, связанных с некоторой темой, когда название программы неизвестно.»
Установка программы
Установка приложения происходит из соответствующей найденной папки. Сначала переходим в папку:
# cd `whereis -q apache24`
или
# cd /usr/ports/www/apache24
И уже находясь в папке запускаем компиляцию программы:
# make install clean
или из любого места, но с указанием целевой директории (опция -C программы make):
# make install clean -C /usr/ports/www/apache24
При компилировании программы из порта возможно появление псевдографических меню для выбора дополнительных настроек. Эти настройки сохраняются, и повторно, при переустановке пакета, не выводятся. Чтобы вновь увидеть эти диалоговые окна необходимо выполнить команды:
# cd /usr/ports/www/apache24
# make config
для изменения ранее установленных опций.
Или
# make rmconfig
для удаления ранее установленных опций.
Далее выполняем команду:
# make reinstall clean
Или даже сразу:
# make config reinstall clean
(команда clean для make нужно, чтобы удалить временную рабочую папку work, куда скачивались исходники, применялись к этим исходникам заплатки и где производилась компиляция программы. В большинстве случаев этот оставшийся мусор не нужен.)
Удаление программы
Удаление приложения происходит из соответствующей найденной папки:
# cd /usr/ports/www/apache24
# make deinstall
Способы обновлений установленного программного обеспечения
portupgrade
portupgrade — видимо уже устаревшая программа, которая поможет автоматически обновить установленные приложения. Умеет работать с pkgng.
Установка приложения portupgrade из дерева портов:
# make install clean -C /usr/ports/ports-mgmt/portupgrade
# cd /usr/ports
# portupgrade -ai — для обновления всех установленных приложений с принудительным подтверждением (нажатием Yes).
portmanager
portmanager — это приложение устарело и более не используется?
portmaster
portmaster — заменяет/дополняет portupgrade. Умеет работать с pkgng. Имеет ряд преимуществ перед portupgrade?
Установка приложения portmaster из дерева портов:
# make install clean -C /usr/ports/ports-mgmt/portmaster
# cd /usr/ports
# portmaster -ad — для обновления всех установленных приложений без лишних запросов на удаление устаревших копий портов.
Источник