Debian,


引用:http://www.baike.com/wiki/Debian

广义的Debian计划 是指一个致力于创建自由操作系统的合作组织,Debian开发者所创建的操作系统中绝大部分基本工具来自于GNU工程 ,因此其开发者将它们命名为Debian GNU/Hurd和Debian GNU/Linux,这些工具同样都是自由的。

编辑摘要

目录

[ 隐藏 ]
1 Debian简介
2 版本记录
3 软件管理
4 中文设置
  1. 4.1 中文显示
  2. 4.2 中文输入
5 精简桌面
  1. 5.1 一,虚拟机安装
  2. 5.2 二,实体机安装
  3. 5.3 三,关于桌面环境
6 常见问题
  1. 6.1 一,32位<—>64位
  2. 6.2 二,BASH提示符
  3. 6.3 三,MPlayer设置
  4. 6.4 四,GRUB相关
7 杂七杂八
  1. 7.1 一,常用引导方式
  2. 7.2 二,~/.fonts.config
  3. 7.3 三,基本的~/.vimrc
  4. 7.4 四,WINE相关
  5. 7.5 五,debootstrap相关
  6. 7.6 六,自己编译内核

Debian - Debian简介

广义的Debian计划 是指一个致力于创建自由操作系统的合作组织,Debian开发者所创建的操作系统中绝大部分基本工具来自于GNU工程 ,因此其开发者将它们命名为Debian GNU/HurdDebian GNU/Linux,这些工具同样都是自由的。

