Debian

来源:互联网 发布:淘宝权在哪里直播间 编辑:程序博客网 时间:2024/04/26 06:30

Debian是一款能安装在计算机上使用的操作系统 (OS)。操作系统就是能让您的计算机工作 的一系列基本程序和实用工具。由于 Debian 采用了 Linux Kernel (操作系统的核心),但是大部分基础的操作系统工具都来自于 GNU 工程, 因此又称为 GNU/Linux。Debian GNU/Linux 附带了超过 29000 个软件包,这些预先编译好的软件被包裹成一种良好的格式以便于在您的机器上进行安装。让 Debian 支持其他内核的工作也正在进行,最主要的就是 Hurd。Hurd 是一组在微内核 (例如 Mach) 上运行的提供各种不同功能的守护进程

 

Debian简介Debian-OpenLogo(2张)广义的 Debian 是指一个致力于创建自由操作系统的合作组织,由于Debian项目众多内核分支中以 Linux 宏内核为主,而且 Debian开发者 所创建的操作系统中绝大部分基础工具来自于GNU 工程 ,因此 “Debian” 常指Debian GNU/Linux 。
非官方内核分支还有Preventa(Minix3微内核)、Dyson(Illumos混合内核)等。这些非官方分支都存在一些严重的问题,观赏性大于实用性,比如Minix3或者Hurd微内核在技术上不成熟,而Dyson则基础功能仍不完善。
“Debian” 正式发音为 /?d?.bi.?n/ ,Debian 是国际化协作项目,官方未指定任何非英文名称。
编辑本段版本记录Debian的发行及其软件源有五个分支:旧稳定分支(oldstable)、稳定分支(stable)、测试分支(testing)、不稳定分支(unstable)、实验分支(experimental)。
当前的稳定分支即squeeze(即下一个旧稳定分支),测试分支即wheezy(即下一个稳定分支),所有开发代号均出自Pixar的电影《玩具总动员》。
Debian GNU/Linux历史版本一览表版本号以及代号发布日期玩具总动员的对应角色主要特点
0.01至0.911993年8月至1994年1月


0.93R51995年3月


0.93R61995年11月


1.1 Buzz1996年6月17日 巴斯光年 使用Linux内核2.0
1.2 Rex1996年12月12日暴龙

1.3 Bo1997年6月2日放羊的女孩

2.0 Hamm1998年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 Sarge2005年6月6日绿色塑胶玩具士兵的首领

4.0 Etch2007年4月8日玩具黑板

5.0.0 Lenny2009年2月14日 望远镜

6 squeeze 2011年2月16日 三只眼睛的绿色大嘴玩具外星人当前的稳定分支
7 wheezy预计2013年初一只带着领结的玩具企鹅

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

编辑本段软件管理一,APT以及dpkg常见用法如下: 
功能具体语句
软件源设置/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
APT——Advanced Package Tool 功能具体语句示例
显示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 foodpkg-reconfigure tzdata
dpkg-reconfigure locales
dpkg——package manager for Debian从软件源中编译软件流程(适用于少量代码改动或者配置修改)功能具体语句示例
获取源码apt-get source fooapt-get source rox-filer
安装编译依赖apt-get build-dep fooapt-get build-dep rox-filer
解压源码dpkg-source -x foo_version-revision.dscdpkg-source -x rox_2.11-3.dsc
修改源码部分
vi ROX-Filer/src/main.c
创建包cd foo-version
dpkg-buildpackage -rfakeroot -bcd rox-2.11
dpkg-buildpackage -rfakeroot -b
修改软件可升级状态echo -e "foo hold" | dpkg --set-selectionsecho -e "rox-filer hold" | dpkg --set-selections

