Перейти к содержимому

1

К моему сожалению, или счастью, эти шпаргалки - не мое творение, но я уверен в том, что они мне пригодятся...

К моему сожалению, или счастью, эти шпаргалки - не мое творение, но я уверен в том, что они мне пригодятся... Надеюсь автор, andreyv, опубликовавший их в своем блоге http://www.allwork.kiev.ua/ не обидится на меня. ...читать далее "Шпаргалки для FreeBSD"

1

Итак, поставив относительно удачный эксперимент с соединением двух Интернет-кафе посредством протокола точка-точка, я решил развить эту идею... И путь для развития, избранный мной, стал таким - зачем использовать в Интернет-кафе, не ориентированном на игры и не обладающем достаточными системными ресурсами для игр, дорогую и всеми любимую ОС производства Microsoft, если уже есть работающие системы под управлением семейства ОС *nix.

Итак, поставив относительно удачный эксперимент с соединением двух Интернет-кафе посредством протокола точка-точка, я решил развить эту идею...
И путь для развития, избранный мной, стал таким - зачем использовать в Интернет-кафе, не ориентированном на игры и не обладающем достаточными системными ресурсами для игр, дорогую и всеми любимую ОС производства Microsoft, если уже есть работающие системы под управлением семейства ОС *nix.

На эту идею меня натолкнул директор предприятия Денис и сайт Internet-club.info, посвященный проблематике компьютерных центров, в частности, статья об использовании Linux в Интернет-кафе. Тщательно изучив, погуглив по предоставленной информации - я остановился на двух системах:

Первым, в очереди на препарацию стал OutKafe.
Причинами тому стало то, что он ставиться на существующую систему (то есть, клиент можно установить на любую ОС, в том числе и производства MicroSoft), что позволяет с минимальными затратами перевести уже существующую инфраструктуру Интернет-кафе КофеБерри на новые рельсы.

Установка и настройка OutKafe.

Система управления клубом OutKafe в своей основе опирается на базу данных PostGRESQL. Таким образом, первый шаг - установка на управляющую машину этой самой БД.
Установка и настройка PostgreSQL на FreeBSD подробно описана тут - http://jasonk2600.wordpress.com/2010/01/11/installing-postgresql-on-freebsd/ (если я когда нибудь получу разрешение и у меня будет время - я обязательно его переведу).

Вкратце, суть такова:
В /etc/rc.conf необходимо внести запись 'postrgresql_enable="YES"' и затем, запустить инициализацию БД командой '/usr/local/etc/rc.d/postgresql initdb'. После чего, PostGRESQL создаст необходимую структуру папок в /usr/local/pgsql/data, в том числе и конфигурационные файлы.
Далее, чтобы разрешить доступ к БД со всех интерфейсов, необходимо отредактировать файл /usr/local/pgsql/data/postgresql.conf, установив в нем параметр listen_addresses = '*'.
Далее, необходимо отредактировать файл /usr/local/pgsql/data/pg_hba.conf для того, чтобы разрешить в аутентификацию по паролю:
host  all  all  10.0.1.0/24  password (разумеется, не забудьте заменить 10.0.01.0/24 на свою сеть)
И последний шаг - запуск СУБД и добавление пользователя:
# /usr/local/etc/rc.d/postgresql start
# su pgsql
$ createuser -sdrP username
Enter password for new role: ******
Enter it again: ******
$ exit

Первая проблема, с которой я столкнулся - Postgresql не стартует, ругаюсь не недостаточность системных ресурсов. Как оказалось, именно во FreeBSD наиболее простой способ тюнинга этих самых параметров - посредством изменения параметров sysctl. Суть в том, что некоторые параметры в настройках по умолчанию - слишком малы, и их необходимо увеличить. Подробности, необходимые для понимания, что и как увеличивать - можно прочитать тут: http://www.postgresql.org/docs/8.2/static/kernel-resources.html

Опять же, опишу вкратце:

Изначально, FreeBSD после установки выделяет мало места для семафоров и общей памяти, которых явно недостаточно для запуска полноценной БД PostGRESQL. Данная ситуация очень легко изменяется изменением (простите за тавтологию), некоторых переменных в sysctl.
Редактируем /etc/sysctl.conf , добавляя туда нижеуказанные параметры:
kern.ipc.shmall=32768
kern.ipc.shmmax=134217728
kern.ipc.semmap=256
kern.ipc.shm_use_phys=1

Редактируем /boot/loader.conf, добавляя туда нижеуказанные параметры (они могут буть изменены лишь до загрузки):
kern.ipc.semmni=256
kern.ipc.semmns=512
kern.ipc.semmnu=256

После настройки и тюнинга ОС для запуска Postgresql - теперь нужно сконфигурировать его. Для этого, уже есть DB schema... У меня не поставился PGadmin3 (ни из портов, ни из пэкеджей), но так как это все еще тестовая среда - то я пока решил не задумываться над этой проблемой и просто скачать и поставить Windows-версию.

Шаг 2 - Установка OutKafe Daemon

OutKafe поставляется как Unified Installer, запакованный при помощи MakeSelf. При простой попытке запуска - он вываливается с ошибкой о том, что ./setup.sh не найден. Однако, как на самом деле оказалось - setup.sh написан для BASH (Bourne Again Shell) и вызывается так, как это делается в Linux (/bin/bash), а во FreeBSD BASH устанавливается в /usr/local/bin/bash.
Есть два выхода из этой ситуации - редактировать setup.sh или же, сделать просто link на BASH в /bin ;-). Второй выход мне кажется более правильным и универсальным, в связи с тем, что необходимость в BASH'е явно возникнет у демона после установки.

