Ярлыки

четверг, 16 декабря 2010 г.

Используем зеркало FreeBSD для установки из портов

Заставляем FreeBSD при установке портов сначала искать их на ближайшем/бесплатном/удобном (нужное подчеркнуть) сервере, а потом только уже на другом (официальном). Для этого в make.conf добавляем следующие строки:
MASTER_SITE_OVERRIDE?=  ${MASTER_SITE_BACKUP}
MASTER_SITE_BACKUP?= \
  ftp://ftp.byfly.by/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/

среда, 15 декабря 2010 г.

Установка MySQL 5.5.7 на FreeBSD 8.1

Решил поставить MySQL в свой свеженький джайл. Обновил порты, затем
[erema15@erema15] /> ssh 192.168.1.101
Password:
%su
Password:
jail# portmaster /usr/ports/databases/mysql55-server
и процесс пошел.

После установки пробую запустить.
#/usr/local/share/mysql/mysql.server start
а оно мне
Starting MySQL.The server quit without updating PID file (/var/db/mysql/jail.erema15.by.pid).....
сразу пошел смотреть логи
jail#cd /var/db/mysql
jail# cat jail.erema15.by.err
101215 11:24:46 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
101215 11:24:46 [Note] Plugin 'FEDERATED' is disabled.
/usr/local/libexec/mysqld: Table 'mysql.plugin' doesn't exist
101215 11:24:46 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Compressed tables use zlib 1.2.3
101215 11:24:46 InnoDB: Initializing buffer pool, size = 128.0M
101215 11:24:46 InnoDB: Completed initialization of buffer pool
InnoDB: The first specified data file ./ibdata1 did not exist:
InnoDB: a new database to be created!
101215 11:24:46 InnoDB: Setting file ./ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
101215 11:24:46 InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
101215 11:24:46 InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: 127 rollback segment(s) active.
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
101215 11:24:46 InnoDB: 1.1.3 started; log sequence number 0
101215 11:24:46 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
101215 11:24:46 mysqld_safe mysqld from pid file /var/db/mysql/jail.erema15.by.pid ended

по рекомендациям в самом логе (и еще где-то видел) временно пишем в rc.conf
jail# ee /etc/rc.conf
mysql_enable="YES"
mysql_args="--skip-grant-tables --skip-networking"
и сейчас должно все запуститься в безопасном режиме
jail# /usr/local/etc/rc.d/mysql-server start
Starting mysql.
Теперь делаем эти рекомендованное обновление таблиц, в консоли видим такую картину
jail# mysql_upgrade
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck with default connection arguments
Running 'mysqlcheck with default connection arguments
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.general_log OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.host OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK
mysql.servers OK
mysql.slow_log OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
Running 'mysql_fix_privilege_tables'...
OK
теперь смело возвращаем rc.conf в прежднее состояние (я просто закоментил строку)
jail# ee /etc/rc.conf
mysql_enable="YES"
#mysql_args="--skip-grant-tables --skip-networking"
и передергиваем сервер
jail# /usr/local/etc/rc.d/mysql-server restart
Stopping mysql.
Waiting for PIDS: 95077.
Starting mysql.
все отлично, можно юзать.

P.S. Еще вот здесь есть инфа /usr/ports/UPDATING, но не знаю, про этот случай или нет...
...
20101110:
AFFECTS: users of databases/mysql55-server
AUTHOR: Alex Dupre

If you are upgrading from a previous MySQL release, the server will exit
during startup after finding that the proxies_priv table is missing.
To create the table, start the server with the --skip-grant-tables
option to cause it to skip the normal grant table checks, then run
mysql_upgrade. Then stop the server and restart it normally.
You can do this by temporarly setting the following line in rc.conf:

mysql_args="--skip-grant-tables --skip-networking"
...

понедельник, 13 декабря 2010 г.

Создание JAIL

Для джайлов рекомендую использовать место на отдельном разделе
# mkdir /mnt/C/jail/jail1
Если еще не производилась сборка мира, то делаем :
# cd /usr/src
# make buildworld
После сборки системы ее нужно установить в подготовленный каталог : 
# make installworld DESTDIR=/mnt/C/jail/jail1
# make distribution DESTDIR=/mnt/C/jail/jail1
Для некоторых программ необходим доступ к некоторым устройствам (терминал, генератор случайных чисел и т.д.): 
# mount -t devfs devfs /mnt/C/jail/jail1/dev
Нужно не забыть сделать псевдоним IP-адреса(для каждой клетки свой).Итак, в /etc/rc.conf добавим следующее :
ifconfig_re0_alias0="192.168.1.101 netmask 255.255.255.0"
После всех этих процедур пробуем войти в клетку и подготовить ее к использованию :
# jail /mnt/C/jail/jail1/ jail.homecomp.by 192.168.1.101 /bin/csh
где 
  • /mnt/C/jail/jail1/ - расположение клетки
  • jail.homecomp.by - присвоение ей имя хоста
  • 192.168.1.101 - присвоение ей IP-адреса
  • /bin/csh - выполняемая команда(в данном случае нам нужен доступ к шелу)
