my juick

Показаны сообщения с ярлыком debian. Показать все сообщения
Показаны сообщения с ярлыком debian. Показать все сообщения

2011-10-12

usefull environment on Debian 6 Squeeze

Продолжаем настраивать недавно поставлнный Debian.
  • tools
    • xterm
Так как установка была изначально минималистичная, то в качестве терминала используется xterm. А у xterm есть неприятность в обработки Meta(LAlt) клавиши(что больше всего чувствуется при работе в emacs): сразу после запуска сочетания типа M-a M-e(переход в начало/конец строки) не обрабатываются(вставляются кракозябры). Лечится через C- -> meta sends escape, что не очень удобно делать каждый раз после запуска. Конечно, при использовании screen/tmux это отходит на второй план, ибо один раз multiplexor запустил и другого xterm особо не надо запускать, но бывает необходимость в новом окне.
Так вот наконец-то переборол лень и нашёл как это полечить: добавляем строку
Xterm*metaSendsEscape: true
в ~/.Xdefaults и запускаем
$ xrdb -merge ~/.Xdefaults
чтобы изменения вступили в силу. Теперь M-a M-e работает как ожидается. Также можно изменить размер шрифта по умолчанию, ибо маловат он: добавляем в тот же файл
XTerm*font: -misc-fixed-medium-*-*-*-*-*-*-*-*-90-iso10646-*
и обновляем настройки.
    • apt-file
Кстати говоря, нетбук не знал про команду xrdb, в отличие от десктопа. Что это за зверь поможет узнать apt-file (показывает какому пакету принадлежит файл). Устанавливается через
# aptitude install apt-file
Затем нужно обновить базу файлов:
$ apt-file update # обновит локальную для пользователя базу. можно использовать system-wide, если запускать от root
Затем ищем нужный пакет
$ apt-file find xrdb
и получаем x11-xserver-utils
  • synergy
В подкасте FLOSS Weekly рассказывали про довольно полезную утилиту synergy. Хотел ещё на OpenBSD попробовать, но не срослось(собрать из исходников): других проблем хватало. А в Debian она есть в репозитории -- чего бы не попробовать наконец? Скажу сразу: как говорили в подкасте "it's awesome!", реально!
Установка проста(как и многое в Debian :)):
# aptitude install synergy
Конфигурация заставила чуток порыться в интернете на предмет готовых конфигов. В итоге получился следующий конфиг:
section: screens
  newDesktop:
  eee1000:
end

section: aliases
  newDesktop:
    192.168.1.6
  eee1000:
    192.168.1.5
end

section: links
  newDesktop:
    left = eee1000

  eee1000:
    right = newDesktop
end

section: options
  screenSaverSync = false
end

