Tag Archives: FreeBSD

Установка Maple 12 во FreeBSD

Да! Я-таки поставил эту чудо-программу на свою систему :)

Установка оказалась не такой уж сложной, но небольшие проблемы всё же были.

Первым делом идём на официальный сайт продукта, покупаем лицензию (да-да :) ) и берём дистрибутив для ОС Linux.

Далее нам необходимо “обмануть” инсталлятор, дабы он думал, что программа будет устанавливаться на Linux-систему и создать все необходимые условия для бинарной совместимости с пингвином. Для этого:

Проверяем, установлен ли в системе linux_base:

# pkg_info | grep linux_base
linux_base-fc-4_13 Base set of packages needed in Linux mode (for i386/amd64)

Если нет, то устанавливаем и настраиваем его:

# cd /usr/ports/emulators/linux_base-fc4
# make install clean
# echo “linux_load=YES” >> /etc/rc.conf
# kldload linux.ko

Далее сэмулируем и подключим каталог /proc для пингвина:

# echo “linprocfs /compat/linux/proc linprocfs rw 0 0″ >> /etc/fstab
# kldload linprocfs
# mount /compat/linux/proc

Всё, теперь FreeBSD будет понимать линуксовые пакеты. Перейдём непосредственно к установке Maple.

Идём в каталог с дистрибутивом, запускаем скрипт установки в режиме бинарной совместимости с linux:

# /compat/linux/bin/sh Maple12Linux32Installer.bin

Здесь у меня была проблема нехватки места в каталоге /tmp, поэтому я его временно изменил:

# IATEMPDIR=/home/rainer/temp
# export IATEMPDIR

Если у вас такой проблемы нет, то выполнять эти две команды не нужно.

Далее запустится графический инсталлятор, в котором указываем установочный путь. Я выбрал /usr/local/maple.

Завершаем установку, копируем лицензию (license.bat) в /usr/local/maple/license и запускаем программу:

% /compat/linux/bin/sh /usr/local/maple/bin/xmaple

Работает? А куда она денется! ;)

P.S.: Теперь осталось портировать сюда мой курсач по ТОЭ из виндового маткада :-D

Пример конфигурации ZSH

Думаю, многие знают о существовании такого замечательного шелла, как zsh :)

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

Итак, cat ~/.zshrc

#Сокращённый ввод имён директорий (/u/l/p вместо /user/local/ports)
autoload -U compinit
compinit
setopt autocd

#Выключить пищалку
setopt No_Beep

#Корректировка ошибок при вводе команды
setopt CORRECT_ALL
SPROMPT=”Вы хотели ввести %r вместо %R? ([Y]es/[N]o/[E]dit/[A]bort) ”

#История
setopt APPEND_HISTORY
setopt HIST_IGNORE_SPACE
setopt HIST_REDUCE_BLANKS
setopt HIST_IGNORE_ALL_DUPS
HISTFILE=~/.zhistory
SAVEHIST=5000
HISTSIZE=5000

#Приглашение
autoload promptinit
promptinit
prompt fade blue    # здесь я использую уже готовую тему

#Поиск команд в истории
autoload -U predict-on
zle -N predict-on
zle -N predict-off
bindkey “^X^Z” predict-on   # Включить
bindkey “^Z” predict-off       # Выключить

#Алиасы
alias -g L=’| less’
alias -g G=’| grep’
alias -g GI=’|grep -i’
alias -g H=’| head’
alias -g T=’| tail’
alias -g S=’| sort’
alias -g SU=’| sort -u’
alias -g P=’| patch -p1′
alias -g PD=’| patch -p1 –dry-run’
alias -g WC=’| wc -l’
alias -g IK=’| iconv -c -f koi8r -t cp1251′
alias -g IU=’| iconv -c -f utf8 -t cp1251′
alias -g MF=’mount /mnt/flash’
alias -g UF=’umount /mnt/flash’

alias -g GP=’ping google.com’    #проверка соединения с интернетом ;)