二,用dpkg解包打包(或者修改包)的简单用法
1,新建必要文件control
mkdir-p dirname/DEBIAN(dirname名随意,将生成的usr bin lib之类的文件复制到dirname目录下,dirname/为伪根目录)
编辑dirname/DEBIAN/control,最简陋的格式如下:
Package:foo
Version: version-revision
Architecture: amd64
Maintainer: xxx
Priority: extra
Description: xxx
2,生成DEB包
dpkg -b dirname foo_version-revision_arch.deb (为了便于管理包名应遵循DEB包命名格式)
3,解压DEB包安装文件部分
mkdir newpkg && dpkg -X foo_version-revision_arch.deb newpkg/
4,解压DEB包控制信息部分
mkdir newpkg && cd newpkg && dpkg -e ../foo_version-revision_arch.deb
5,用ar命令解压DEB包
mkdir newdir
cd newdir && ar x foo_version-revision_arch.deb
三,添加常用软件管理命令简短别名
软件管理是一个现代操作系统的基本功能,使用十分频繁,因此有必要设置简短的别名,仅字符界面有效添至~/.profile,仅图形界面有效添至~/.bashrc,比如
alias s="apt-cache search"
alias i="apt-get install"
alias r="apt-get --purge remove"
alias u="apt-get update;apt-get upgrade"
alias l="dpkg -l | grep"
alias c="/path/to/cc。sh"
编辑本段中文设置中文显示
安装常用字体
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 
中文输入
官方源中的fcitx臃肿不堪,损失了fcitx所有优点,所以需要自己编译。
1,安装编译环境
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
2,生成并安装deb包
axel -n20 http://fcitx.googlecode。com/files/fcitx-4.2.6.1_dict.tar.xz
tar xpf 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 DESTDIR=$PWD/fcitx
mkdir fcitx/DEBIAN
echo -e "Package: fcitx\nVersion: 4.2.6.1-1\nArchitecture: amd64\nMaintainer: DEBIAN\nPriority: extra\nDescription: A Flexible Input Method Framework" > fcitx/DEBIAN/control
dpkg -b fcitx fcitx_4.2.6.1-1_amd64.deb
dpkg -i fcitx_4.2.6.1-1_amd64.deb && echo -e "fcitx hold" | dpkg --set-selections
3,添加Fcitx启动,vi ~/.xinitrc,添加:
export LC_CTYPE=en_US.UTF-8
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
eval `dbus-launch --sh-syntax --exit-with-session`
exec fcitx &
注意:较老版本比如squeeze等,除了不安装 libopencc-dev libgirepository1.0-dev gobject-introspection libgtk-3-dev ,cmake选项为:cmake . -DCMAKE_INSTALL_PREFIX=/usr 并手动添加fcitx输入法模块:gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules 外,其余一样。
编辑本段精简桌面一,虚拟机安装
由于GNU/Linux软件匮乏,而VMware(或者QEMU、VirtualBox等)提供了一个良好的虚拟环境,所以通过虚拟机使用Debian GNU/Linux是一个很好的选择。
创建虚拟机,虚拟磁盘设置4G左右即可,全部作为根分区,文件系统使用ext4。打开 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 install xserver-xorg-input-evdev xserver-xorg-video-vmware xterm xinit build-essential linux-headers-$(uname -r) libncurses-dev intltool libtool libz-dev uuid-dev kvm axel bc dos2unix leafpad
mount /dev/sr0 /mnt/
tar xpf /mnt/VMwareTools-*.tar.gz -C .
vmware-tools-distrib/vmware-install。pl
umount /mnt
rm -rf vmware-tools-distrib
startx
安装Firefox:
axel -n20 ftp://ftp.mozilla。org/pub/firefox/releases/latest/linux-x86_64/zh-CN/firefox-x.x.x.tar。bz2
tar xpf firefox-x.x.x.tar。bz2 -C /XX/XX/
tar xpf 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,将第三个sans-serif改为中文字体
#设置默认浏览器
将 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 %U
Terminal=false
Icon=/xx/xx/firefox/icons/mozicon128.png
安装spacefm
(具体信息参看spacefm主页)
wget -O spacefm.tar.gz https://github。com/IgnorantGuru/spacefm/tarball/master
tar xpf spacefm.tar.gz
cd IgnorantGuru-spacefm-*
cp debian/control-gtk3 debian/control
cp debian/rules-gtk3 debian/rules
sed -i 's/^spacefm \(.*\)/spacefm-gtk3 \1/' debian/changelog
dpkg-buildpackage -b