Итак, графический инсталлятор запустился, и сразу же начал ругаться на отсутствие файла libpq.so.4. Опять же - проблема в том, что во FreeBSD все исполняемые/используемые пользователем билиотеки/файлы пишутся в /usr/local/lib. А во FreeBSD, Linux версии софта начинают поиск необходимых им библиотек с /usr/compat/linux/lib. Там они их не могут найти, находят их в /usr/lib, либо же в /usr/local/lib, но не могут их применять. Решается копированием из /usr/local/lib в /usr/compat/linux/lib и использованием команды brandelf -f Linux имя_библиотеки.

Однако, запустить Outkafe на машине с FreeBSD у меня так и не получилось :-(, что, вероятно, и к лучшему: зачем класть все яйца в одну корзину. В идеале, все-таки, схема должна быть такова: роутинг и БД - на отдельной машине, админ - на отдельной машине.

Так что, демона и программу контроля развернем под управлением Ubuntu, а базу данных и роутинг - оставим на плечах FreeBSD. Все-таки, Ubuntu более привычная пользователю Windows ОС, нежели чем FreeBSD, что впрочем, не умаляет для меня значения Фри.

Установку Ubuntu 10.04 я тут описывать не буду - так как все не просто очень просто, а по настоящему удобно и прекрасно :-).

К сожалению, от использования OutKafe мне пришлось отказаться, ввиду того, что пока там нет привычной системы управления клубо (то есть, табличка, с состоянием компьютеров и пост оплатой клиентами), а есть система, ориентированная на постоянных пользователей с предоплатой, что не очень удобно для моего формата Интернет-кафе, подразумевающего небольшое количество постоянных клиентов (около 200-300) и большой проходняк людей, которым интернет нужен здесь и сейчас, но не надолго. Если этому человеку понравиться сервис - вероятно он вернется, но постоянных клиентом он станет лишь значительно позже.

