Настройка Debian "для себя"

Intro

Конспект на тему установки и настройки Debian. После того, как HDD ушел в небытие, а забекаплены были только пользовательские данные, пришлось вспоминать что и где подкручивать после установки. Использовался дистрибутив Lenny, хотя это не принципиально.

Установка с CD/DVD

При установке лучше использовать текстовый режим. Если маленький диск, то отделить home, иначе сделать раздельные /var, /tmp и так далее.
Что ставить:

  • Desktop environment
  • Laptop (если установка на laptop)
  • Standard system

После установки проверить/изменить /etc/apt/sources.list, должно быть что-то вроде:
deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 DVD Binary-1 20090214-16:54]/ lenny contrib main

deb http://security.debian.org/ lenny/updates main contrib
deb-src http://security.debian.org/ lenny/updates main contrib

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib
   
Если сеть хорошая и быстрая, то добавляем вот такую строчку в этот файл:
deb http://ftp.debian.org/ lenny contrib main non-free
                           ^^^^^ имя дистрибутива
   
И потом обновить список пакетов
# apt-get update
   

Проверить и установить часовой пояс
# time-admin
   

Разбираемся с локалями (по умолчанию ставим en_US.ISO-8859-1):
# dpkg-reconfigure locales                                                                              
Generating locales (this might take a while)...
  en_US.ISO-8859-1... done
  en_US.UTF-8... done
  ru_RU.KOI8-R... done
  en_US.UTF-8... done
Generation complete.      
   

Удобный вид prompt в bash'е, /etc/bashrc-prompt:
bash_prompt() {

    local NONE="\[\033[0m\]"    # unsets color to term's fg color

    local K="\[\033[0;30m\]"    # black
    local R="\[\033[0;31m\]"    # red
    local G="\[\033[0;32m\]"    # green
    local Y="\[\033[0;33m\]"    # yellow
    local B="\[\033[0;34m\]"    # blue
    local M="\[\033[0;35m\]"    # magenta
    local C="\[\033[0;36m\]"    # cyan
    local W="\[\033[0;37m\]"    # white
   
    # emphasized (bolded) colors
    local EMK="\[\033[1;30m\]"
    local EMR="\[\033[1;31m\]"
    local EMG="\[\033[1;32m\]"
    local EMY="\[\033[1;33m\]"
    local EMB="\[\033[1;34m\]"
    local EMM="\[\033[1;35m\]"
    local EMC="\[\033[1;36m\]"
    local EMW="\[\033[1;37m\]"
    # background colors
    local BGK="\[\033[40m\]"
    local BGR="\[\033[41m\]"
    local BGG="\[\033[42m\]"
    local BGY="\[\033[43m\]"
    local BGB="\[\033[44m\]"
    local BGM="\[\033[45m\]"
    local BGC="\[\033[46m\]"
    local BGW="\[\033[47m\]"

    if test x$WINDOW != x; then
            WID="[$WINDOW]"
    fi  

    case "$TERM" in
    xterm|xterm-color|linux|screen|rxvt)
        if [ `id -u` -eq 0 ]; then
                PS1="${EMR}`whoami`${M}@${EMG}`/bin/hostname`${Y}${BGB}${WID}${NONE}:${C}\w${NONE}#"
        else
                PS1="${Y}`whoami`${M}@${EMG}`/bin/hostname`${Y}${BGB}${WID}${NONE}:${C}\w${NONE}>"
        fi
        ;;
    *)
        if [ `id -u` -eq 0 ]; then
                PS1="`whoami`@\h${WID}: \w#"
        else
                PS1="`whoami`@\h${WID}: \w>"
        fi
    ;;
esac
}


bash_prompt
   
Подключаем этот файл в ~/.bashrc:
...
if [ -f /etc/bashrc-prompt ]; then 
        . /etc/bashrc-prompt
fi
...
   
Sudo, правим /etc/sudoers:
...
username    ALL=NOPASSWD: ALL
^^^^^^^^ - пользователь
...
   

Дополнительные пакеты

