Документация по ОС FreeBSD Пятница, 07.02.2025, 02:59
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Установка и настройка

Порт emulators/linux_base-gentoo-stage3 в действии [2009]
Часто случается ситуация, когда необходимо запустить линуксовые бинарики, или даже не бинарики, а сорцы, но лень адаптировать их под фряху, а порта соответствующего нет. Так, как описано в хэндбуке, запускать сложно и муторно, хочется, чтобы просто взял - и запустил. Однажды я наткнулся на интересный порт - emulators/linux_base-gentoo-stage3. Это альтернатива обычному emulators/linux_base-fc4 и подобным ему. Далее привожу общую последовательность действий и результат каждого из них, хотя многие из этих шагов можно было и сократить, если бы знал всё изначально.
   Изначально у меня был установлен и настроен порт /emulators/linux_base-fc4, linux-совместимость подгружалась модулем, и в /etc/fstab присутствовали строки:
none /compat/linux/proc linprocfs rw 0 0
none /compat/linux/sys linsysfs rw 0 0
none /compat/linux/dev devfs rw 0 0

Версия фри 7.1 и compat.linux.osrelease=2.6.16
   Я сразу сделал бэкап того, что уже установлено:
cd /compat
tar czf linux.tar.gz linux

   Это нужно было сделать, так как у меня установлены skype, flashplayer и googleearth, которые зависят от этой папки. Далее снес emulators/linux_base-fc4:
cd /usr/ports/emulators/linux_base-fc4 && make deinstall

   далее поставил emulators/linux_base-gentoo-stage3
cd /usr/ports/emulators/linux_base-gentoo-stage3 && 
 make GENTOO_OPTIMIZED=i686 install clean

   (здесь я обратил внимание на вывод команды, в нем встретился совет сделать chroot /compat/linux emerge sync и chroot /compat/linux /usr/portage/scripts/bootstrap.sh).
   Теперь линукс-зависимые приложения, естественно, работать отказались. Зато получился почти полноценный линукс. Я опять сделал бэкап полученных результатов, ибо на каждом шагу все норовит пойти криво:
cd /compat
tar czf gentoo-begin.tar.gz linux

Запустил линуксовый шелл:
chroot /compat/linux bash

С этого момента почти все команды выполнялись в этой же консоли, в chroot. Затем установил портежи:
emerge sync

   Эта команда выполнялась долго, и выкачала  ~300 mb портежей из инета. В конце своего вывода она попросила сделать еще emerge portage, я сделал:
emerge portage

   Это выполнилось быстро.
   Снова бэкап (из внешней оболочки):
cd /compat/
tar vzxf gentoo-with-portage.tar.gz linux

   Перед тем как собирать что либо, я поправил /etc/make.conf (поправил его из внешней оболочки, не из chrootа, так как в chrootе пока еще не было знакомого мне текстового редактора). Устройство этого файла не совсем аналогично тому что в FreeBSD, поэтому я только добавил свои ключи -march и -mtune.
   Команда /usr/portage/scripts/bootstrap.sh, которую посоветовали выполнить при установке emulators/linux_base-gentoo-stage3, начала собирать некие 9 приложений, по видимому базовых, среди них последними были gcc (собрался) и glibc (не собрался, сколько я его не пытался собрать, не получается). После этого мне захотелось получить zsh, и vim. В портежах обнаружились /usr/portage/app-editors/vim и /usr/portage/app-shell/zsh:
cd /usr/portage/app-editors/vim
emerge vim-7.2.ebuild

   Команда emerge используется в gentoo вместо привычной нам make install clean. Про нее надо добавить следуюее - многие ebuildы свежих версий на компилятся, и выдают какие-то оповещения про "masked". Тогда надо взять версию постарше, и скорее всего все будет хорошо. Также, много интересного делается в помощью файла /etc/make.profile, про него написано в документации.
   Таким же образом я стал компилить все подряд - для проверки возможностей. Собиралось многое, однако /usr/portage/net-misc/netkit-rsh наотрез отказался компилиться, а от него зависели все более менее сложные приложения. Дело в том что команда rm не удаляет файлы рекурсивно. То есть удаляет по одному, а папку - нет. Команда chmod, и некоторые другие - тоже (Эти досадные вещи вроде исправлены в FreeBSD 8). Сразу скажу, что в этом нет непреодолимой проблемы, временные файлы от портежей хранятся централизованно - /var/tmp/portage/, посему их можно легко удалить разом из внешней оболочки. И как показывает опыт, основное количество портежей собираются и работают и с такими rm и chmod. Так вот /usr/portage/net-misc/netkit/rsh я в мтоге собрал - просто исправил несколько строк в netkit-rsh-0.17-r9.ebuild:
