Debian
引用:http://www.baike.com/wiki/Debian
广义的Debian计划 是指一个致力于创建自由操作系统的合作组织,Debian开发者所创建的操作系统中绝大部分基本工具来自于GNU工程 ,因此其开发者将它们命名为Debian GNU/Hurd和Debian GNU/Linux,这些工具同样都是自由的。
编辑摘要广义的Debian计划 是指一个致力于创建自由操作系统的合作组织,Debian开发者所创建的操作系统中绝大部分基本工具来自于GNU工程 ,因此其开发者将它们命名为Debian GNU/Hurd和Debian 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支持其他内核的工作也在进行,最主要的就是Hurd,Hurd是一组微内核上运行的提供各种不同功能的守护进程,Hurd是由GNU所设计的自由软件。
其他内核分支还有Debian GNU/Minix、Preventa(Minix3内核)、Debian GNU/NetBSD、Dyson(Illumos kernel、libc以及SMF和Debian userland)、Debian GNU/kFreeBSD等。
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的用户,对各个分支稍作比较后,下载对应分支最新安装介质安装即可。
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 |
从源中编译一个软件流程(适用于少量代码改动或者配置修改)
功能 |
具体语句 |
示例 |
---|---|---|
获取源码 |
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 |
cd rox-2.11 |
修改软件可升级状态 |
echo -e "foo hold" | dpkg --set-selections |
echo -e "rox-filer hold" | dpkg --set-selections |
中文显示
安装常用字体
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项目的开发,请考虑购置并收藏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。
一,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相关词条内容缺失,所以暂时添加一些繁琐的内容附在后面
一,常用引导方式
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进程同时工作,根据硬件条件修改,与官方包有冲突,不推荐。