Итак, следующий в очереди на препарацию - Zencafe 2.0 (http://linux.blogs.ie/documentation/). Это и будет темой моего следующего поста.

1

Перевод статьи с блога Rhyous о том, как в несколько простых шагов установить, настроить десктоп под управлением ОС FreeBSD с KDE GUI (кстати, последний смотрится ЗНАЧИТЕЛЬНО лучше, чем интерфейс Windows 7 Aero)

Перевод статьи с блога Rhyous о том, как в несколько простых шагов установить, настроить десктоп под управлением ОС FreeBSD с KDE GUI (кстати, последний смотрится ЗНАЧИТЕЛЬНО лучше, чем интерфейс Windows 7 Aero) - оригинальный вариант статьи (на английском языке) опубликован тут - http://rhyous.com/2009/12/18/how-to-install-and-configure-a-freebsd-8-desktop-with-xorg-and-kde/

Хочу уточнить, гайд подразумевает, что ОС FreeBSD устанавливается на машину с одним винчестером и без других операционных систем.

Первоначальные положения
Для  конечного пользователя, компьютер должен обладать следующими характеристиками и возможностями:

  1. Обладать графическим интерфейсом (то есть, GUI)
  2. Автоматически (то есть, без шаманства со стороны пользователя) подключать CD/DVD и флеш диски и иметь возможность записывать/считывать с этих носителей
  3. Посещать интернет сайты при помощи любимого браузера (Firefox рулит)
  4. Создавать/редактировать документы при помощи OpenOffice
  5. Проигрывать mp3 и avi файлы

Шаг 1 - Скачать DVD диск и записать его

  1. Для того чтобы скачать образ DVD - проследуйте по этому линку http://www.freebsd.org/where.html
  2. Выберите Вашу платформу. Как правило - для 32-х битных компьютеров это i386, для 64-ех битных - amd64
  3. Выберите нужный Вам образ и скачайте его
  4. Распакуйте его при помощи привычной Вам утилиты (я рекомендую WinRAR)
  5. Запишите ISO образ на диск

Шаг 2 - Установите FreeBSD, с дополнительными пакетами KDE и Xorg

  1. Вставьте записанный диск и загрузитесь с него
  2. Сперва выберите свою страну
  3. В главном меню Sysinstall выберите Standart
  4. Прочтите следующее меню и нажмите ОК
  5. Нажмите A (использовать весь диск)
  6. Нажмите Q чтобы закончить разметку
  7. При предложении установить Boot Manager - выберите Standart
  8. Прочитайте следующий экран и нажмите ОК
  9. Нажмите А, чтобы выбрать автоматические настройки
  10. Нажмите Q, чтобы закончить
  11. Когда предложат выбрать Distibutions - выберите Custom и выберите следющее:
    Необходимым является base (базовая система) и kernel (ядро) и src (исходники, в случае если Вы планируете пересобирать ядро)

    • base
    • kernels | GENERIC
    • src | All

    Допольнительно - необязательно, но в будущем может пригодиться

    • dict (словарь проверки орфографии)
    • doc | en (документация на английском, так как на русском нету)
    • games (по желанию)
    • ports
  12. Для того, чтобы попасть обратно к выбору Distribution - выберите OK или Exit
  13. Нажмите ОК для продолжения
  14. На экране выбора откуда устанавливать - выберите CD/DVD
  15. Прочитайте следующее сообщение и нажмите Yes
  16. Подождите, пока закончиться установка
  17. Прочитайте сообщение об успешном завершении установки и нажмите ОК
  18. Выберите YES чтобы настроить свою сетевую карту
  19. Как правило, в десктопах одна сетевая карта и тут вам просто нужно будет настроить ее параметры. Если их 2-3-4 - то конфигурируйте по очереди.
  20. (Опционально) Можно попробовать настроить сетевую карту как IPv6. Он попытается найти сервер, и дальше если не найдет - ничего сташного
  21. Следующее окно - Вам предложат попробовать использовать DHCP - если он есть в Вашей сети - смело его используйте
    Настройки сети откроются с Вашим IP адресом
  22. Введите имя компьютера в поле Host
  23. Выберите No в ответ на вопрос о том, хотите ли, чтобы машина работала роутером
  24. Выберите No, когда спросят, хотите ли Вы сконфигурировать inetd
  25. Выберите YES, в ответ на вопрос, хотите ли Вы иметь удаленный доступ к этой машине по SSH
  26. Выберите No, в ответ на вопрос о том, хотите ли Вы иметь анонимный ФТП доступ к этой машине
  27. Выберите No, в ответ на вопрос, хотите ли Вы чтобы машина была NFS сервером
  28. Выберите No, в ответ на вопрос, хотите ли Вы чтобы машина была NFS клиентом
  29. Выберите No, если не хотите настраивать системную консоль (на мой взгляд, в случае необходимости поддержки русского языка - это можно сделать довольно таки просто позже)
  30. Выберите Yes, чтобы настроить часовой пояс машины
  31. Выберите No в ответ на вопрос, установлены ли системные часы на UTC (время по Гринвичу)
  32. Выберите свой регион
  33. Выберите свою страну
  34. Выберите Ваш часовой пояс
  35. Когда Вас спросят, о том, правильное ли сокращение используется для Вашего часового пояса - выберите Yes
  36. Следующий вопрос: какая мышь подключена к компьютеру. Если это USB мышь - выберите No, для PS/2 - выберите YES
    PS/2 мышь можно будет сразу протестировать
  37. Выберите YES в ответ на вопрос, хотите ли Вы просмотреть коллекцию пакетов (уже собранных бинарников) и установить что либо сейчас, так как Вы собираетесь установить Xorg и KDE
  38. На экране Package Selection - пролистните до X11 и выберите OK
  39. На экране X11 - выберите KDE4. Вы заметите, что сразу множество пакетов выберется как зависимости - это нормально
  40. Пролистните ниже и выберите Xorg7
  41. Щелкните ОК
  42. Возможно, Вы захотите установить еще какие либо пакеты, например bash. Выберите их сейчас
  43. Выберите Install и Вы увидите экран с целевыми пакетами. Там будут отображены только те пакеты, которые Вы выбрали. Не переживайте, все зависимости тоже установятся
  44. Выберите ОК
  45. Подождите, пока завершится установка пакетов
  46. Когда спросят о том, хотите ли Вы добавить аккаунты пользователей - выберите Yes
  47. На экране User and Group Management - выберите User
  48. В поле Login ID введите имя пользователя
  49. UID и Group ID оставьте как есть
  50. Введите пароль и подтвердите его
  51. Введите свое полное имя (по желанию)
  52. В поле Member Groups введите следующие группы (без пробела, разделитель запятая): wheel,operator
  53. Поле Home directory оставьте как есть
  54. Если Вы не устанавливали bash - то Login shell оставьте как есть, иначе - смените на /usr/local/bin/bash
  55. Нажмите ОК
  56. Теперь Вы вернетесь к экрану User management. Если Вы хотите, Вы можете создать столько пользователей, сколько Вам нужно. Однако, это необязательно, так позже, при желании, Вы сможете добавить еще пользователей.
  57. Прочтите следующий экран, и нажмите ОК. Это просто информационная надпись, о том, что нужно задать пароль суперпользователя (root)
  58. Введите пароль для root. Нажмите Enter и введите его еще раз. Снова нажмите Enter
  59. На вопрос о том, хотите ли Вы снова зайти в меню конфигурации - выберите No
  60. Вы вернетесь в главное меню Sysinstall. Выберите Exit Install
  61. На вопрос, о том, уверены ли Вы что хотите выйти - ответьте YES
  62. Прочитайте запись на следующем экране и нажмите ОК
  63. Пока машина перезагружается - не забудьте извлечь DVD диск из привода

Итак, у Вас уже установлена ОС FreeBSD 8 с Xorg 7 и KDE 4. Однако, чтобы это все заработало - нужно сделать еще несколько простых шагов.

Шаг 3 - Обновите и пропатчите свежеустановленную систему

Важно: несмотря на то, что при установке Вы выбрали копировать систему портов, не забывайте периодически обновлять ее.

  1. Зайдите в установленную систему под Вашим пользователем (который состоит в группах wheel и operator)
  2. Введите в консоли команду su (она даст Вашему пользователю на время сеанса права суперпользователя root)
  3. Введите пароль root'a
  4. freebsd-update fetch install - скачает и установит последние патчи для Вашей ОС FreeBSD
  5. portsnap fetch extract - скачает упакованную версию свежих портов и распакует ее. Порты - это разработанные специально для FreeBSD или перенесенные с других ОС исходники приложений, созданных для того чтобы компилироваться и запускаться под ОС FreeBSD. Таким образом, у Вас будут свежайшие (на данный момент времени) исходники почти всех возможных программ для FreeBSD
    • В дальнейшем, для обновления портов используйте несколько другую команду - portsnap fetch update

По моим сведениям, этих шагов недостаточно, чтобы проапдейтить ОС. Необходимо еще и перестроить kernel (ядро). Не пугайтесь, тут нет ничего страшного.

  1. Перейдем в директорию, где хранятся сами описания ядер - cd /usr/src/sys/i386/conf (i386 выделено курсивом, потому что эта архитектура машины. То есть, если вы используете amd64 - то вместо i386 Вы должны написать amd64)
  2. Редактировать и перестраивать GENERIC - довольно таки глупая идея, так же как и хранить все конфиги ядер в одной папке. Поэтому - mkdir /root/kernels
  3. cp GENERIC /root/kernels/MYKERNEL (вместо MYKERNEL - напишите желаемое название ядра)
  4. ln -s /root/kernels/MYKERNEL - это создаст символический линк на ядро
  5. ee MYKERNEL - так как мы не ставим своей задачей коренную перестройку системы, то просто найдите строчку ident и смените GENERIC на MYKERNEL
  6. cd /usr/src - перейдем в папку с иходниками
  7. make buildkernel KERNCONF=MYKERNEL - построим новый кернел (это займет некоторое время, в зависимости от производительности машины)
  8. make installkernel KERNCONF=MYKERNEL - установим новый кернел (это займет некоторое время, в зависимости от производительности машины)
  9. reboot - для завершения установки нового кернела, нужно перезапустить машину.

Шаг 4 - настройка зависимостей Xorg

  1. Зайдите в установленную систему под Вашим пользователем (который состоит в группах wheel и operator)
  2. Введите в консоли команду su (она даст Вашему пользователю на время сеанса права суперпользователя root)
  3. Введите пароль root'a
  4. Добавьте dbus в /etc/rc.conf. Это можно сделать либо отредактировав /etc/rc.conf при помощи редактора текстовых файлов (мой выбор - ее) или же, при помощи следующей консольной команды: echo 'dbus_enable="YES"' >> /etc/rc.conf
  5. Включите dbus следующей командой: /usr/local/etc/rc.d/dbus start
  6. Добавьте hald в /etc/rc.conf следующей консольной командой: echo 'hald_enable="YES"' >> /etc/rc.conf
  7. Включите hald: /usr/local/etc/rc.d/hald start
  8. Перезагрузитесь: reboot
  9. После перезагрузки, снова зайдите под своим пользователем и переключитесь при помощи команды su под root'a

Шаг 5 - Настройка Xorg

Это необязательная процедура, так как большинство машин сейчас работает и без настройки Xorg.

  1. Дайте возможность Xorg создать свой конфиг автоматически, при помощи следующей команды: Xorg -config /root/xorg.conf.new -retro
  2. Скопируйте xorg.conf.new в директорию /etc/X11: cp /root/xorg.conf.new /etc/X11/xorg.conf

Дальше, все зависит от Ваших предпочтений: если Вы хотите логиниться в командной строке, потом запускать KDE, проделайте следующие шаги:

  1. Наберите exit, чтобы стать обычным пользователем.
  2. Создайте файл .xinitrc в домашней директории своего пользователя командой: echo exec /usr/local/kde4/bin/startkde4 > ~/.xinitrc
  3. Запустите Xorg и KDE командой startx

Шаг 6 - Запуск ГУИ KDE при загрузке ОС

Чтобы не логиниться в командной строке, а сразу стартовать KDE при загрузке ОС - проделайте следующие операции:

  1. Добавьте в /etc/rc.conf следующие записи находясь в учетке суперпользователя (su):
    echo 'local_startup="${local_startup} /usr/local/kde4/etc/rc.d"' >> /etc/rc.conf
    echo 'kdm4_enable="YES"' >> /etc/rc.conf
  2. Перезагрузитесь командой reboot. После перезагрузки - перед Вами будет GUI KDE.

Шаг 7 - Обеспечить возможность подключать CD/DVD/USB

По умолчанию, система FreeBSD запрещает подключение и доступ к внешним носителям данных. Описанные далее шаги подразумевают, что Ваш пользователь находиться в группе operator.

  1. Зайдите в консоль и переключитесь в пользователя root командой su
  2. Включите vfs.usermount командой sysctl -w vfs.usermount=1
  3. Сконфигурируйте включение vfs.usermount при загрузке: echo vfs.usermount=1 >> /etc/sysctl.conf
  4. Отредактируйте файл /etc/devfs.conf командой: ee /etc/devfs.conf
  5. Добавьте в него следующие строки:
    # Allow all users to access CD's
    perm /dev/acd0 0666
    perm /dev/acd1 0666
    perm /dev/cd0 0666
    perm /dev/cd1 0666

    # Allow all USB Devices to be mounted
    perm /dev/da0 0666
    perm /dev/da1 0666
    perm /dev/da2 0666
    perm /dev/da3 0666
    perm /dev/da4 0666

    # Misc other devices
    perm /dev/pass0 0666
    perm /dev/xpt0 0666
    perm /dev/agpart 0666
    perm /dev/uscanner0 0666
    Дополнение: если поставить 0660 - то лишь пользователи, состоящие в группе operator смогут подключать USB флешки и CD/DVD диски

  6. Отредактируйте файл /usr/local/etc/PolicyKit/PolicyKit.conf  командой ee /usr/local/etc/PolicyKit/PolicyKit.conf
  7. Нужно изменить его содержание с
    <config version="0.1">
    <match user="root">
    <return result="yes"/>
    </match>
    <define_admin_auth group="wheel"/>
    </config>

    на

    <config version="0.1">
    <define_admin_auth group="operator"/>
    <match action="org.freedesktop.hal.storage.mount-removable">
    <return result="yes"/>
    </match>
    <match action="org.freedesktop.hal.storage.mount-fixed">
    <return result="yes"/>
    </match>
    <match action="org.freedesktop.hal.storage.eject">
    <return result="yes"/>
    </match>
    </config>

  8. Отредактируйте файл /etc/fstab командой ee /etc/fstab
  9. Закомментируйте или вообще уберите строчку про /cdrom:
    #/dev/acd0 /cdrom cd9660 ro,noauto 0 0
  10. Во FreeBSD по умолчанию папка /tmp чиститься только от временных файлов, созданных Xorg'ом. Для того, чтобы исправить эту ситуацию - добавьте в /etc/rc.conf  запись clear_tmp_enable="YES" командой echo 'clear_tmp_enable="YES"' >> /etc/rc.conf
  11. Перезагрузите компьютер

После перезагрузки, Вы сможете подключать CD, DVD и USB драйвы. Также Вы сможете считывать и записывать информацию, записывать диски.

Шаг 8 - Включение звука в ОС

FreeBSD, как и многие серверные ОСи не включает звук по умолчанию. Для того, чтобы его включить - нужно проделать пару нехитрых операций.

  1. Загрузите все поддерживаемые драйвера аудиокарт командой: kldload snd_driver
  2. Командой cat /dev/sndstat проверьте, какой именно драйвер зацепился за Ваше звуковое устройство. Вывод команды в консоль будет схож с этим (но не обязательно совпадет):
    FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
    Installed devices:
    pcm0: at io 0x2040 irq 16 kld snd_es137x [MPSAFE] (2p:1v/1r:1v channels duplex default)
  3. Обратите внимание на snd_ - оно указывает какой именно драйвер загрузился.
  4. Застасьте модуль загружаться при загрузке ОС, прописав его в /boot/loader.conf командой: echo 'snd_es137x_load="YES"' >> /boot/loader.conf
    (Конечно же, не забудьте заменить es137x_ на Ваш модуль)

Шаг 9 - установка программ

Для того, чтобы десктоп приобрел законченные черты, нам необходимо установить следующий софт (ИМХО):

  • Firefox
  • Open Office
  • K3b

Готовые бинарники

  1. Для того, чтобы просмотреть готовые бинарники для нашей, свежеустановленной FreeBSD 8.0 i386 - передите по линку ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.0-release/Latest/ (для других типов ОС вместо i386 подставьте тип своей ОС)

FireFox

  1. Перейдите в shell и переключитесь в суперпользователя командой su
  2. Для установки FireFox достаточно добавить готовый пакет командой pkg_add -r firefox35
  3. После установки нам рекомендует загружать sem при загрузке ОС. Используйте ее и добавьте в /boot/loader.conf запись sem_load="YES"

Примите мои поздравления, FireFox установлен. Правда, без поддержки Flash Player, но эту досадную неприятность мы исправим...

Open Office

Наиболее быстрый и безболезненный способ установить Open Office - использовать заранее собранный пакет. Сперва, Вам нужно выбрать подходящий Вам пакет по этому адресу - http://pub.ocpsys.com/bsd/killasmurf86/OpenOffice.org-3.2.0-i686/. Далее, выбрав подходящий пакет, переходите в консоль, переключаетесь su под root и выполняете команду pkg_add http://pub.ocpsys.com/bsd/killasmurf86/OpenOffice.org-3.2.0-i686/OOo_3.2.0_FreeBSD80Intel_install_ru.tbz. Более подробное обсуждение опубликовано тут - http://forums.freebsd.org/showthread.php?t=8639.

Если же Вы все-таки решитесь пойти по идеологически более правильному пути, то есть собрать Open Office из исходников - в первую очередь проверьте, чтобы Ваш компьютер обладал хотя бы 2мя гигабайтами ОЗУ и у него было более 11 гигабайт свободного места в /usr.

  1. Перейдите в консоль и переключитесь в суперпользователя командой su
  2. Теперь нужно нужно найти нужный нам порт Open Office. Я это делаю следующими командами:
    cd /usr/ports
    make search name=openoffice | grep Path
  3. Нам предложат несколько вариантов - выбирайте тот что понравиться. cd /путь/к/openoffice и make install
  4. Ждите, ждите, и еще раз ждите
  5. Через некоторое время, билд прекратиться, потому что необходимо вручную скачать компоненты JDK. Просто прочитайте и скачайте то, что нужно туда, куда нужно 😉
  6. После JDK Вас попросят скачать еще один файл 🙂
  7. Итак, после того как Вы все скачали и положили туда куда нужно (/usr/ports/distfiles) - снова запустите билд. Если не помните как - стрелочка вверх напомнит Вам введенные ранее команды
  8. После повторного запуска билда - Вам предложат согласиться с Лицензионным соглашением. Скроллить его можно при помощи Space, после того как пролистаете до конца - напишите yes. А вот читать или нет - это уже Ваше личное дело.
  9. Ждать придется ОЧЕНЬ долго, но в итоге, оно построится ;-).
  10. Ждите...