Далее доставить пакеты, мой суповой набор вот такой (просто набираем из под рута в консоли):
apt-get install mc
apt-get install screen
apt-get install sendmail
apt-get install sendmail-base
apt-get install sendmail-bin
apt-get install sendmail-cf
apt-get install sendmail-bin
apt-get install sendmail
apt-get install emacs
apt-get install gimp
apt-get install gcc
apt-get install automake
apt-get install autoconf
apt-get install make
apt-get install libtool
apt-get install xutils-dev
apt-get install xutils-dev
apt-get install libx11-dev
apt-get install libxdmcp-dev
apt-get install libxt-dev
apt-get install x11proto-xext-dev
apt-get install libxext-dev
apt-get install libxmu-dev
apt-get install libxmuu-dev
apt-get install libxpm4
apt-get install libxpm-dev
apt-get install libxext-dev
apt-get install libxtst-dev
apt-get install aumix
apt-get install openvpn
apt-get install gcc-3.4
apt-get install dosbox
apt-get install libgtk2.0-dev
apt-get install libexif12 
apt-get install exiv2
apt-get install sqlite
apt-get install mplayer
apt-get install dia
apt-get install ppp
apt-get install evince
apt-get install libdjvulibre21
apt-get install libdjvulibre-desktop
apt-get install djvulibre-desktop
apt-get install libsmbclient
apt-get install liblcms1-dev
apt-get install libbz2-dev
apt-get install libqt3-mt-dev
apt-get install imagemagick
apt-get install libgraphicsmagick++1-dev
apt-get install libgraphicsmagick1-dev
apt-get install libmagick++9-dev
apt-get install libmagick++10
apt-get install libmagick++9-dev
apt-get install libmagick9-dev
apt-get install libavcodec51
apt-get install libavcodec-dev
apt-get install libavformat-dev
apt-get install libswscale-dev
apt-get install libfftw3-3
apt-get install libopenexr-dev
apt-get install libopenexr6
apt-get install openexr
apt-get install cmake
apt-get install linux-headers-2.6-686 
apt-get install linux-kbuild-2.6.26
apt-get install kernel-package
apt-get install rpm
apt-get install cpp-3.4
apt-get install gcc-3.4
apt-get install linux-kbuild-2.6.26
apt-get install bind9
apt-get install libart-2.0-2
apt-get install libart-2.0-dev
apt-get install libtiff4-dev
apt-get install libexif-dev
apt-get install minicom
apt-get install scribus
apt-get install qcad
apt-get install ffmpeg
apt-get install libsamplerate0
apt-get install libsndfile1-dev
apt-get install sndfile-programs
apt-get install libncurses5-dev
apt-get install libasound2-dev
apt-get install libmikmod2-dev
apt-get install cvs
apt-get install subversion-tools
apt-get install manpages-dev (набрать потом manpath и посмотреть как установлена!)
   

Иксы и Window Manager

GNOME хорош только для настройки, выставляем в нем необходимое разрешение экрана и делаем автологин нужного юзверя.
Далее переходим на fvwm. Разворачиваем исходники fvwm-1.24r.tar.gz и далее
# xmkmf -a && make && sudo make install
   
Копируем /usr/lib/X11/fvwm --> /usr/local/fvwm/modules, забираем иконки для fvwm.
В ~/.xsession пишем
xset b 0 0 0
xhost +localhost
aumix -L
exec fvwm
   
и
$ ln -s .xsession .xinitrc
   
Теперь можно запустить fvwm и распрощаться с GNOME.

Два монитора

Смотрим что на каком разрешении работает (звездочкой отмечено):
$ xrandr
...
VGA connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024      60.0*+   75.0     59.9     60.0* 
   1600x1024      60.0  
...
LVDS connected 1400x1050+1280+0 (normal left inverted right x axis y axis) 286mm x 214mm
   1400x1050      60.0*+   50.0  
   1280x800       60.0  
...
TMDS-1 disconnected (normal left inverted right x axis y axis)
TV disconnected (normal left inverted right x axis y axis)
   

Слева имеем внешний монитор, справа бучный экран. Суммарное разрешение 2680x1050 (1280+1400=2680). Правим /etc/X11/xorg.conf:
Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"

SubSection "Display"
 Virtual 2680 1050
