Странно, но многие до сих пор считают, что FreeBSD — система исключительно для серверов. Как-то люди привыкли, что Linux нормально живёт на десктопах, а вот FreeBSD — мрак, консоль, Израиль.
Во времена FreeBSD 8.2 (где-то 2011-ый год) я уже проводил эксперимент с «жизнью» во фряхе. Эксперимент удачный. Сейчас ситуация ещё улучшилась. Могут быть проблемы с совместимостью с железками, хотя всё решается, если взяться за это.
Ниже — описание моего приключения из 2011-го. Уверен, что и сейчас эти рецепты работают, если заменить pkg_add на pkg install.
Первый запуск FreeBSD, настраиваем консоль
Ядрёная консоль делает меня сильней!
Первое, что замечает линуксоид, попадая во FreeBSD-шную среду: что-то не так с консолью. А именно: автокомплит (дописывание пути по нажатию tab) отсутствует. А штука была полезная. Глядим, что у нас в качестве оболочки:
FreeBSD# echo $SHELL /bin/csh
Теперь понятно, в чём дело: вместо bashа у нас csh. Значит надо поставить баш!
Предположим, что сеть мы настроили ещё на этапе установки (я это сделал именно там), а доступ в интернет у нас есть, например через Linux, на машине рядом.
Установка пакетов
От куда мы можем взять баш? Во FreeBSD есть 2 кошерных варианта: порты и пакеты. Если мы устанавливаем из портов, то нам придётся качать исходники и компилировать. Это не сложно, но долго. Делается это, например, так:
FreeBSD# cd /usr/ports/shells/bash FreeBSD# make FreeBSD# make install
Как можно было заметить, порты лежат в /usr/ports. Далее они разложены по тематике. Bash это оболочка, значит положено ей лежать в shells. make — собрали, make install — положили по нужным местам. Всё как в линуксе, когда мимо пакетного менеджера программы ставишь.
Второй вариант установка пакетов (package) вариант проще и быстрее: всё собрано за нас, осталось только скачать и установить.
FreeBSD# pkg_add -r bash
Разницу между этими способами ощутить вряд ли получится, если только вам не требуется какая-то кастомизация на этапе сборки. Поэтому, когда есть возможность, я выбираю пакеты.
Ладно, ставить мы умеем, а вот искать как-то не очень По правде сказать, искать по пакетам я пока не научился. Логичного продолжения pkg_add — команды pkg_search в системе нет. Однако, названия пакетов почти всегда совпадают с названием портов. А вот вариантов поиска в портах предостаточно. Люди на сайтах советуют
FreeBSD# make search name="package-name"
но что-то у меня и с этим не заладилось, поэтому, пользуясь тем, что порты это папки, пользуюсь простым поиском пути, содержащего искомую подстроку:
FreeBSD# find /usr/ports -name '*package*'
Этот способ мне нравится даже больше, чем aptitude search, ибо можно задать хороший шаблон и не грепать потом весь выхлоп пакетного менеджера.
Меняем csh на bash
Собственно, нам нужно, чтобы пользователь заходил после логина в bash а не в csh. Порядка ради замечу, что csh в качестве shell-а стоит по умолчанию только для root-а, остальным раздаётся обычный sh.
Итак, сделать это можно, изменив настройки пользователя. Почти все действия с пользователем во FreeBSD идут через команду pw. Не будет исключением и смена оболочки. Опытный линуксоид сразу вспомнит команду usermod и будет почти прав:
FreeBSD# pw usermod root -s /usr/local/bin/bash
Теперь нужно перелогиниться, чтобы начал использоваться bash. Добро пожаловать в родную среду!
Ставим файловый менеджер
Перемешаться по файловой системе из консоли (а нам придётся это делать часто) можно в консоли, а можно и в нормальном двухпанельном файловом менеджере. К тому же редактировать файлы нам тоже придётся, а vim любят не все, поэтому советую поставить Midnight Commander.
[root@FreeBSD ~]# pkg_add -r mc [root@FreeBSD ~]# /usr/local/bin/mc
Кстати, почти всё ставится в /usr/local. Там и конфиги искать (/usr/local/etc) и бинарники.
Графическая оболочка во FreeBSD
Сколько user-а консолью не корми,
он всё равно на GUI смотрит.
Консоль это, безусловно, хорошо, но многие (я в их числе) привыкли к использованию графических оболочек. А значит, стоит, как минимум, описать способ поднятия графического интерфейса в сей замечательной ОСи.
Ставим Xorg
Ставится xorg сервер опять же просто:
[root@FreeBSD ~]# pkg_add -r xorg-server [root@FreeBSD ~]# pkg_add -r xorg
Все зависимости выкачаются сами, оставим это на пакетный менеджер. Ещё нам понадобится драйвер для нашей видео-карты. У меня nvidia, ставлю nvidia-driver (нашёл, пользуясь всё тем же find /usr/ports/ -name '*nvidia*'
):
[root@FreeBSD ~]# pkg_add -r nvidia-driver
Дабы не возиться с устройствами, подключим hald и dbus. Для этого пропишем их, а заодно и slim (о нём будет написано ниже), в /etc/rc.conf
[root@FreeBSD ~]# mcedit /etc/rc.conf
hald_enable="YES" dbus_enable="YES" slim_enable="YES"
Ставим desktop environment
Иксы мы поставили, теперь можно установить какую-то графическую среду. Мне нравится lxde, её и буду ставить:
[root@FreeBSD ~]# pkg_add -r lxde-meta
Ещё нам потребуется login manager. Опять же, руководствуясь своими предпочтениями, ставлю SLiM (Simple login manager):
[root@FreeBSD ~]# pkg_add -r slim
Теперь нужно его настроить. Конфигурация slim-а находится в файле /usr/local/etc/slim.conf
[root@FreeBSD ~]# mcedit /usr/local/etc/slim.conf
Ищем строку описания возможных сеансов:
sessions xfce4,icewm,wmaker,blackbox
Удаляем всё ненужное (мы же их не ставили их и нет), пишем туда lxsession программу запуска сеансов для lxde:
sessions lxsession
Там же заменяем команду входа:
login_cmd exec /usr/local/bin/bash -login ~/.xinitrc %session
А в файле ~/.xinitrc прописываем запуск lxde сессии:
exec lxsession
Сохраняем, перезагружаемся, дабы изменения, записанные в /etc/rc.conf (hald и dbus) вступили в силу.
После перезапуска запустится slim и предложит нам войти в систему.
Вот мы и настроили графический интерфейс во FreeBSD. По-моему, неплохо для первичной настройки.
А мне остаётся только пожелать Вам успехов в освоении новой unix системы!