Итак, в итоге, после долгого билда - Вы получили программу, для написания/редактирования документов, совместимых с MS Office. Поздравляю

K3b

Программа для записи дисков

  1. Запускаем shell, su (переключаемся в суперпользователя)
  2. Во FreeBSD есть скомпилированный пакет. Добавим его командой pkg_add -r K3b

Проигрывать MP3 файлы можно при помощи встроенной утилиты - juK, музыкальный проигрывать, по умолчанию устанавливаемый в KDE.

Эта статья - вольный перевод статьи http://rhyous.com/2009/12/18/how-to-install-and-configure-a-freebsd-8-desktop-with-xorg-and-kde/

1

Итак, я рад объявить всем, что у нас скоро открывается новое Интернет-кафе, в центре города Минска, в горячо любимом мной торговом центре Столица, в прекрасной кофейне КафеБерри.

Итак, я рад объявить всем, что у нас скоро открывается новое Интернет-кафе, в центре города Минска, в горячо любимом мной торговом центре Столица, в прекрасной кофейне КафеБерри.

Моя задача, как системного администратора всего этого счастья, была крайне нетривиальна - в целях экономии средств и времени необходимо, используя старые компьютеры и программу управления, работающую на другом Интернет-кафе, построить рабочую точку.
Итак, задача поставлена, приступаем к ее реализации.
Первоначальная работа - это улаживание административных взаимодействий с провайдером (БелИнфонет) и владелицей КафеБерри. Тут все, по большей части, обошлось без меня, единственное, что я сделал - это убедил провайдера не снимать кроссировку с линии и не отбирать у меня хорошо спрятанный модем (он был настолько хорошо спрятан, что я только в момент сборов его нашел).