dpkg -i ../spacefm-gtk3_x.x.x-1_amd64.deb
二,实体机安装
与虚拟机安装不同的是这里引导ISO(CD1较常用),并且显卡替换为实体机显卡,其余类似。毫无疑问,实体机中的Debian GNU/Linux性能将更强劲。
网络上有各种分区方案,但其实分两区(全部ext4)即可:
/ 10G左右,不使用桌面环境5G足矣
/home或者/root 剩余全部,用来存放个人数据和编译软件
也可以只分一个根分区,系统重装时保留用户文件夹/home和/root,其余文件全部删除
三,关于桌面环境
一般情况下,直接使用官方CD中附带的完整桌面环境即可,比如GNOME和KDE。由于当前桌面环境集成度极低,即使如此还夹杂许多花瓶式软件,因此有必要选择简洁实用的桌面组合,比如openbox+spacefm和dwm+ranger等。
适于简洁桌面的一些常见软件有:虚拟终端xterm、下载工具axel和utorrent(闭源软件)、irc客户端chatzilla(firefox插件)、办公软件libreoffice和zathura、图片查看以及处理软件feh和gimp、文本编辑器vim-tiny和leafpad、音乐播放器audacious、电影播放器mplayer。
编辑本段常见问题一,开机自动登录
以root为例,其余用户类似
1,/etc/inittab
1:2345:respawn:/sbin/getty38400 tty1 -a root
2,/etc/rc.local
touch /root/.tmpfs/X && chmod 222 /root/.tmpfs/X
3,/root/.profile
if [ -f /root/.tmpfs/X ]
then
rm /root/.tmpfs/X && /usr/bin/startx
fi
二,基本的~/.vimrc
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 linespace=1
set listchars=tab:?\ ,eol:?
set nobackup
set nocompatible
set termencoding=utf-8
三,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或者直接修改/etc/bash.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='(hdX,msdosY)'
chainloader +1
}
其中(hdX,Y)表示第(X+1)块硬盘,mbr分区表的第Y分区,情况不同须修改,最后update-grub2。
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=floppy.img
#引导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>
三,虚拟磁盘
file initrd.img #查看文件类型
fdisk -l initrd.img #查看虚拟磁盘分区
mount -t <fs> -o loop,offset=<Start*Sector> initrd.img /mnt#挂载虚拟磁盘分区
cpio -i -d < initrd.img #cpio解压
find . | cpio --quiet -R 0:0 -o -H newc | gzip -9 > ../initrd.img #cpio压缩(常用在编译busybox后制作根文件系统中)
四,WINE相关
在GNU/Linux平台上出现了一些游戏,但是没有可玩性,所以主要还是模拟器游戏(包括MAME)。另外,官方WINE可以完美运行CS1.6以及WoW等游戏,效果与Windows平台相差无几。
MAME简单用法如下:
mkdir -p ~/.mame/roms
cp *.zip ~/.mame/roms/
cd ~/.mame/
cp /etc/mame/mame.ini . && vi mame.ini #添加路径 ~/.mame/roms/
添加脚本sdlmame以便于使用
#!/bin/bash
cd ~/.mame/
if [ -z "$1" ]
then
nohup /usr/games/mame -video soft -window -resolution 700x490 roms/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相关
类似项目:cdebootstrap、rootstrap、debirf、crosshurd、live-build等
用于Debian系统安装程序第一阶段,支持Debian全系列内核,对于一个具体的平台来说,只能安装与当前内核相同架构的Debian系统(64位系统安装32位库后支持32位)。
通过获取选定分支最新软件包重装系统,可以快速创建随身系统,用来做新软件测试等,类似网络安装。
简单使用流程如下(安装一个amd64架构、sid分支Debian GNU/Linux基础系统):
Debian家族操作系统apt-get install debootstrap即可使用,非Debian家族操作系统(指任何其他GNU/Linux发行版)或者不想安装该软件
git clone git://anonscm.debian。org/d-i/debootstrap.git
apt-get install makedev
make -C debootstrap
vi debootstrap/debootstrap #将 /usr/share/debootstrap 替换为 ./debootstrap
./debootstrap/debootstrap --arch amd64 sid sid-dir ftp://ftp.debian。org/debian/ #获取基础系统,大约260MB(其中var/cache/apt/archives/目录下占60MB的139个deb包可以删除,也可以打包保存以避免下次使用debootstrap时重复下载deb包)
cd sid-dir
tar cpJf ../sid-dir.txz *
mount -t ext4 /dev/sda1 /mnt
tar xpf sid-dir.txz -C /mnt/
mount -t ext4 /dev/sda2 /mnt/home