alias -s {avi,mpeg,mpg,mov,m2v}=mplayer
alias -s {odt,doc,sxw,rtf}=openoffice.org
alias -s {ogg,mp3,wav,wma}=mpg123

alias ls=”ls -FG”    # цветной ls

hosts=(‘hostname’ ftp.freebsd.org leonidov.su google.com)    # часто используемые хосты

#SSH – автозаполнение хостов, юзеров
hosts=(${${${(f)”$(<$HOME/.ssh/known_hosts)”}% %\ *}% %,*})    # (!!!) пробелы между “% %” убрать. (!!!)
zstyle ‘:completion:*:hosts’ hosts $hosts
zstyle ‘:completion:*:(ssh|scp):*’ tag-order ‘! users’

#Заголовок терминала (в данном случае мы показываем текущую директорию)
case $TERM in
xterm* | rxvt)
precmd(){print -Pn “\e]0;%n@%m: %~\a”}
;;
esac

#Пути к манам
manpath=”/usr/share/man:/usr/local/man:/usr/X11R6/man”
export MANPATH

#Опции “меню”
zmodload zsh/complist
setopt menucomplete
zstyle ‘:completion:*’ menu yes select
#удобный kill и killall
zstyle ‘:completion:*:processes’ command ‘ps -xuf’
zstyle ‘:completion:*:processes’ sort false
zstyle ‘:completion:*:processes-names’ command ‘ps xho command’
#Настройки цвета меню (это одна строка!):
zstyle ‘:completion:*:default’ list-colors
‘no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;
35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;31:’
# конец строки!
#Комбинации клавиш:
bindkey -M menuselect ” ” accept-and-menu-complete
bindkey -M menuselect “^H” undo

#Настройка нормальной работы кнопок Home, End, Delete и т.п.
autoload zkbd
[[ ! -d ~/.zkbd ]] && mkdir ~/.zkbd
[[ ! -f ~/.zkbd/$TERM ]] && zkbd
source ~/.zkbd/$TERM

[[ -n ${key[Backspace]} ]] && bindkey “${key[Backspace]}” backward-delete-char
[[ -n ${key[Insert]} ]] && bindkey “${key[Insert]}” overwrite-mode
[[ -n ${key[Home]} ]] && bindkey “${key[Home]}” beginning-of-line
[[ -n ${key[PageUp]} ]] && bindkey “${key[PageUp]}” up-line-or-history
[[ -n ${key[Delete]} ]] && bindkey “${key[Delete]}” delete-char
[[ -n ${key[End]} ]] && bindkey “${key[End]}” end-of-line
[[ -n ${key[PageDown]} ]] && bindkey “${key[PageDown]}” down-line-or-history
[[ -n ${key[Up]} ]] && bindkey “${key[Up]}” up-line-or-search
[[ -n ${key[Left]} ]] && bindkey “${key[Left]}” backward-char
[[ -n ${key[Down]} ]] && bindkey “${key[Down]}” down-line-or-search
[[ -n ${key[Right]} ]] && bindkey “${key[Right]}” forward-char

В итоге должно получиться что-то вроде этого.

Настройка ftpd

Этот пост пишу потому, что в интернете не нашел нормальной статьи по настройке встроенного во FreeBSD ftp-сервера: кругом сплошные сслыки на “man ftpd”. Интак, мне необходимо поднять ftp с ограниченным доступом по логину/паролю к отдельным папкам для каждого пользователя. Для этих целей ftpd будет выше крыши.

1. В файл /etc/rc.conf добавляем строчки:

ftpd_enable=”YES”
ftpd_flags=”" # здесь прописываем нужные флаги. Их описание я привёл ниже.