EndSubSection
^^^^^^^^^^^^^^^^^^^^^^ - добавляем вот эту SubSection

EndSection
   
После этого в консоле
$ xrandr --output VGA --mode 1280x1024 --pos 0x0 \
  --output  LVDS --mode 1400x1050 --right-of  VGA --pos  1280x0
   
Необходимо перезапустить fvwm после такой операции.

Русский язык

Удобно, когда при смене системы шрифты не меняются, поэтому забираем шрифты и распаковываем в
/usr/X11R6/lib/X11/fonts, далее правим /etc/X11/xorg.conf:
Section "Files"
   RgbPath "/etc/X11/rgb.txt"
   FontPath   "/usr/X11R6/lib/X11/fonts/misc-koi:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/misc-cp1251:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/75dpi-koi:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/75dpi-cp1251:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/misc"
   FontPath   "/usr/X11R6/lib/X11/fonts/75dpi"
   FontPath   "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/Type1"
   FontPath   "/usr/X11R6/lib/X11/fonts/Speedo"
   FontPath   "/usr/X11R6/lib/X11/fonts/Truetype"
   FontPath   "/usr/X11R6/lib/X11/fonts/unicode"
   FontPath   "/usr/X11R6/lib/X11/fonts/unicode-ttf"
EndSection
   
Клавиатурные раскладки. Из-за необходимости KOI8-R одним xkbmaps не обойтись.
Ставим xbindkeys (./configure && make && sudo make install) и xxkb(xmkmf -a ; make -k; sudo cp xxkb /usr/local/bin).

В ~/.xbindkeysrc пишем
# keyboard switch
"xmodmap $HOME/Xmodmap-koi8 &"
alt + 1

"setxkbmap ru &"
alt + 2

"setxkbmap fi &"
alt + 3
   
Xmodmap-koi8:
clear shift
clear control
clear mod1
clear mod2
clear mod3
clear mod4

!       Key       Base            Shift           Caps    ShiftCaps
!------------------------------------------------------------------------
keycode  9      = Escape          NoSymbol        Escape
keycode 10      = 1               exclam          1           exclam
keycode 11      = 2               at              2           quotedbl
keycode 12      = 3               numbersign      3           grave
keycode 13      = 4               dollar          4           asterisk
keycode 14      = 5               percent         5           colon
keycode 15      = 6               asciicircum     6           comma
keycode 16      = 7               ampersand       7           period
keycode 17      = 8               asterisk        8           semicolon
keycode 18      = 9               parenleft       9           parenleft
keycode 19      = 0               parenright      0           parenright
keycode 20      = minus           underscore      minus   underscore
keycode 21      = equal           plus            equal   plus
keycode 22      = BackSpace       NoSymbol        BackSpace
keycode 23      = Tab             NoSymbol        Tab
keycode 24      = q               Q               0xca    0xea
keycode 25      = w               W               0xc3    0xe3
keycode 26      = e               E               0xd5    0xf5
keycode 27      = r               R               0xcb    0xeb
keycode 28      = t               T               0xc5    0xe5
keycode 29      = y               Y               0xce    0xee
keycode 30      = u               U               0xc7    0xe7
keycode 31      = i               I               0xdb    0xfb
keycode 32      = o               O               0xdd    0xfd
keycode 33      = p               P               0xda    0xfa
keycode 34      = bracketleft     braceleft       0xc8    0xe8
keycode 35      = bracketright    braceright      0xdf    0xff
keycode 36      = Return          NoSymbol        Return
keycode 38      = a               A               0xc6    0xe6
keycode 39      = s               S               0xd9    0xf9
keycode 40      = d               D               0xd7    0xf7
keycode 41      = f               F               0xc1    0xe1
keycode 42      = g               G               0xd0    0xf0
keycode 43      = h               H               0xd2    0xf2
keycode 44      = j               J               0xcf    0xef
keycode 45      = k               K               0xcc    0xec
keycode 46      = l               L               0xc4    0xe4
keycode 47      = semicolon       colon           0xd6    0xf6
keycode 48      = apostrophe      quotedbl        0xdc    0xfc
keycode 49      = grave           asciitilde      0xa3    0xb3
keycode 51      = backslash       bar             backslash bar
keycode 52      = z               Z               0xd1    0xf1
keycode 53      = x               X               0xde    0xfe
keycode 54      = c               C               0xd3    0xf3
keycode 55      = v               V               0xcd    0xed
keycode 56      = b               B               0xc9    0xe9
keycode 57      = n               N               0xd4    0xf4
keycode 58      = m               M               0xd8    0xf8
keycode 59      = comma           less            0xc2    0xe2
keycode 60      = period          greater         0xc0    0xe0
keycode 61      = slash           question        slash   question
keycode 64      = Alt_L
keycode 65      = space           NoSymbol        space
!keycode 66      = Caps_Lock       0x1007ff01
keycode 67      = F1
keycode 68      = F2
keycode 69      = F3
keycode 78      = Mode_switch
keycode 109     = Control_R
keycode 114     = Control_R
keycode 113     = Alt_R
keycode 116     = Meta_L