При удачном соединении к клетке появится приглашение похожее на это:
jail#
Можно немного полазить по ней (cd, ls) и заметить, что мы только что установили FreeBSD в минимальном фарше )).
Дальше желательно создать /etc/fstab, т.к. некоторые программы будут расстроены, не найдя его(команда выполняется уже в клетке).
jail# touch /etc/fstab
А в /etc/rc.conf клетки напишем следующее:
network_interfaces=""
sshd_enable="YES"
Понятно, доступ к клетке будем получать по сети. А вот сетевой интерфейс настроить мы не сможем, но сценарии загрузки будут спокойны)).
Еще нужно установить пароль root'у :
jail# passwd
Changing local password for root
New Password:
Retype New Password:
Также лучше добавить необходимых юзеров:
jail# adduser
Username: erema15
Full name: Vasya Pupkin
Uid (Leave empty for default):
Login group [erema15]:
Login group is erema15. Invite erema15 into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: csh
Home directory [/home/erema15]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password: ******
Enter password again: ******
Lock out the account after creation? [no]:
Username : erema15
Password : *****
Full Name : Vasya Pupkin
Uid : 1001
Class :
Groups : erema15 wheel
Home : /home/erema15
Home Mode :
Shell : /bin/csh
Locked : no
OK? (yes/no): y
adduser: INFO: Successfully added (erema15) to the user database.
Add another user? (yes/no): n
Goodbye!
С помощью tzsetup настраиваем часовой пояс, а с помощью date смотрим на результат
Все! Вроде клетка готова. Теперь в /etc/rc.conf хоста запишем:
jail_enable="YES"
jail_list="jail1"
jail_jail1_rootdir="/mnt/C/jail/jail1"
jail_jail1_hostname="jail.erema15.by"
jail_jail1_ip="192.168.1.101" #привязываем клетку к IP-адресу (необходимо добавить соответствующий алиас к сетевой карте
jail_jail1_devfs_enable="YES"                    #дает доступ к devfs
jail_jail1_devfs_ruleset="devfsrules_jail"       #применяет правила, обеспечивая доступ только к определенным устройствам
Тут какбе все понятно должно быть, только останется перенести правила [devfsrules_jail] из  /etc/defaults/devfs.rules в /etc/devfs.rules ... или написать свои )))
У меня были вот такие:
[devfsrules_jail=4]
add include $devfsrules_hide_all
add include $devfsrules_unhide_basic
add include $devfsrules_unhide_login
Запуск и останов клеток делается так:
# /etc/rc.d/jail start      - запуск всех клеток
# /etc/rc.d/jail start jail1 - запуск только jail1
# /etc/rc.d/jail stop - останов всех клеток
# /etc/rc.d/jail stop jail1 - останов только jail1

Еще пару слов о некоторых инструментах управления клетками. Существуют утилиты jls и jexec. Первая выводит список всех клеток, запущенных в системе, вторая - позволяет админу хоста выполнить команду в любой запущеной уже клетке, без входа в нее.
# jls
JID IP Address Hostname Path
1 10.1.1.1 erema15 /usr/jails/portjail
2 192.168.1.101 jail.erema15.by /mnt/C/jail/jail1
# jexec 2 uname -prns
FreeBSD jail.erema15.by 8.1-RELEASE i386

четверг, 12 августа 2010 г.

Skype на FreeBSD

В данным момент порт скайпа помечен как поврежденный,
===> skype-2.0.0.72,1 is marked as broken: This is the last version of skype that works on FreeBSD, but the distfile is no longer available from the vendor, and won't be in the future. We are working on alternative solutions..
*** Error code 1

но не стоит отчаиваться. Все можно исправить)
Нативного скайпа нет. Это значит, что будем ставить линуксовый. Естественно нужно чтобы уже был установлен linux_base (в посте про flash-player это было). У меня установлен linux_base-f10-10_2.
Начнем-с. Если в /usr/ports/distfiles еще нет skype_static-2.0.0.72-oss.tar.bz2, то найдем его в гугле и скачаем * :
# cd /usr/ports/distfiles
# fetch URL_with_skype_static-2.0.0.72-oss.tar.bz2
Далее по накатанной :)) :
# cd /usr/ports/net/skype
# make TRYBROKEN=yes install clean
Вот и все... осталось прикрутить микрофон и (если это возможно) камеру.