Доступные флаги:
-D: запускать ftpd в режиме демона.
-a <адрес>: в режиме демона принимать соединения только на указанный IP-адрес.
-d: включить режим отладки (подробная информация о работе будет выдаваться серверу syslog как LOG_FTP).
-h: не выводить информацию о системе в сообщениях сервера.
-l: протоколировать все сессии (обычно используется/var/log/xferlog).
-A: разрешить только анонимный доступ.
-M: запретить анонимным пользователям создавать папки.
-m: разрешить анонимным пользователям модифицировать существующие файлы (если для этого достаточно системных прав).
-o, -O: разрешить только запись на сервер всем пользователям (-o) или только анонимному пользователю (-O). В частности, таким образом можно организовать сбор с удаленных серверов файлов резервных копий, чтение которых пользователями не предусмотрено.
-r: перевести сервер в режим «только для чтения». Любая модификация размещенных данных будет запрещена.

2. Создаем учётные записи пользователей (например, с помощью adduser), которым будут разрешен доступ к серверу, после чего убеждаемся в том, что их имена не упоминаются в файле /etc/ftpuser (пользователям, упомянутым в этом файле, доступ к ftp будет запрещён).
Для анонимного доступа к серверу необходимо создать учётную запись с именем “ftp”. Корневым каталогом и будет его домашняя папка.

3. Создаем файл /etc/ftpchroot и заполняем его по такому шаблону:

<имя пользователя> <путь к папке>
<@ имя группы> # это для того, чтобы все пользователи данной группы были ограничены одной папкой (можно не указывать).

Пример:

test /home/test
@ wheel

4. Устанавливаем нужные права на папку /home/test (то, что мы хотим разрешить/запретить пользователю test).

5. При необходимости редактируем:
/etc/ftphosts – настройка виртуальных хостов
/etc/ftpwelcome – приветственное сообщение
/etc/ftpmotd – приветственное сообщение, выводимое при входе на сервер

6. Определяемся, как мы будем запускать сервер – через inetd, или же как standalone.
В первом случае в файле /etc/inetd.conf раскоментируем строчку

ftp stream tcp nowait root usr/liexec/ftpd ftpd -l

Во втором случае для запуска используем скрипт /etc/rc.d/ftpd:

# /etc/rc.d/ftpd start

Если его в системе нет (старые версии FreeBSD), создаём вручную:

#!/bin/sh
#
# $FreeBSD: src/etc/rc.d/ftpd,v 1.1 2006/01/21 18:08:15 yar Exp $
#

# PROVIDE: ftpd
# REQUIRE: LOGIN cleanvar

. /etc/rc.subr

name=”ftpd”
rcvar=`set_rcvar`
command=”/usr/libexec/${name}”
pidfile=”/var/run/${name}.pid”
start_precmd=ftpd_prestart

ftpd_prestart()
{
rc_flags=”-D ${rc_flags}”
return 0
}

load_rc_config $name
run_rc_command “$1″

Вот и всё :) Заходим на свой сервер и радуемся жизни ;)

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

В последнее время приходилось частенько ставить и настраивать эту ОС. Кое-что забывается, поэтому решил написать краткий мануал для быстрого освежения памяти :). Описаний типа “почему именно так, а не так, что это такое и зачем оно здесь нужно” не привожу. Для этого есть handbook. Да, в интернете много подобных статей, но ни одна не помогла мне на 100%. Цель данного поста – описать первоначальную рабочую конфигурацию FreeBSD 7.0, которая проверена на моём железе. Итак, начнём.

Русификация консоли:

1) В файл /etc/profile добавляем строчки:

LANG=ru_RU.KOI8-R; export LANG
MM_CHARSET=KOI8-R; export MM_CHARSET

2) /etc/rc.conf:

font8x14=”cp866-8×14″
font8x16=”cp866b-8×16″
font8x8=”cp866-8×8″
keychange=”61 ^[[K"
keymap="ru.koi8-r.win"
scrnmap="koi8-r2cp866"

3) В /etc/ttys меняем все значения cons25 на cons25r.

4) Редактируем /etc/passwd. Находим строчки нужных пользователей:

root:пыщьпыщьпыщь:0:0::0:0:Vladimir &:/root:/usr/local/bin/zsh

Добавляем к каждому нужному юзеру между двумя двоеточиями слово "russian":

root:пыщьпыщьпыщь:0:0:russian:0:0:Vladimir &:/root:/usr/local/bin/zsh