修改 /mnt/etc/fstab如下:
/dev/sda1 / ext4 defaults,errors=remount-ro 0 1
/dev/sda2 /home ext4 defaults 0 2
/xxx/.swapfile swap swap defaults 0 0
tmpfs /xxx/.tmpfs tmpfs rw,nosuid,noexec,relatime,size=2097152k,mode=755 0 0

echo "en_US.UTF-8 UTF-8" > /mnt/etc/locale.gen
echo "DEBIAN" > /mnt/etc/hostname
echo“127.0.0.1 DEBIAN” >> /mnt/etc/hosts
cat /mnt/usr/share/zoneinfo/Asia/Chongqing > /mnt/etc/localtime #时区设置(BIOS时钟为本地时间)
echo "Asia/Chongqing" > /mnt/etc/timezone
echo -e "\n\nLOCAL" > /mnt/etc/adjtime #squeeze改/mnt/etc/default/rcS中 UTC=yes 为 UTC=no
mount --bind /dev /mnt/dev
mount -t tmpfs /tmp /mnt/tmp
mount -t proc /proc /mnt/proc
mount -t sysfs /sys /mnt/sys
chroot /mnt /bin/bash
date -s "2012-12-31 07:00:00"
hwclock --systohc
passwd root
vi /etc/apt/sources.list #修改软件源地址
echo "nameserver 8.8.8.8" > /etc/resolv.conf #修改DNS

apt-get install locales
apt-get install linux-image-amd64 #安装内核或者使用自编译内核apt-get install initramfs-tools && dpkg -i linux-image-x.x.x_x.x.x-1_amd64.deb
apt-get install grub2 #安装引导(此外extlinux也是一个较好选择)

六,制作Live镜像
mkdir newiso && cd newiso
lbconfig -–mirror-binary ftp://ftp.debian。org/debian/ --mirror-bootstrapftp://ftp.debian。org/debian/ --archive-areas “main” --distribution sid

lbbuild

七,自己编译内核
完全编译耗时70分钟,使用官方配置文件耗时25分钟,个人配置内核编译时间在4.5分钟以内,生成内核小于2.5MB(不生成可加载模块)。
需注意相同版本不同配置内核性能差异极小,官方内核虽然陈旧但是稳定性、通用性好,所以除非有启用某些不常见驱动或者使用较新以及特定版本内核的需要,否则不必编译内核。
tar xpf linux-x.x.x.tar.xx #解压内核

cd linux-x.x.x && cp /boot/config-x.x.x .config #复制老配置文件

make menuconfig #对老配置稍作修改

make -j20 deb-pkg #编译内核并创建DEB包(若只是临时使用只需安装linux-image-x.x.x_x.x.x-1_amd64.deb)
几个常见用法:
① make localmodconfig #取消当前内核未加载模块以精简用不到的模块(注意某些常用模块甚至开机必须的模块可能会被取消,而一些用不到的模块可能未去掉)
② sed -i 's/=m/=y/' .config #不生成可加载模块(因为Linux内核的模块虽然可以自由选取,但是真正用起来适合一个发行版或通用的设备,至于个人编译没必要制造这些麻烦的模块)