Программы
Первичная настройка FreeBSD

Первичная настройка FreeBSD

Странно, но многие до сих пор считают, что FreeBSD — система исключительно для серверов. Как-то люди привыкли, что Linux нормально живёт на десктопах, а вот FreeBSD — мрак, консоль, Израиль.

Странно, но многие до сих пор считают, что 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 это оболочка, значит положено ей лежать в shellsmake — собрали, 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 системы!