было:
...
src_unpack() {
unpack ${A}

cd "${S}"
rm -rf rexec
mv ../rexec rexec
...

стало:
 ...
src_unpack() {
unpack ${A}

cd "${S}"
cd rexec
rm .cvsignore
rm Makefile
rm README
rm rexec.1
rm rexec.c
cd ..
rm -rf rexec
mv ../rexec rexec
...

и выполнил
ebuild netkit-rsh-0.17-r9.ebuild digest

- чтобы он сделал новый чексум.
После этого он собрался, собралось и то что от него зависело. Для запуска иксовых приложений из под chroot я выполнил команду
xhost +

которая позволяет обращаться ик иксам всем прилоложениям подряд. Это может понизить безовасность системы.
   Из иксовых программ, которые пробовал vmware, virtualbox, linux-uvc (это дрова к вебкамерам) собираться отказались, жалуясь на то что видители конфигурация ядра крива, или что то в этом духе. Собрался, но не запустился pidgin, поставились и попытались запуститься skype и googleearth (их, я полагаю, таки можно запустить), запустились mplayer (с видео), firefox, opera, Eterm, dillo, flashplayer. Сами иксы собрались, но не запустились. Запустились также fluxbox и куча (наверное, больше половины) приложений из kde, само kde попыталось запуститься, но после первичного конфигурирования померло. После того как я поставил flashplayer10 в "gentoo" сразу заработал и flashplayer9 во внешней системе.
   Таким образом, могу сказать, что собирается большинство из не юзающих аппаратную часть приложений.
   На этом я пока закончил изыскания и сделал бэкап:
cd /compat
tar czf gentoo-good.tar.gz linux

   После всех этих экспериментов я выполнил pkgdb -F чтоб поправить порты, оно успешно завершилость, я обновил порты portupgrade-ом. и решил переустановить googleearth, так как он перестал работать. cd /usr/ports/astro/googleearth && make deinstall && make install clean выдал мне сообщение о том, что ему нужен linux_base-fc4. а linux_base-gentoo-stage3 ему мешает. Тогда я решил перенести gentoo из /compat/linux в /compat/gentoo, а на его место вернуть linux_base-fc4:
cd /usr/ports/emulators/linux_base-gentoo-stage3 && make deinstall
cd ../linux_base-fc4 && make install clean 
cd /compat/
tar vzxf linux.tar.gz
mkdir gentoo
mv gentoo-good.tar.gz gentoo/
cd gentoo
tar vzxf gentoo-good.tar.gz
mv linux/* .
mv gentoo-good.tar.gz ..

   Затем добавил в /etc/fstab еще три строки:
none /compat/gentoo/proc linprocfs rw 0 0
none /compat/gentoo/sys linsysfs rw 0 0
none /compat/gentoo/dev devfs rw 0 0

   
mount -a

   и после этого gentoo на новом месте стал работать по прежнему.
   В итогу Skype и flashplayer работают нормально, googleearth пока отказывается, что-то я сломал.
   Зы: Все вышеописанное я делал на довольно сильном ноутбуке с amd turion и 3 гигами памяти и в общем, не могу пожаловаться не слишком быструю работу линукс-приложений, так что если железо слабое, то все будет очень медленно ( нужно много компилить, памяти это ест много, так как линукс-прложения вытягивают полностью свои библиотеки ). Также текст выглядит непоследовательным, многие шаги можно сократить или сделать по-другому, но это не методика, а описание того что делал и получил я. Также при углубленном воспроизведении методы следует читать гентушные доки, благо их много, даже на русском языке.



Источник: http://www.lissyara.su/?id=1882
Категория: Установка и настройка | Добавил: oleg (13.03.2009) | Автор: asminok
Просмотров: 608 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2025