add shift   = Shift_L Shift_R
add control = Control_L Control_R
add mod1    = Alt_L Alt_R Meta_L
add mod2    = Num_Lock
   
Правим /etc/X11/xorg.conf:
#Option         "XkbLayout"     "us"
 ^^^^^^^^^^^^^ закомментировать
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:lwin_toggle"
   
И добавить в ~/.xsesstion
xmodmap Xmodmap-koi8
/usr/local/bin/xbindkeys &
/usr/local/bin/xxkb &
   
Теперь при нажатии Alt-1 можно использовать Latin-Rus(KOI8-R) раскладку (переключение левой winkey), ALT-2 - "честный" русский через xkbmap и Alt-3 - финская раскладка с умлаутами.

Маленькие, но крайне удобные штуки

  • recode, перекодировщик WIN-ALT-KOI (gunzip recode2.c.gz; gcc -Wall -o recode recode2.c; sudo cp recode /usr/local/bin)
  • calc, удобный калькулятор для расчетов и перевода HEX-BIN-DEC (make && find . -type f -name calc -exec sudo cp {} /usr/local/bin \;)

Разные кулинарные рецепты

Screen, Ctrl-A по умолчанию конфликтует с readline, в ./.bashrc:
alias screen='screen -h 1000 -ln -e^Bb'
   
Теперь в screen используется Ctrl-B и буфер на последние 1000 строк.

Samba, некоторые программы, использующие lock некорректро наботают на самбовских шарах, монтируем вот так (или правим /etc/fstab):
/bin/mount //1.1.1.1(IP)/share /mnt/куда \
  -o nobrl,username=юзверь,password=пароль,gid=1000,uid=1000,fmask=0644
                                            ^^^^^ вот эта фишка!
gig/uid ставим реальные, нерутового пользователя
   
Теперь все будет нормально работать.

Флешки, правим /etc/fstab:
/dev/sdc1       /mnt/flash/cf   vfat user,gid=1000,uid=1000,fmask=0113 0 0
^^^^^^^^^ можно спросить fdisk -l и узнать имя устройства
   
Теперь все perms в норме.

Как закриптовать внешний USB HDD

После подключения смотрим имя устройства для нового диска:
$ fdisk -l

Disk /dev/sdb: 1000.2 GB, bla-bla-bla...
...
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      121601   976760001   83  Linux
^^^^^^^^^ опа, вот это и есть имя устройства для нового терабайтного диска! 
   
Разбираемся с диском:
# cryptsetup -c aes luksFormat /dev/sdb1
вводим passphrase и все прочее...

затем

# cryptsetup luksOpen /dev/sdb1 usbhdd1
и

# mkfs -t ext3 /dev/mapper/usbhdd1
   
Теперь монтировать диск можно таким образом (делаем alias):
cryptsetup luksOpen /dev/sdb1 usbhdd1 ; mount /dev/mapper/usbhdd1 /mnt/куда-то там
   

Заключение (на веселой ноте ;) )

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

Tags: debian linux


Назад


[Home] [TTL] [Unix] [Sdictionary] [ROW Programmer] [Symbian] [Misc] [News] [Search] [Contacts] [Guestbook]


Copyright (c) 1999-2017 Alexey Semenoff