Следующий шаг - объяснение самому себе, как именно это должно работать.
Исходные данные: Интернет-кафе Росток (г. Минск, Ленинградская, 7), работает под управлением довольно-таки хорошего, но небесплатного ПО AstaLaVista (по заявлению его автора, разрабатывалось им самим специально для сети его компьютерных клубов), имеющего 30 лицензий на стационарные клиентские компьютеры +17 лицензий для внешних клиентов (Wi-FI). Где экономия, спросите Вы? Отвечаю: на Ростиксе всего 15 стационарных компьютеров, следовательно, еще 15 лицензий просто так стоят и не используются.

Задача1: объединить точки - решается на уровне провайдера, и почти меня не касается. Побочные следствия решения задачи на уровне провайдера - необходимость установки роутера в КафеБерри, и настройки исполнения скриптов Асты для IPFW на нем зеркально к такому же роутеру в Ростиксе. Статус задачи зеркалирования - пока не решена, буду благодарен любой помощи (можно в комментариях). На всякий случай, чтобы не задавалось лишних вопросов поясню смысл сей замысловатой задачки, правда, для этого придется несколько отклониться от темы.
Итак, программный комплекс AstaLaVista (я его обзываю для краткости Аста), состоит из нескольких модулей, без которых его функционирование невозможно. Причем часть модулей исполняется исключительно под управлением MS Windows. Основа Асты - программа/сервис под незамысловатым названием Server, с которой, собственно говоря, и происходит все управление. Данные Аста хранит в БД MySQL в формате InnoDB, взаимодействие с клиентом осуществляется специальной клиентской оболочкой, запускающейся перед Winlogon (под GNU/Linux, вроде бы и есть реализация, но что то про нее не слышно вообще), взаимодействие с админом - посредством программы Operator (тоже Windows приложение), взаимодействие с управляющим клубом - посредством программы Boss (Windows-приложение, по сути, являющееся всего лишь фронтендом для базы данных MySQL). У сервера есть замечательная возможность отдавать команды роутеру (в основном, это связка FreeBSD+IPFW, но при наличии прямых рук, напильника - можно заточить под что угодно). То есть, админ создает счет, клиент садиться за компьютер, shell открывает доступ к виндам, а сервер, по ssh отдает команду роутеру. В случае с одним роутером - все пляшет прекрасно. Но, у меня их, во-первых 2, а во-вторых, второй расположен удаленно (пусть и в одной подсети). Так вот, моя задачка состоит в том, чтобы или мониторить состояние правил IPFW и, при изменении той их части, которая касается КафеБерри, отправлять эти изменения туда (как?), или же, просто, при получении команды для IPFW роутер Ростикса просто передает такую же команду роутеру КафеБерри (такой подход мне кажется более экономичным и менее ресурсоемким). Прошу всех, кто может - окажите помощь ;-).