* ссылка на архив со skype по гостю byfly http://freespace.by/download/cc2d1df4e6

среда, 11 августа 2010 г.

Установка Flash Player на FreeBSD (Opera)

Так как нативного Flash-плеера от Adobe в FreeBSD нету, то будем юзать последнюю версию(на момент написания заметки) плагина Flash Player для Linux. Естественно нужно будет включить двоичную совместимость c тем же самым Linux.

Обновляем порты и устанавливаем свежий linux_base:
# cd /usr/ports/emulators/linux_base-f10
# make install clean
В /etc/fstab добавим виртуальную файловую систему так необходимую для Linux-процессов :
#echo 'linproc /usr/compat/linux/proc linprocfs rw 0 0' >> /etc/fstab
...и сразу же примонтируем ее :
# mount linproc
В /etc/rc.conf добавим запись :
#echo 'linux_enable="YES"' >> /etc/rc.conf
Можно ребутнуть, а можно просто подгрузить модуль linux.ko :
# kldload linux
Такс.. теперь установим сам Flash-плагин :
# cd /usr/ports/www/linux-f10-flashplugin10
# make install clean
Вот и все)

Для пользователей браузера Opera будет достаточно установить следующий порт :
# cd /usr/ports/www/opera-linuxplugins
# make install clean
перегрузить браузер и набрав в адресной строке opera:plugins убедиться, что плагин найден.


P.S.
Для горемычных пользователей зеркала FreeBSD на ftp.byfly.by. Все все знают про byfly, поэтому буду краток. Директории /pub/FreeBSD/ports/distfiles/flashplugin/ на сервере не существует, соответственно и нужных нам файлов.
При make install мне выдало :
===> Vulnerability check disabled, database not found
===> License check disabled, port has not defined LICENSE
=> install_flash_player_10_linux.tar.gz doesn't seem to exist in /usr/ports/distfiles/flashplugin/10.1r102.65
=> Attempting to fetch from ftp://ftp.byfly.by/pub/FreeBSD/ports/distfiles/flashplugin/10.1r102.65. fetch: ftp://ftp.byfly.by/pub/FreeBSD/ports/distfiles/flashplugin/10.1r102.65/install_flash_player_10_linux.tar.gz: File unavailable (e.g., file not found, no access)
....
....
....
=> Couldn't fetch it - please try to retrieve this
=> port manually into /usr/ports/distfiles/flashplugin/10.1r102.65 and try again.
*** Error code 1
Stop in /usr/ports/www/linux-f10-flashplugin10.

Пришлось нагуглить необходимые файлы и сохранять их в /usr/ports/distfiles/flashplugin/10.1r102.65. Потом повторить make install.

Вот linux-f10-flashplugin10 по гостю byfly :
  1. install_flash_player_10_linux.tar.gz 
  2. linux-f10-flashsupport-9.0.1.i386.tar.gz
  3. linux-f8-flashsupport-9.0.1.i386.tar.gz 

суббота, 7 августа 2010 г.

Включаем звук в FreeBSD

Список нужных модулей можно получить из каталога /boot/kernel:
#cd /boot/kernel
#ls snd_*
Мне подошел snd_hda
Для автозагрузки нашего модуля в /boot/loader.conf добавим строку..:
sound_load="YES"
snd_hda_load=”YES”
..а в /etc/rc.conf :
snddetect_enable="YES"
Модуль можно подгрузить вручную:
#kldload snd_hda
Увидеть инфу о звуковой карте так:
#cat /dev/sndstat

Синхронизация времени по NTP

В /etc/rc.conf добавляем :
ntpdate_enable="YES"
ntpdate_program="/usr/sbin/ntpdate"
ntpdate_flags="-u nsrv.belpak.by"

Запустить службу ntpdate так:

#/etc/rc.d/ntpdate start


Name: by.pool.ntp.org
Addresses: 86.57.246.172, 82.209.243.241, 86.57.151.12
Name: nsrv.belpak.by
Address: 193.232.248.2

четверг, 5 августа 2010 г.

Настройка раскладки клавиатуры

В файл /usr/local/etc/hal/fdi/policy/x11-input.fdi нужно написать

Используем зеркало портов

В файл /etc/make.conf пишем:
MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP} 
MASTER_SITE_BACKUP?= \ ftp://ftp.byfly.by/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/

Изменения формата отображения времени в Fluxbox

Не устроило значение по-умолчанию.. поменял на это
%a %F %T
Теперь показывает так: чт 2010-08-05 19:29:32

Менять либо в ~/.fluxbox/init параметр session.screen0.strftimeFormat: %a %F %T , либо правый клик по часам на панели задач -> "Изменить формат отображения времени"

Подробнее о форматах в man 3 strftime