Debian Linux Release” 于1993年8月16日由当时还在美国普渡大学念书的 Ian Murdock首次发表,在定义文件 Debian Manifesto 中,Ian Murdock宣布本着GNU的开源精神发行一套自由的GNU/Linux发行版。Debian的名称是由他女友(现在为其妻子) Debra和 Ian Murdock自己的名字合并而成的,Debian的正式发音为[Deb'-ee-en]

Debian系统目前以Linux内核为主,Linux是一个最初由 Linus Torvalds创建,目前由全球成千上万的程序员维护的软件。然而,让Debian支持其他内核的工作也在进行,最主要的就是HurdHurd是一组微内核上运行的提供各种不同功能的守护进程,Hurd是由GNU所设计的自由软件。

其他内核分支还有Debian GNU/Minix、Preventa(Minix3内核)、Debian GNU/NetBSD、Dyson(Illumos kernel、libc以及SMF和Debian userland)、Debian GNU/kFreeBSD等。

Debian - 版本记录

Debian的发行及其软件源有三个分支:稳定分支(stable)、测试分支(testing)、不稳定分支(unstable)。目前的稳定分支即squeeze,测试分支即wheezy,而不稳定分支则一直为sid。到目前为止所有开发代号均出自Pixar的电影《玩具总动员》。

  一般而言,新入源的软件必须经过unstable分支,然后进入testing分支,接着才可以进入stable分支。简单地说,unstable分支的软件新于testing分支,而testing分支的软件新于stable分支。

Debian GNU/Hurd 沿袭以上规则,并将与Debian GNU/Linux 版本号一致。Debian以稳定性著称,不稳定分支并不意味着软件稳定性不佳,桌面用户选择不稳定分支较好。

 

Debian GNU/Linux历史版本一览表

版本号以及代号

发布日期

玩具总动员的对应角色

主要特点

0.01至0.91

1993年8月至1994年1月

 

 

0.93R5

1995年3月

 

 

0.93R6

1995年11月

 

 

1.1 Buzz

1996年6月17日

巴斯光年

使用Linux内核2.0

1.2 Rex

1996年12月12日

暴龙

 

1.3 Bo

1997年6月2日

放羊的女孩

 

2.0 Hamm

1998年7月24日

小猪扑满

 

2.1 Slink

1999年3月9日

玩具狗

APT问世

2.2 Potato

2000年8月15日

Potato Head先生

 

3.0 Woody

2002年7月19日

胡迪,电影主角之一的牛仔

 

3.1 Sarge

2005年6月6日

绿色塑胶玩具士兵的首领

 

4.0 Etch

2007年4月8日

玩具黑板

 

5.0.0 Lenny

2009年2月14日

望远镜

 

6 squeeze

2011年2月16日

三只眼睛的绿色大嘴玩具外星人

目前的稳定版本

7 wheezy

预计2013年初

一只带着领结的玩具企鹅

将ext4作为首选文件系统,其次ext3以及btrfs

sid

阿薛/席德,隔壁的男孩,玩具终结者

 

关于版本的几点说明:

1,GNU/Linux发行版本的意义不同于商业操作系统Windows。

GNU/Linux所使用的大部分软件更新很频繁,功能却几乎不变,所以两个不同版本号之间的功能差异不大,但是由于库文件特别是底层库文件版本差异却 不兼容。Debian有意避开没有意义的软件升级,对软件发行提出分支的概念,即稳定分支的底层库长期保持不变,只提供必要安全更新,只有当软件更新累计 到一定程度才考虑将当前不稳定分支作为稳定分支。这种策略有效地保证稳定分支真正的“稳定”,而不稳定分支依旧测试新软件带来的特性,以避免人力物力无意 义损耗,

2,应该用哪个版本?

Debian在相同架构及内核的情况下只有两个“版本”,即稳定分支和不稳定分支。稳定分支即stable,不稳定分支即sid和过渡分支testing,用户只须考虑用稳定分支还是用不稳定分支,选定软件分支后跟随官方升级即可。对于刚开始使用Debian的用户,对各个分支稍作比较后,下载对应分支最新安装介质安装即可。

Debian - 软件管理

APT 是dpkg的易用前端,负责已编译包或者源码包的安装、卸载、更新,它被认为是最优秀的软件包管理系统,也被认为是Debian系统先进特性之一,为 Debian的发展建立了坚实的应用基础。APT使用记录保存在/var/log/apt/history.log和/var/log/apt /term.log这两个文件中,/var/log/apt/history.log记录了APT执行的所有操作,而/var/log/apt /term.log记录了APT具体操作的执行过程。通过查看未经篡改的/var/log/apt/history.log,用户很容易追踪软件的使用情 况。

ATP以及dpkg常见用法如下:

 

APT——Advanced Package Tool

功能

具体语句

软件源设置

/etc/apt/sources.list

更新软件源数据

apt-get update

更新已安装软件

apt-get upgrade

更换系统版本到(需先将源换到目的版本源,相当于重装)

apt-get dist-upgrade

通过安装新软件修复依赖错误

apt-get -f install

搜索软件源数据

apt-cache search foo

安装软件

apt-get install foo

卸载软件

apt-get remove foo

卸载软件,同时清除该软件配置文件

apt-get --purge remove foo

删除不需要的包

apt-get autoclean

删除所有已下载的包

apt-get clean

自动安装编译一软件所需要的包

apt-get build-dep foo

dpkg——package manager for Debian

功能

具体语句

示例

显示DEB包信息

dpkg -I /path/to/foo_version-revision.deb

 

显示DEB包文件列表

dpkg -c /path/to/foo_version-revision.deb

 

安装DEB包

dpkg -i /path/to/foo_version-revision.deb

 

显示所有已安装软件

dpkg -l

 

显示已安装包信息

dpkg -s foo

只需获取软件可升级状态则dpkg –get-selections foo

显示已安装包文件列表

dpkg -L foo

 

卸载包

dpkg -r foo

 

卸载软件包并删除其配置文件

dpkg -P foo

 

重新配置已安装程序

dpkg-reconfigure foo

dpkg-reconfigure tzdata
dpkg-reconfigure locales

从源中编译一个软件流程(适用于少量代码改动或者配置修改)

功能

具体语句

示例

获取源码

apt-get source foo

apt-get source rox-filer

安装编译依赖

apt-get build-dep foo

apt-get build-dep rox-filer

解压源码

dpkg-source -x foo_version-revision.dec

dpkg-source -x rox_2.11-3.dsc

修改源码部分

 

vi ROX-Filer/src/main.c

创建包

cd foo-version 
dpkg-buildpackage -rfakeroot -b

cd rox-2.11 
dpkg-buildpackage -rfakeroot -b

修改软件可升级状态

echo -e "foo hold" | dpkg --set-selections

echo -e "rox-filer hold" | dpkg --set-selections

Debian - 中文设置

中文显示

安装常用字体

apt-get install xfonts-unifont ttf-wqy-zenhei

使用位图字体

ln -s /etc/fonts/conf.avail/70-yes-bitmaps.conf /etc/fonts/conf.d/70-yes-bitmaps.conf && rm /etc/fonts/conf.d/70-no-bitmaps.conf

终端显示调整

编辑 ~/.Xdefaults,添加

XTerm*background: grey20

XTerm*foreground: white

XTerm*faceName: unifont.pcf

XTerm*utf8Title: true

或者编辑 ~/.Xdefaults,添加

XTerm*background: grey20

XTerm*foreground: white

XTerm*faceName: DejaVu Sans Mono:pixelsize=13

XTerm*faceNameDoublesize: WenQuanYi Zen Hei Sharp:pixelsize=13

XTerm*utf8Title: true

 

中文输入

1、wheezy

apt-get install build-essential iso-codes libgtk+2.0-dev cmake intltool libxkbfile-dev libenchant-dev libicu-dev dbus-x11 libxml2-dev libdbus-1-dev libdbus-glib-1-dev libopencc-dev libgirepository1.0-dev gobject-introspection libgtk-3-dev

tar xf fcitx-4.2.6.1_dict.tar.xz

cd fcitx-4.2.6.1

cmake . -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_GTK3_IM_MODULE=on

make install(或者使用checkinstall生成软件包)

添加Fcitx启动,vi ~/.xinitrc,添加:

export LC_CTYPE=zh_CN.UTF-8

export XMODIFIERS=@im=fcitx

export GTK_IM_MODULE=fcitx

eval `dbus-launch --sh-syntax --exit-with-session`

exec fcitx &

2、squeeze

apt-get install build-essential iso-codes libgtk+2.0-dev cmake intltool libxkbfile-dev libenchant-dev libicu-dev dbus-x11 libxml2-dev libdbus-1-dev libdbus-glib-1-dev

tar xf fcitx-4.2.6.1_dict.tar.xz

cd fcitx-4.2.6.1

cmake . -DCMAKE_INSTALL_PREFIX=/usr

make install(或者使用checkinstall生成软件包)

添加Fcitx输入法模块:

gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules

添加Fcitx启动,vi ~/.xinitrc,添加:

export LC_CTYPE=zh_CN.UTF-8

export XMODIFIERS=@im=fcitx

export GTK_IM_MODULE=fcitx

eval `dbus-launch --sh-syntax --exit-with-session`

exec fcitx &

Debian - 精简桌面

重要提示:如果你愿意支持Debian项目的开发,请考虑购置并收藏CD/DVD套装!

 

一,虚拟机安装

由于GNU/Linux软件匮乏,而VMware(或者VirtualBox)提供了一个良好的虚拟环境,所以通过虚拟机使用Debian GNU/Linux是一个很好的选择。

VMware创 建新Debian 6虚拟机,虚拟磁盘设置4G左右即可,全部作为根分区。打开ftp://ftp.debian.org/debian/dists/sid/main /installer-amd64/current/images/netboot/mini.iso进入安装界面,根据提示安装完毕,重启进入 Debian GNU/Linux。

安装基本工具:

dhclient eth0

apt-get update

apt-get --purge remove vim-* && apt-get install vim-gtk

apt-get install xserver-xorg-input-evdev xserver-xorg-video-vmware xterm xinit build-essential linux-headers-$(uanme -r) libncurses5-dev kernel-package axel bc dos2unix gdb kvm

mount /dev/sr0 /mnt/

tar xf /mnt/VMwareTools-*.tar.gz -C .

vmware-tools-distrib/vmware-install。pl

umount /mnt

rm -rf vmware-tools-distrib

startx

安装Firefox:

axel -n 20 ftp://ftp.mozilla.org/pub/firefox/releases/latest/linux-x86_64/zh-CN/firefox-x.x.x.tar。bz2

tar xf firefox-x.x.x.tar.bz2 -C /XX/XX/

tar xf install_flash_player_11_linux_x86_64.tar.gz libflashplayer.so

mkdir -p ~/.mozilla/plugins/

mv libflashplayer.so ~/.mozilla/plugins/

#指定flash字体

   修改/etc/fonts/conf.d/49-sansserif.conf,将第三个<string>sans-serif< /string>改为<string>WenQuanYi Zen Hei Sharp</string>

#设置默认浏览器

  将 export BROWSER=/xx/xx/firefox/firefox 添至~/.xinitrc

#添加Firefox图标

vi ~/.local/share/applications/firefox.desktop

[Desktop Entry]

Type=Application

Name=Firefox

Exec=/xx/xx/firefox/firefox %F

Terminal=false

Icon=/xx/xx/firefox/icons/mozicon128.png

 

二,实体机安装

与虚拟机安装不同的是这里引导ISO(CD1较常用),并且显卡替换为实体机显卡,其余类似。毫无疑问,实体机中的Debian GNU/Linux性能将更强劲。 

 

三,关于桌面环境

一般情况下,直接使用官方CD中附带的完整桌面环境即可,比如GNOME和KDE。由于目前桌面环境集成度极低,即使如此还夹杂许多花瓶式软件,因此有必要选择简洁实用的桌面组合,比如openbox+spacefm和dwm+ranger。

  适于简洁桌面的一些常见软件有:虚拟终端xterm、下载工具axel和utorrent(闭源软件)、irc客户端chatzilla、办公软件libreoffice和zathura、图片查看以及处理软件feh和xpaint(功能稍强的有gimp)、集成开发环境eclipse、音乐播放器audacious、电影播放器mplayer。

Debian - 常见问题

一,32位<—>64位

32位编译运行64位程序(非GUI)

apt-get install libc6-dev-amd64 lib64stdc++6 lib64ncurses5

64位编译运行32位程序(非GUI)

apt-get install libc6-dev-i386 lib32stdc++6 lib32ncurses5

 

二,BASH提示符

一个显示当前绝对路径的例子

export PROMPT_COMMAND='echo -ne "\e[1m\e[31m${PWD} \e[32m$(date +%H:%M:%S\ %u\ %d/%m)\e[0m\n"' #添至~/.xinitrc、~/.bashrc等文件

export PS1="" #添至~/.bashrc

 

三,MPlayer设置

  修改~/.mplayer/config

ao=alsa

af=volnorm,volume=5

font="WenQuanYi Zen Hei Sharp"

subcp=utf8

 

四,GRUB相关

1、取消GRUB恢复模式菜单项

vi /etc/default/grub

  添加即注释选项

GRUB_DISABLE_RECOVERY="true"

2、引导MS-Windows

  编辑/etc/grub.d/40_custom

  添加

menuentry 'Microsoft Windows 8 Professional' {

set root='(hd0,msdos3)'

chainloader +1

}

  其中(hd0,3)表示第一块硬盘mbr分区表的第三分区,情况不同须修改,最后update-grub2。

当然也需要与MS-Windows时间一致

  ⒈squeeze

  编辑/etc/default/rcS,修改UTC为LOCAL

date -s "2012-12-31 07:30:00"(设置系统时间)

hwclock --systohc(将系统时间写入BIOS时钟)

  ⒉wheezy

  编辑 /etc/adjtime ,修改UTC为LOCAL

date -s "2012-12-31 07:30:00"(设置系统时间)

hwclock --systohc(将系统时间写入BIOS时钟)

3、GRUB壁纸

  最简单的做法是复制png、jpg等格式图片于/boot/grub/目录下,再update-grub2

Debian - 杂七杂八

由于许多Debian相关词条内容缺失,所以暂时添加一些繁琐的内容附在后面

 

一,常用引导方式

1、SYSLINUX

安装引导,以下三选一即可

  ①syslinux for vfat/ntfs GNU/Linux平台

fdisk /dev/sdX

syslinux -i -d/dir /dev/sdXn

cat mbr.bin > /dev/sdX

  注意激活syslinux安装文件夹所在分区 

  ②syslinux for fat16/fat32/ntfs Windows平台

syslinux -i -a -m -d/dir X:

  ③syslinux for ext2/ext3/ext4/btrfs(不支持开启压缩的btrfs文件系统) 仅GNU/Linux平台

fdisk /dev/sdX

mkdir -p /xxx/extlinux

extlinux -i /xxx/extlinux

cat mbr.bin > /dev/sdX

  注意激活extlinux安装文件夹所在分区 

复制文件:

  主要是chain.c32、memdisk和vesamenu.c32这三个文件,访问syslinux官方网站获取其他模块具体使用方法。 

编辑菜单:

TIMEOUT 300

UI vesamenu.c32

MENU BACKGROUND syslinux_splash.jpg

#引导vmlinuz和initrd.gz

LABEL Debian Installer/Rescuer

KERNEL /vmlinuz append initrd=/initrd.gz

#引导ISO镜像

LABEL Debian Installer/Rescuer

KERNEL memdisk raw iso append initrd=/debian-6.0.6-amd64-CD-1.iso

#引导软盘

LABEL Debian Installer/Rescuer

KERNEL memdisk append initrd=/*.*

#引导grub4dos

LABEL GRUB4DOS

KERNEL /grub.exe

2、GRUB2(速度慢,不灵活但功能全,适于硬盘主引导)

引导硬盘主系统菜单

menuentry 'Debian -- The Universal Operating System' {

set root='(hd0,msdos1)'

linux /vmlinuz root=/dev/sda1 ro quiet

initrd /initrd.gz

}

使用其他分区引导

menuentry 'Other Bootloader' {

set root='(hdX,msdosY)'

chainloader +1

}

安装至磁盘主引导或者分区引导

mkdir grub2u

mount -t ext4 /dev/sdXY grub2u/

grub-install --root-directory=grub2u/ --no-floppy /dev/sdX(Y)

vi grub2u/boot/grub/grub.cfg

 

二,~/.fonts.config

<fontconfig>

<match>

<test name="family"><string>sans-serif</string></test>

<edit name="family" mode="prepend" binding="strong">

<string>DejaVu Sans</string>

<string>WenQuanYi Zen Hei Sharp</string>

</edit>

</match>

<match>

<test name="family"><string>serif</string></test>

<edit name="family" mode="prepend" binding="strong">

<string>DejaVu Serif</string>

<string>WenQuanYi Zen Hei Sharp</string>

</edit>

</match>

<match>

<test name="family"><string>monospace</string></test>

<edit name="family" mode="prepend" binding="strong">

<string>DejaVu Sans Mono</string>

<string>WenQuanYi Zen Hei Mono</string>

</edit>

</match>

</fontconfig>

 

三,基本的~/.vimrc

color desert

set encoding=utf-8

set fileencoding=utf-8

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

set history=1000

set hlsearch

set linespace=1

set list

set listchars=tab:▸\ ,eol:¬

set mouse=a

set nobackup

set nocompatible

set number

set ruler

set termencoding=utf-8

syntax on

if has("gui_running")

set lines=30 columns=90

set guifont=unifont.pcf

endif

 

四,WINE相关

WINE较新版本无需设置即可良好地显示中文,较老版本需要较多的设置工作。目前在GNU/Linux平台上出现了一些游戏,但是没有可玩性,所以主要还是模拟器游戏(包括MAME)。另外,官方WINE可以完美运行CS1.6以及WoW等游戏,效果与Windows平台相差无几。

MAME简单用法:

mkdir -p ~/.mame/roms

cp *.zip ~/.mame/roms

cd ~/.mame/roms/

/usr/games/mame -createconfig

vi mame.ini

添加脚本sdlmame以便于使用

#!/bin/bash

cd ~/.mame/roms/

if [ -z "$1" ]

then

nohup /usr/games/mame -video soft -window -resolution 700x490 kof97.zip > /dev/null 2>&1 &

else

nohup /usr/games/mame -video soft -window -resolution 700x490 "$1" > /dev/null 2>&1 &

fi

exit 0

  进入MAME后,先用Tab键设置按键。运行ROM时,sdlmame xxx.zip即可。

 

五,debootstrap相关

用于Debian系统安装程序第一阶段,所以支持Debian全系列内核,但是对于一个具体的平台来说,只能安装与当前内核相同架构的Debian系统(64位系统安装32位库后支持32位)。

  最大的用处是获取选定分支最新软件包重装系统,类似网络安装。

简单使用流程如下(安装一个amd64架构、sid分支Debian GNU/Linux基础系统):

Debian家族操作系统apt-get install debootstrap即可使用,非Debian家族操作系统或者不想安装该软件

git clone git://git.debian.org/d-i/debootstrap.git

cd debootstrap

make

vi debootstrap

修改

if [ -x /debootstrap/debootstrap ];then

DEBOOTSTRAP_DIR=/debootstrap

if [ -x debootstrap ];then

DEBOOTSTRAP_DIR=./

debootstrap --arch amd64 sid sid-dir ftp://ftp.debian.org/debian/ #获取基础系统,大约260MB,其中/var/cache/apt/archivers/目录下保存的deb包占60MB,然后打包保存

cd sid-dir

tar -cf sid-dir.tar *

mount -t ext4 /dev/sda1 /mnt

tar xf sid-dir.tar -C /mnt/

mount -t ext4 /dev/sda2 /mnt/home

mount --bind /dev /mnt/dev #chroot

mount -t tmpfs /tmp /mnt/tmp

mount -t proc /proc /mnt/proc

mount -t sysfs /sys /mnt/sys

chroot /mnt /bin/bash

apt-get install linux-image-amd64 #安装内核,注意别选PREEMPT_RT,即带“rt”字样内核。使用自己编译内核见“六,自己编译内核”相关内容。

passwd root #root密码

apt-get install locales #locale设置

vi /etc/locale.gen #找到zh_CN.UTF-8,去掉前面的“#”

locale-gen

echo "export TZ='Asia/Chongqing'" > /root/.xinitrc #时区设置

echo GNU > /etc/hostname #主机名以及相关hosts设置

echo "127.0.0.1 GNU" >> /etc/hosts

apt-get install grub2 #添加引导管理器GRUB

修改 /etc/fstab

/dev/sda1 / ext4 defaults 0 1

/dev/sda2 /home ext4 defaults 0 2

tmpfs /tmp tmpfs size=2048m 0 0

 

六,自己编译内核

即使自编译内核能很好地使用,也不要破坏官方内核,甚至删除官方内核

  最大的用处是启用某些不常见驱动,完全编译耗时70分钟左右,使用官方配置文件耗时30分钟左右。

tar xf linux-x.x.x.tar.xx

cd linux-x.x.x

cp config-x.x.x .config

apt-get install build-essential libncurses5-dev

make menuconfig

几个常见用法:

   ① make localmodconfig #将取消当前未加载的模块。一般喜好精简的人可以做这一步,但是做完这步依旧有许多用不到的模块或特性未取消,而有些必须的模块或者特性并未选中。因为当 前内核加载的模块并非包含所有将会使用到的模块,所以在这之后一定要再查看是否缺少必要的模块,比如loop设备驱动没编译将无法使用“mount -o loop”。

  最终生成的精简内核DEB包在3MB左右,编译耗时十分钟以内。需要注意的是,即使是高度精简内核也不可能超越官方内核,这点无需怀疑。

  ② sed -i 's/=m/=y/g' .config #将设备驱动等全部编译进内核,不生成可加载模块。

  ③ 编译创建DEB包(方式很多,常见的两个如下)

  Ⅰ apt-get install kernel-package

kernel-packageconfig

make-kpkg -j20 --zimage --initrd --revision=1 kernel_image modules_image

dpkg -i ../linux-image-x.x.x_1_arch.deb

  Ⅱ make -j20 deb-pkg # -j20指20个cc进程同时工作,根据硬件条件修改,与官方包有冲突,不推荐。

相关内容