Задача2: экономия компьютеров - решилась относительно просто. Вместо двух компьютеров (роутер, и компьютер админа) - будет установлен лишь один, под управление FreeBSD с каким-либо GUI + 10 клиентских.
Дальше начались для меня шаманские пляски с бубном. Собственно говоря, я не новичок во FreeBSD, но ламерские мохнатые ушки все еще растут у меня откуда-то :-D. C самого начала, инсталлятор, загрузившись с диска, отказался обнаруживать этот самый диск в качестве источника установки. Имея доступ в Интернет, для меня это не оказалось такой уж большой проблемой, тем более, что последний дистрибутив, скачанный мной имеет номерок 7.2, а тут уже и 8.0 есть. Так что, я просто подсказал откуда с какого фтп-сервера брать дистрибутив и ушел пить кофе и готовить компьютеры с Windows.

Скоро сказка сказывается, но нескоро дело делается. Через некоторое время, Фря таки собралась и установилась и я начал настройку ее, как роутера и файл-сервера. Тут мне было все просто и знакомо: VPN-подключение поднимается при помощи MPD5, firewall и контроль доступа в Интернет - IPFW (всего что нужно - перекомпилировать ядро с парой новых параметров), файл-сервер - Samba. Установил, настроил, проверил, обновил, еще раз проверил - все работает.
Чуть не забыл о некоторых необходимых параметрах для /etc/sysctl.conf:

  • net.inet.ip.fw.verbose=1 - сообщения IPFW будут более содержательными 😉 (шутка, этот параметр обозначет необходимость логировать сообщение от ipfw в /var/log)
  • net.inet.ip.fw.verbose_limit=10000 - ограничение количества сообщений в лог
  • net.inet.ip.fw.one_pass=0 - пакет проходит через файрволл дважды - на входе и на выходе
  • net.inet.ip.forwarding=1

    #This sets the session lifetime for TCP sessions without any traffic to 1 hour,
    #for UDP to 10 seconds.
    net.inet.ip.fw.dyn_ack_lifetime=3600

    #Linux kernel 2.6.19
    compat.linux.osrelease=2.6.19