Важно указать в "section: links" оба экрана, ибо иначе не заработает. Дальше просто создаём ~/.synergy.conf и запускаем(в моём случае сервером служит newDesktop) сервер и клиент:
ilya@newDesktop [~]$ synergys --config ~/.synergy.conf
ilya@eee1000 [~]$ synergyc --restart 192.168.1.6
И радуемся жизни. Почти. Переключение расладок у меня настроено на right alt, что не особо дружит с synergy: при курсоре на клиенте расладка переключается на сервере. Лечится это, похоже, сменой клавиши переключения раскладки, либо не достаточно гуглил :(
  • vsftpd
Ставится, опять же, элементарно:
# aptitude install vsftpd
Настраивается(для простого домашнего использования) так же элементарно:
разрешаем локальным пользователям входить(анонимам скажем нет) и подниматься не выше своего домашнего каталога в файле /etc/vsftpd.conf. В итоге, почти не изменённый конфиг(только разрешённые опции, без комментариев):

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
За большим в man 5 vsftpd.conf. Перезапускаем сервер и готово
# /etc/init.d/vsftpd restart
  • lighttpd + mercurial
Держать свой webserver довольно полезно бывает (мало-ли чего проверить надо, или вдруг стукнет webdev'ом побаловаться :)), а если ещё и mercurial repositories сервить у себя (хотя, после анонса unlimited private repositories, да ещё и с git это не особо актуально)... В общем, полезное это дело.
Ставим пакетики
# aptitude install lighttpd php5-cgi
Идём в конфиги и разрешаем userdir и cgi
# cd /etc/lighttpd/conf-enable 
# ln -s ../conf-available/10-cgi.conf
# ln -s ../conf-available/10-userdir.conf
Редактируем настройки того, что будет запускаться под cgi: разрешаем .py и .php.
Добавляем файл атентификации (для mercurial web server):
# cd /etc/lighttpd# touch lighttpd.auth.plain 
# chmod 640 lighttpd.auth.plain
# chown root:www-data lighttpd.auth.plain 
# echo "user:password" >> lighttpd.auth.plain
И, наконец, редактируем настройки самого сервера: весь конфиг на github.
Да, не забываем создать папочку /var/www/hg с файликами hgweb.config и hgwebdir.cgi и каталогом самих репозиториев. Более подробно это описано здесь.
Ну и конечно, нельзя забывать про права доступа для группы(хотябы) www-data, ибо и сам неоднократно напарывался на это. А каталог с репозиториями вообще лучше сделать собственностью www-data:
[/var/www/] # chown -R www-data:www-data hg
Перезапускаем lighttpd и радуемся :)

Потом ещё можно настроить dyndns (или что больше предпочтительно) и доступаться до репозиториев откуда угодно.

Ну вот минимум полезностей и есть. Дальше будем ещё что-нибудь настраивать, ибо всего за раз не настроишь.

2011-09-04

Debian 6 Squeeze on asus eeepc 1000

В nный раз ставлю Debian на нетбук и вот решил таки записать процесс установки и настройки.
По установке, собственно, сказать особо нечего, ибо процесс довольно тривиальный. Загрузочная флэшка из образа netinstall создаётся unetbootinом, загружается и устанавливается(инсталлер довольно интуитивен). Единственное, что несколько напрягает -- нет поддержки(по крайней мере в моём образе) wireless-адаптера(тот самый проблемный rt2860). Поэтому пришлось откопать eth-шнурок и цепляться к роутеру. Альтернатива могла быть в виде HTC с расшариванием wifi-connection, но зачем?
А вот настройку уже стоит описать на будущее(надеюсь, уже не понадобится), чтоб не ползать по сети в поисках.
  • rt2860
После перзагрузки первым делом надо поднять нормальную сеть. Идём в Debian wiki и прописываем репозиторий в /etc/apt/sources.list. Ставим firmware, wicd, поднимаем wlan0 и радуемся сети.
Теперь можно плюхнуться в любимое кресло и продолжить настройку.
  • console
Для начала настроим .bashrc. Для root'а утащим .bashrc конфиг из OpenBSD(предыдущий пост, с небольшими изменениями), ибо больше особо и не надо.
#
# color prompt
#

Color_Off='
\[\033[0m\]'       # Text Reset

# Regular Colors
Black='
\[\033[0;30m\]'        # Black
Red='\[\033[0;31m\]'          # Red
Green='\[\033[0;32m\]'        # Green
Yellow='\[\033[0;33m\]'       # Yellow
Blue='\[\033[0;34m\]'         # Blue
Purple='\[\033[0;35m\]'       # Purple
Cyan='\[\033[0;36m\]'         # Cyan
White='\[\033[0;37m\]'        # White

# Bold
BBlack='
\[\033[1;30m\]'       # Black
BRed='\[\033[1;31m\]'         # Red
BGreen='\[\033[1;32m\]'       # Green
BYellow='\[\033[1;33m\]'      # Yellow
BBlue='\[\033[1;34m\]'        # Blue
BPurple='\[\033[1;35m\]'      # Purple
BCyan='\[\033[1;36m\]'        # Cyan
BWhite='\[\033[1;37m\]'       # White

# color prompt
PS1="${BRed}\u@${BGreen}\h${BRed} [${BBlue}\W${BRed}]# ${White}"

#
# environment
#

export PAGER=less

#
# aliases
#

alias ls="ls --color"
alias less="less -R"
Ну и must have:  screen && emacs && mc && htop
# aptitude install screen emacs23-nox mc htop
И, конечно, синхронизация времени:
# aptitude install ntpdate
# crontab -e
и добавить
@daily /usr/sbin/ntpdate 0.pool.ntp.org
  • acpi support
pm-utils и fancontrol должны быть уже установлены, если была выбрана категория for laptops при установке. Для начала настроим fancontrol: запускаем
# pwmconfig
и подбираем уровень шума. Мой /etc/fancontrol:
# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=10
DEVPATH=hwmon0= hwmon1=devices/platform/eeepc
DEVNAME=hwmon0=acpitz hwmon1=eeepc
FCTEMPS=hwmon1/pwm1=hwmon0/temp1_input
FCFANS= hwmon1/pwm1=hwmon1/fan1_input
MINTEMP=hwmon1/pwm1=57
MAXTEMP=hwmon1/pwm1=63
MINSTART=hwmon1/pwm1=45
MINSTOP=hwmon1/pwm1=30
MINPWM=hwmon1/pwm1=28
MAXPWM=hwmon1/pwm1=225
Теперь перезапускаем демона
# /etc/init.d/fancontrol restart
и "enjoy the silence".
Теперь настроим acpi: надо поставить eeepc-acpi-scripts и aosd-cat. Причём eeepc-acpi заменят уже установленный acpi-support.
# aptitude install eeepc-acpi-scripts aosd-cat
 Чтобы заработали всплывающие уведомления нужно разрешить их в /etc/default/eeepc-acpi-scripts и создать файл ~/.Xauthority:
$ touch ~/.Xauthority
и конфиг (зелёным выделено то, что изменено относительно стандартного конфига):
ENABLE_OSD='yes'
OSD_FONT='DejaVuSans 36'
ENABLE_OSD_BRIGHTNESS='no'
SOUND_LABEL=
SOUND_SWITCH=
SOUND_SWITCH_EXCLUSIVE=
SOUND_PREFER_MASTER=yes
SOUND_VOLUME_STEP=
DETAILED_SOUND_INFO=no
VGA_ON='--auto'
LVDS_OFF='--off'
SUSPEND_METHOD=pm-suspend
SUSPEND_OPTIONS=--quirk-s3-bios
LOCK_SCREEN_ON_SUSPEND='yes'
LID_CLOSE_ACTION=
BLUETOOTH_FALLBACK_TO_HCITOOL='yes'
SOFTBTN1_ACTION='handle_blank_screen'
SOFTBTN2_ACTION='NONE'
SOFTBTN3_ACTION='handle_camera_toggle'
SOFTBTN4_ACTION='handle_bluetooth_toggle'
SOFTBTNSHE_ACTION='handle_shengine'
FnF_TOUCHPAD='handle_touchpad_toggle'
FnF_RESCHANGE='NONE'
FnF_BACKLIGHTOFF='handle_blank_screen'
FnF_VGATOGGLE='handle_vga_toggle'
FnF_TASKMGR='NONE'
FnF_MUTE='handle_mute_toggle'
FnF_VOLUMEDOWN='handle_volume_down'
FnF_VOLUMEUP='handle_volume_up'
PWR_CLOCK_AC=0
PWR_CLOCK_BATTERY=2
DEFAULT_SHENGINE_CONFIG=auto

Пришло время поднять Xы:
  • Xorg
Ставим базу:
# aptitude install xserver-xorg-video-intel xserver-xorg-input-synaptics xinit xterm
Получаем дефолтный конфиг
# X -configure
# cp xorg.conf.new /etc/X11/xorg.conf
И при попытке запуска xinit получаем ошибку no screens found. Пойдя по пути наименьшего сопротивления, перезагружаемся и получаем рабочие Xы (плюс нормальное разрешение консоли).
 Добавляем поддержку touchpad'а. Итоговый xorg.conf для eee pc 1000:
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice    "synaptics"
EndSection

Section "Files"
        ModulePath   "/usr/lib/xorg/modules"
        FontPath     "/usr/share/fonts/X11/misc"
        FontPath     "/usr/share/fonts/X11/cyrillic"
        FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
        FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
        FontPath     "/usr/share/fonts/X11/Type1"
        FontPath     "/usr/share/fonts/X11/100dpi"
        FontPath     "/usr/share/fonts/X11/75dpi"
        FontPath     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
        FontPath     "built-ins"
EndSection

Section "Module"
        Load  "glx"
        Load  "dbe"
        Load  "dri"
        Load  "extmod"
        Load  "dri2"
        Load  "record"
        Load  "synaptics"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

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


Section "InputDevice"
   Identifier  "synaptics"
   Driver      "synaptics"
   Option      "Device"                 "/dev/psaux"
   Option      "Protocol"               "auto-dev"
   Option      "PalmDetect"             "0"
   Option      "SHMConfig"              "true"
   Option      "SendCoreEvents"         "yes"
   Option      "RBCornerButton"         "0"
   Option      "RTCornerButtom"         "0"
   Option      "TapButton1"             "1"
   Option      "TapButton2"             "3" // right-click by two fingers
   Option      "TapButton3"             "2" // middle-click by three fingers
   Option      "AccelFactor"            "0.0320"
   Option      "MaxSpeed"               "0.72"
   Option      "MinSpeed"               "0.6"
   Option      "Emulate3Buttons"        "true"
   Option      "TouchPadOff"            "0"
   Option      "LBCornerButton"         "2"
   # Option      "LeftEdge"                     "60"
   # Option      "RightEdge"            "1070"
   # Option      "TopEdge"              "90"
   # Option      "BottomEdge"           "680"
   Option      "VertTwoFingerScroll"    "1"
   Option      "HorizTwoFingerScroll"   "1"
   Option      "HorizScrollDelta"       "20"
   Option      "VertScrollDelta"        "20"
   Option      "LockedDrags"            "1"
   # Option      "CoastingSpeed"                "0.13"
   # Option      "CircularScrolling"            "1"
   # Option      "CircScrollTrigger"            "8"     # 8=Top Left Corner
EndSection


Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: : integer, : float, : "True"/"False",
        ### : "String", : " Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "AccelMethod"               # []
        #Option     "DRI"                       # []
        #Option     "ColorKey"                  #
        #Option     "VideoKey"                  #
        #Option     "FallbackDebug"             # []
        #Option     "Tiling"                    # []
        #Option     "Shadow"                    # []
        #Option     "SwapbuffersWait"           # []
        #Option     "XvMC"                      # []
        #Option     "XvPreferOverlay"           # []
        #Option     "DebugFlushBatches"         # []
        #Option     "DebugFlushCaches"          # []
        #Option     "DebugWait"                 # []
        Identifier  "Card0"
        Driver      "intel"
        VendorName  "Intel Corporation"
        BoardName   "Mobile 945GME Express Integrated Graphics Controller"
        BusID       "PCI:0:2:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth    24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection
Ставим проверенный временем fluxbox и добавляем его в ~/.xinitrc:
exec startfluxbox
Вытаскиваем из backup конфиги и получаем привычное окружение.
В этот раз решил пойти на эксперимент и попробовать ещё раз wmii.

Так как в wmii нет systemtray, надо доставить stalonetray. И ещё индикатор раскладок xxkb:
# aptitude install stalonetray xxkb
Конфиг для xxkb:
XXkb.mainwindow.enable: no
XXkb.mainwindow.in_tray: no
XXkb.mainwindow.appicon: yes

XXkb.group.base: 1
XXkb.group.alt: 2

XXkb.mainwindow.image.1: en48.xpm
XXkb.mainwindow.image.2: ru48.xpm

XXkb.mainwindow.geometry: 48x48-50+5
! fluxbox
! XXkb.button.geometry: 15x15-50+5
! wmii
XXkb.button.geometry: 15x15-10+0
XXkb.app_list.wm_class_name.ignore: stalonetray

Так же понадобится screenlocker:
# aptitude install xautolock xtrlock
Из конфигов fluxbox вытаскивам строку
xautolock -secure -time 3 -locker "xtrlock" &
и добавляем в ~/.wmii/wmiirc для блокировки экрана через 3 минуты бездействия. xtrlock рисует замочек вместо указателя мыши в заблокированном режиме, а вот весь остальной экран видно.
Так. Вроде, основу установили-настроили. Теперь самое страшное.
  • шифрование /home
Когда я первый раз это дело настраивал, пользовался статьёй, которая теперь осталась только в google cache: вот тут. Собственно, её же опять и воспользуемся.
Ставим необходимые пакеты
# aptitude install cryptsetup mdadm lvm2
На /home у меня отведён целый диск(в eee1000 их два: 8G системный и 32G под данные, который у меня /home). Готовим шифрованный раздел:
# cd ~
# cryptsetup luksFormat /dev/sdb1 // обратить внимание на "Are you sure? (Type __uppercase__ yes):"
# cryptsetup luksDump /dev/sdb1 > slashhome
# cryptsetup luksOpen /dev/sdb1 luks // открываем раздел
# mkfs.ext4 -L home /dev/mapper/luks // создаём файловую систему
редактируем /etc/crypttab:
luks /dev/disk/by-uuid/<здесь UUID из /root/slashhome> none luks
редактируем /etc/fstab:
/dev/mapper/luks /home ext4 defaults 0 0
тестируем файловую полученный результат:
# cd /mnt
# /etc/init.d/cryptdisks restart // вводим пароль, когда спросит
# mount /dev/mapper/luks tmp/
# cd tmp/
# touch test
Вот и всё. Можно перемонтировать(или перезагрузиться и оно само смонтируется куда надо) на /home и наинать заливать backup, дабы получить домашний каталог как до эксперементов.
Теперь точно всё с базовой системой. Оставщийся прикладной софт уже устанавливается исходя из потребностей.