Вот и всё - у нас есть поддержка русских символов в консоли. Для сервера, думаю, этого достаточно, т.к. далее все настройки будут касаться графической оболочки (за исключением звука).

Настройка Xorg:

Для создания пробного конфигурационного файла выполняем:

# Xorg -configure

Копируем полученный  конфиг /root/xorg.conf.new в /etc/X11/xorg.conf и редактируем его.

Настройка мыши

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option        "Protocol" "auto"
    Option        "Device" "/dev/sysmouse"
    Option        "ZAxisMapping" "4 5 6 7"
EndSection

В моём случае мы имеем дело с ноутбуком, поэтому необходимо настроить ещё и тачпад (если у вас его нет, переходим к следующему пункту). Редактируем секцию "ServerLayout":

Section "ServerLayout"
  ...
    InputDevice    "Touchpad" "CorePointer"
    InputDevice    "Mouse0" "SendCoreEvents"
  ...
EndSection

И добавляем секцию тачпада:

Section "InputDevice"
    Identifier      "Touchpad"
    Driver          "mouse"
    Option         "Device" "/dev/psm0"
    Option         "Protocol" "PS/2"
    Option         "ZAxisMapping" "4 5 6 7"
EndSection

Также можно использовать драйвер "synaptics", но в моём случае он не поддерживается.

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

У меня возникали проблемы с этой секцией в различных версиях XOrg. Вот мои текущие рабочие настройки:

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver "kbd"
    Option "CoreKeyboard"
    Option "XkbRules" "xorg"
    Option "XkbModel" "pc104"
    Option "XkbLayout" "us,ru"
    Option "XkbVariant" ",winkeys"
    Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll" # переключение между языками (в данном случае Alt+Shift,
            #индикатор смены языка - лампочка Scroll Lock)
EndSection

Итого, в графической оболочке мы имеем рабочую win-клавиатуру с правильной раскладкой русских символов.

Настройка видеокарты:

Ниже описана настройка карточки nvidia, дрова для которой можно взять из портов:

# cd /usr/ports/x11/nvidia-driver/
# make install clean

Я конфигурировал, исопльзуя лишь одну опцию "LINUX". "FREEBSD_AGP" не выбираем, т.к. с ней видео не работает должным образом (по крайней мере, у меня).

Жмём "OK", ждём, пока драйвер скомпиллируется и поставится.

Если при установке не возникло проблем - возвращаемся к редактированию /etc/X11/xorg.conf. Правим секцию "Device" для видеокарты:

Section "Device"
    Identifier  "Card0"
    Driver      "nvidia"
    VendorName  "nVidia Corporation"
    BoardName   "NV43 [GeForce Go 6200/6400]”
    BusID       “PCI:1:0:0″
    Option      “NoLogo” “true”
    Option      “RenderAccel” “true”
EndSection

При желании включаем дополнительные опции, о которых можно почитать на официальном сайте NVIDIA.

В файл /boot/loader.conf добавляем две строчки:

linux_load=”YES”
nvidia_load=”YES”

Далее необходима перезагрузка, но мы это сделаем позже, после настройки звуковой карты.

Настройка звука

У меня интеловская звуковая карта “High Definition Audio”. Для неё, начиная с седьмой версии фри, есть свой модуль ядра (snd_hda.ko). Убедимся в его наличии:

# ls -la /boot/kernel/snd_hda.ko
-r-xr-xr-x  1 root  wheel  83714 24 фев  2008 /boot/kernel/snd_hda.ko*

Посмотреть все доступные модули можно так:

ls -la /boot/kernel/snd_*

Выбираем нужный нам и подключаем его:

# kldload snd_hda

Теперь должен появиться звук. Для того, чтобы при загрузке системы модуль подключался автоматически, в файл /boot/loader.conf добавляем строку

snd_hda_load=”YES”

Перезагружаемся. Теперь в системе должна быть поддержка клавиатуры, мыши, видео и звука. А что ещё для счастья надо? :)