А вот далее, мне пришлось ступить на тропу неизведанного - установка GUI (Graphical User Interface). Спросил у знакомых, проанализировал собственные, довольно таки скудные знания в этой области и, первоначально, остановился на XFCE. Собралась она довольно таки быстро, запустилась тоже без проблем, а вот что с ней делать дальше - я так и не смог разобраться. Простой, непонятный и неудобный для меня-виндузятника интерфейс. Исходя из всех, вышеперечисленных моментов, а также, учитывая то, что я уже имел опыт работы с Gnome (http://wordpress.sng.by/testirovanie-svobodnoj-os-na-blondinke/), я решил не пытать судьбу и поставить его. Однако, из портов он так и не захотел собираться - останавливается на сборке libxml2/python и все на этом. Поискав информацию во всемогущем Гугле, я так ничего не нашел, и пришлось мне пойти по другому пути установки, любезно предоставляемой мне ОС FreeBSD - установка из системы пакетов.
Пакет Gnome2 (pkg_add -r gnome2) довольно таки шустро собрался, установился и запустился без проблем. Таким образом, первая часть конфигурация перешла в статут "завершена".

Теперь нужно приступить к доработке получившейся заготовки при помощи напильника. В первую очередь, проверил, стоил ли апдейтить Гнома - оказалось, что нет, из пакетов установилась последняя версия.
Теперь - русификация консоли, в чем я воспользовался блогом hd_keeper - http://hd-keeper.livejournal.com/1577.html.
После русификации консоли, следующий шаг - установка драйверов для видеокарты NVidia, потому что тот дефолтный драйвер что загружается по умолчанию, не поддерживает разрешение выше 800х600 пикселей. Тут опять же мне на помощь приходит всезнайка-Гугл и блог Linux/BSD Sharing (http://linux-bsd-sharing.blogspot.com/2009/03/howto-install-and-configure-nvidia.html). Первая рекомендация - смотреть на сайте Nvidia драйвера последней версии для моей системы. Однако, я решил скачать драйвера с официального сайта производителя моей материнской платы ASUS. Так как драйвера для FreeBSD специально не пишутся - то придется устанавливать еще и поддержку Linux, что делается довольно таки просто. Подробно и интересно все это описано тут - http://www.linux.com/archive/feature/53055?theme=print.
Однако, для конфигурации с загрузкой нужных мне параметров - необходимо изменять xorg.conf (по умолчанию, он должен находиться в /etc/X11/), однако в новых версиях его там нет, и появляется он при помощи команды Xorg -configure. Опять же, чтобы не утомлять - вот линки с информацией:

После этих нехитрых манипуляций Гном приобрел значительно более приятный внешний вид.

Итак, настройка ограниченно завершена, в следующих статьях постараюсь рассказать о моей борьбе с wine и настройке объединения клубов.

А работа на Gamerbox.ru продолжается. Советую всем, кто еще не знает об этой системе ознакомиться с ней и подписаться на рассылку с тем, чтобы в числе первых оказаться ее пользователем.

1

После установки MySQL на FreeBSD и переноса основной базы данных программы управления клубом туда, я, будучи из тех админов, что "уже делают бэкапы", озаботился резервным копированием этой базы данных.

После установки MySQL на FreeBSD и переноса основной базы данных программы управления клубом туда, я, будучи из тех админов, что "уже делают бэкапы", озаботился резервным копированием этой базы данных.

Естественно, что в первую очередь, на что упал мой взгляд - это скрипт, идущий в комплекте с MySQL - mysqldump. Внимательно почитав его мануал, и ознакомившись с опытом его применения в производственных средах, опубликованным в различных блогах и сайтах, я понял:

  1. использование этого скрипта является довольно ресурсоемкой процедурой
  2. использование этого скрипта с БД, хранящей данные в InnoDB, не гарантирует благополучного восстановления данных без применения нетривиального шаманства
  3. использование этого скрипта требует остановки демона MySQL

Исходя из вышеназванных причин, с учетом крайней ограниченности в ресурсах и, вероятно, в лени - этот скрипт для меня неприменим. Следовательно, пришлось снова обратиться к мировому разуму, а если быть точнее, к верному поисковику Google с переформулированным запросом.

Итак, вот выход, придуманный не мной, а светлыми головами из Percona - XtraBackup.
Вся дальнейшая информация, точнее та часть ее, что я скопировал - является просто копипастом записи в блоге Highload Web.

XtraBackup - резервное копирование для innoDB

системах с высокими нагрузками особое внимание следует уделять резервному копированию (бекапам) данных. Зачастую самая важная часть данных находиться в СУБД. Проблема заключается в том, что копирование данных нужно проводить незаметным для работающей системы образом. Блокировка данных на момент создания бекапа тут не работает, т.к. время блокирования будет неприемлемым.

Одним из популярных решений является репликация, которая обеспечивает высокую степень надежности и почти нулевую потерю данных при сбое основного сервера. Но репликация требует аппаратных затрат, к тому же резервный сервер должен не уступать по характеристикам основному серверу, иначе от репликации не будет толку.

Другой подход резервного копирования - это использование специальных утилит, которые позволяют делать снимки состояния СУБД на жесткий диск, и восстанавливать состояние обратно по такому снимку. На этом остановимся подробнее.

Поскольку MySQL является одним из самых популярных решений в Web’е сегодня, рассмотрим инструменты для бекапов для этой СУБД.
XtraBackup - это утилита от Percona Labs, предназначенная для горячих бекапов таблиц InnoDB и XtraDB.

Советую всем ознакомиться - весьма-весьма полезно... Однако, есть версия только для 64 битных систем

Как я устанавливал БД MySQL в FreeBSD, с какими ошибками и проблемами я столкнулся и как я их решал.

Я рад Вам, мои читатели, представить давно обещанную статью об установке MySQL на компьютер под управлением FreeBSD. Расскажу о том, с какими проблемами я столкнулся и какими способами я их решал.

В первую очередь, представлю подопытного:
FreeBSD some_name 7.2-RELEASE-p3 FreeBSD 7.2-RELEASE-p3 #0: Thu Sep  3 16:32:37 EEST 2009     root@some_name:/usr/obj/usr/src/sys/ROUTER  i386. Он давно и успешно трудиться как роутер в одном из наших Интернет-клубов, и отлично справляется с возложенной на него задачей. А раз это ему под силу, то и небольшую базу данных, для управления клубом, он тоже вполне может потянуть, потому что доменный контроллер с сервером антивируса и сервером программы управления клубом уже не справлялся с возложенными на него задачами.

Когда то, давным-давно я уже пытался провернуть эту идею - установку MySQL на него, но что-то не заладилось (что именно, я не припомню, но, судя по всему, мне просто не хватило знаний и настойчивости) и я отложил эту идею.

Итак, у меня есть готовый файл my.cnf (настройки, рекомендуемые производителем программы управления клубом). Я его просто вставил в /etc и исправил пути.
Перед тем, как собственно устанавливать из портов MySQL - сперва нужно эти самые порты обновить:

portsnap fetch
Давненько я систему портов не обновлял, но этому есть одно простое и элегантное объяснение - несмотря на то, что обновление таким способом занимает весьма порядочно времени, оно экономит, в первую очередь, мой траффик, так как в Беларуси, к моему большому сожалению, нету возможности поставить в клуб нормальный, быстрый и достаточно недорогой анлим, чтобы поддерживать систему в адекватном состоянии посредством того же CVSUp.

Фетчим 10 382 новых порта - есть время покурить, поспать, поесть :-).

portsnap extract
portsnap fetch update

"Раз пошла такая пьянка, режь последний огурец" - проверим систему на наличие известных уязвимостей в установленных портах при помощи порта portaudit, командой portaudit -Fda. После проверки, уязвимостей обнаружено не было, что есть приятно.

Собственно, сам процесс установки MySQL сервера 5.0.90 из портов:
Рассказывать буду так, как делал сам.
cd /usr/ports (тут все порты находяться)
make search name=mysql | grep mysql-server: для того, чтобы отсортировать выдачу, с тем, чтобы не искать в огромном количестве
В итоге, нахожу подходящую версию - cd по пути, указанному в выдаче make search и make install.
Опять таки, есть некоторое время для того, чтобы покурить/поспать/перекусить, пока скачается, скомпилируется и установиться.

Собственно говоря, на этом установка завершена и можно поработать с самой базой...
mysqld_safe & запустит сервер mysql в фоновом режиме.

Тут я столкнулся с первой проблемой - сервер стартует и тут же отключает.
Проверив файл some_name.err, который mysql сервер создал, я обнаружил, что он не может прочитать файл /etc/my.cnf - неверно выставлены права на него (юзер mysql должен иметь возможность прочитать этот файл). Попутно проверил юзер mysql использовать папку, где должна храниться БД со всеми правами.
Итак, права выставлены верно - запускаем MySQL снова - mysqld_safe &.

Все запустилось и работает, файлы InnoDB создались, полет нормальный. Теперь, нужно создать пользователя, который сможет писать в БД с удаленного хоста:

mysql (консольный клиент MySQL) -u root (подключаюсь под пользователем root)
Если бы я все сделал правильно, то я бы смог зайти как пользователь root@localhost (изначально он без пароля) и задать ему пароль командой > update user set password=PASSWORD(”newrootpassword”) where user=’root’;, однако, в ходе предыдущих экспериментов, я что то напутал и мне сказали, что access denied
Для того, чтобы исправить эту досадную оплошность - останавливаю сервер MySQL (killall mysqld) и запускаю его командой mysqld_safe --skip-grant-tables &: эта команда позволяет пропустить загрузку таблиц, в которых указаны пароли.
mysql -u root - я подключился к серверу
> Flush priviliges; - эта команда загружает те самые таблицы, в которых указаны привилегии и пароли пользователей
Очень важно использовать mysql-клиент, который не разрывает соединения после выполнения команды, иначе опять окажемся в ситуации, когда у нас спрашивают пароль root, а мы его не знаем.
> GRANT ALL PRIVILEGES ON *.* TO root@localhost   IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
> GRANT ALL PRIVILEGES ON *.* TO some_user@"some_host" IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

Проверил, SELECT * FROM user; что может user root и тот, которого я создал…
Все это делается для того, чтобы root'ом можно было зайти только с localhost, а второй пользователь мог бы зайти с удаленного хоста, расположенного в локальной сети.
Достаточный уровень безопасности, для сети такого уровня, обеспечит ipfw, запрещающий входящие соединения на порт, который слушает демон MySQL (3306) всем, кроме доверенного хоста: deny tcp from not хост_которому_можно_подключиться to me dst-port 3306

Итак, пользователи созданы, сервер вроде как стартует - осталось добавить строчку его запуска в /etc/rc.conf и перезапустить компьютер: mysql_enable=”YES” и reboot .

Машинка перезагрузилась, пинг и доступ в интернет появились, даже к MySQL я смог подключиться удаленно, а вот доступа по ssh нет - Putty любезно сообщил мне, что отклика от машины на порту нет, из чего я сделал вывод, что демон sshd не запустился, по каким то причинам. Подключаю монитор, и вижу строчку о том, что скрипт /usr/local/etc/rc.d/mysql-server отлично выполнился, но не передал управление дальше по команде и не ушел в фон, а остался висеть на foreground, не давая тем самым запуститься демону sshd. Скипаю скрипт (Ctrl+C), mysqld и доступ к MySQL сохраняется, sshd стартует - из чего делаю вывод, что нужно изменить сам скрипт mysql-server.
Редактирую, убираю строчку с параметрами запуска (нужные мне параметры описаны в /etc/my.cnf), а после строчки вызывающий mysqld_safe - добавляю амперсанд (&).

Вуаля, после перезагрузки все проходит штатно, MySQL стартует, уходит в фон и передает управления дальше - что и требовалось получить.

З.Ы. Я не претендую на то, что эта статья является единственно верным руководством для установки MySQL сервера в среде FreeBSD. Надеюсь, она поможет кому либо, кто столкнется с похожими проблема. В конце концов, она поможет мне в будущем, когда я опять столкнусь с чем-либо схожим. Однако, если у Вас есть советы - я буду рад получить  их тут в комментариях. Спасибо большое...

И, напоследок, маленький анонс - обещаю в ближайшее время написать статью, о том, как бэкапить базы данных MySQL.

deny tcp from not хост_которому_можно_подключиться to me dst-port 3306