Debian 百科内容来自于: 百度百科

版本记录

Debian的发行及其软件源有五个分支:旧稳定分支(oldstable)、稳定分支(stable)、测试分支(testing)、不稳定分支(unstable)、实验分支(experimental)。
当前的稳定分支即wheezy(即下一个旧稳定分支),测试分支即Jessie(即下一个稳定分支),所有开发代号均出自Pixar的电影《玩具总动员》。
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年5月4日
一只带着领结的玩具企鹅
加强MultiArch
8 Jessie
预计2015年
玩具总动员第二部中的角色,是一个女牛仔
 
Sid 每日更新 席德,隔壁的男孩,玩具终结者 软件较新更新频繁,不适合正常使用

软件管理

一,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 --reinstall 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 xx.deb
 
显示DEB包文件列表
dpkg -c xx.deb
 
安装DEB包
dpkg -i xx.deb
 
安装DEB包(指定根目录) dpkg --root=<directory> -i xx.deb  
显示所有已安装软件
dpkg -l
 
显示已安装包信息
dpkg -s foo
 
显示已安装包文件列表
dpkg -L foo
 
卸载包
dpkg -r foo
 
卸载软件包并删除其配置文件
dpkg -P foo
 
重新配置已安装程序
dpkg-reconfigure foo
 
dpkg——package manager for Debian
从软件源中编译软件流程(适用于少量代码改动或者配置修改)
功能
具体语句
示例
获取源码
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.dsc
dpkg-source -x rox_2.11-3.dsc
修改源码部分
 
nano ROX-Filer/src/main.c
创建包
dpkg-buildpackage -rfakeroot -b
 
修改软件可升级状态
echo -e "foo hold" | dpkg --set-selections
 
二,用dpkg解包打包(或者修改包)的简单用法
1,新建必要文件control
mkdir -p dirname/DEBIAN(dirname名随意,将生成的usr bin lib之类的文件复制到dirname目录下,dirname/为伪根目录)
nano dirname/DEBIAN/control,最简陋的格式如下:
Package: foo
Version: version-revision
Architecture: amd64
Maintainer: xxx
Priority: extra
Description: xxx
2,生成DEB包
dpkg-deb -b --deb-format=2.0 -Zxz -z9 dirname foo_version-revision_arch.deb (为了便于管理包名应遵循DEB包命名格式)
3,解压DEB包安装文件部分
mkdir newdir && dpkg -x foo_version-revision_arch.deb newdir/
4,解压DEB包控制信息部分
mkdir newdir && dpkg -e foo_version-revision_arch.deb newdir/
5,用ar命令解压DEB包
mkdir newdir
cd newdir && ar x foo_version-revision_arch.deb
三,添加常用软件管理命令简短别名
软件管理是一个现代操作系统的基本功能,使用十分频繁,因此有必要设置简短的别名,仅字符界面有效添至~/.profile,仅图形界面有效添至~/.bashrc,比如
export LC_MESSAGES=en_US.UTF-8
alias a="apt-get install --no-install-recommends"
alias b="dpkg-deb -b --deb-format=2.0 -Zxz -z9"
alias c="SDCV_PAGER=more sdcv --color -0 -1"
alias i="dpkg -i"
alias l="dpkg -l | grep"
alias la="ls --file-type -a"
alias ll="la --time-style=long-iso -lh"
alias s="apt-cache search"
alias r="apt-get --purge remove"
alias u="apt-get update;apt-get upgrade"

中文设置

中文显示

复制常用字体
mkdir ~/.fonts && cp simsun.ttc tahoma.ttf tahomabd.ttf unifont.pcf ~/.fonts/
终端显示调整
编辑 ~/.Xdefaults,添加
XTerm*background: grey20
XTerm*foreground: white
XTerm*faceName: unifont
XTerm*utf8Title: true
UXTerm*background: grey20
UXTerm*foreground: white
UXTerm*faceName: unifont
UXTerm*utf8Title: true

中文输入

nano ~/.xinitrc,添加
export LC_CTYPE=en_US.UTF-8
export LC_MESSAGES=zh_CN.UTF-8
eval `dbus-launch --sh-syntax --exit-with-session`
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=xim
export QT_IM_MODULE=fcitx
exec fcitx &
nano~/.config/fcitx/profile,启用需要的输入法

精简桌面

一,虚拟机安装

GNU/Linux软件匮乏,VMPlayer支持主流操作系统,无需安装劣质nvidia闭源显卡驱动即可支持3D。
创建虚拟机,虚拟磁盘设置4G左右即可(如果使用swap可能需要更多),全部作为根分区,文件系统使用
btrfs(mkfs.btrfs -dsingle -l16384 -msingle -n16384 -K -f /dev/sda1) 或者
zfs(zpool create -f -o ashift=12 -o cachefile= -O utf8only=on -O compression=lz4 -O dedup=off -O xattr=off -O secondarycache=none -O checksum=off -O atime=off -m /mountpoint zroot /dev/sda1,需要重新编译内核并生成新的初始化文件系统)
打开 ftp://ftp.debian。org/debian/dists/sid/main/installer-amd64/current/images/netboot/mini.iso 进入安装界面,根据提示安装完毕。
安装基本工具:
dhclient eth0
dpkg --remove-architecture i386
apt-get update
apt-get install --no-install-recommends \
gccgdbbinutils makebclinux-headers-$(uname -r) libncurses-dev dpkg-dev \
xserver-xorg-input-evdev xserver-xorg-video-vesa xserver-xorg xterm xinit \
openbox xfdesktop4 thunar thumbler gvfs xarchiver\
fcitx fcitx-pinyin fcitx-ui-classic fcitx-frontend-qt5 \
gtk2-engines gnome-icon-theme clearlooks-phenix-theme \
alsa-utilsmesa-utils \
lib32z1 lib32stdc++6
startx
#添加浏览器
echo deb http://dl。google。com/linux/chrome/deb/ stable main >> /etc/apt/source.list
apt-get update && apt-get install google-chrome-stable
#取消Thunar的root警告
sed -i 's/geteuid/getppid/' /usr/bin/thunar
#修正Thunar的一处翻译错误
msgunfmt/usr/share/locale/zh_CN/LC_MESSAGES/Thunar.mo > Thunar.po
sed -i 's/已用/可用/' Thunar.po
msgfmt Thunar.po -o/usr/share/locale/zh_CN/LC_MESSAGES/Thunar.mo
rm Thunar.po
#使用默认的Clearlooks主题并设置字体
nano ~/.gtkrc-2.0
gtk-font-name = "Sans 10"
gtk-icon-theme-name = "GNOME"
gtk-theme-name = "Clearlooks-Phenix"
#设置GTK+3主题(确定已安装相应的主题引擎),chrome添加GTK+3主题
cp -r /usr/share/themes/Clearlooks-Phenix/gtk-3.0 ~/.config/gtk-3.0
echo -e "gtk-theme-name = Clearlooks-Phenix\ngtk-icon-theme-name = GNOME" >> ~/.config/gtk-3.0/settings.ini
#设置一个鼠标主题
nano ~/.Xdefaults
Xcursor.theme: OpenZone

二,实体机安装

与虚拟机安装不同的是这里引导ISO(CD1较常用),并且显卡替换为实体机显卡,其余类似。毫无疑问,实体机中的Debian GNU/Linux性能将更强劲。
网络上有各种分区方案,但其实分两区即可:
/ 10G左右,不使用桌面环境5G足矣
/home或者/root 剩余全部,用来存放个人数据和编译软件
也可以只分一个根分区,系统重装时保留用户文件夹/home和/root,其余文件全部删除

三,桌面环境

当前桌面环境集成度极低,桌面软件界面丑陋并且功能低下,因此搭配一套 可用的窗口管理器(openbox)和文件管理器(thunar、pcmanfm-qt)即可。
一些常见软件还有:图片查看编辑软件ristretto和gimp、媒体播放处理mplayer、下载工具axeltransmission-gtk、办公套件libreoffice、PDF阅读器evince-gtk。

常见问题

一,自动登录

以root为例,其余用户类似
1,/lib/systemd/system/getty@.service
ExecStart=-/sbin/agetty --noclear %I 38400 linux -a root
2,/etc/rc.local
touch /tmp/X
3,/root/.profile
[ -f /tmp/X ] && rm /tmp/X && /usr/bin/startx

二,镜像软件源

使用apt-mirror复制在线源一份到本地,然后将apt-get源设置到本地。需要注意apt-mirror第一次同步下载数据量达到70G,并且每日更新0.5~1G不等。

三,VIM基本设置

nano ~/.vimrc
"vi
language messages en_US.UTF-8
set autoread history=1000 laststatus=2 nobackup nocompatible
set encoding=utf-8 fileencoding=utf-8 fileencodings=ucs-bom,utf-8,gbk,euc-jp,euc-kr,latin1 fileformat=unix termencoding=utf-8 "set termencoding=gbk
set makeprg=make shell=bash shellcmdflag=-c
"vim
if has("vertsplit")
autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
color desert
filetype indent on
if expand('%:p') == ''
chdir ~/Document/WORK "$VIM\\..\WORK
endif
"环境变量
let $PS1="\$PWD # "
set autochdir
set linespace=1 list listchars=tab:·\ ,eol:¬ number
syntax on
"绑定键盘
map <F2> :echom "Done"<CR>
imap <F2> <Esc><F2>li
endif
"gvim
if has("gui_running")
"添加菜单项
amenu Edit.- :
highlight SpecialKey ctermfg=0 guifg=grey30
highlight NonText guibg=grey20 guifg=grey30
set columns=85 lines=36
set guifont=unifont\ 12 guioptions=aeim guitablabel=%t
endif

四,MPlayer设置

编译打包MPlayer以便去掉大量无用的依赖库
nano ~/.mplayer/config
af=volnorm,volume=5
ao=alsa
autosync=30
cache=10240
font=SimSun
osdlevel=3
overlapsub=1
quiet=yes
stop-xscreensaver=yes
sub-fuzziness=1
subfont-autoscale=1
subfont-osd-scale=5
subfont-text-scale=6
subcp=utf-8
vo=xv
xy=800
zoom=yes

五,省电设置

echo 1 > /sys/module/snd_hda_intel/parameters/power_save
for f in /sys/class/scsi_host/host*/link_power_management_policy; do echo min_power > $f; done
for f in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $f; done
1,cpu频率调节设置
ondemand
2,将bbswitch编入内核
任何情况下都不要使用类似nvidia的闭源驱动
  
cp bbswitch.c linux-3.15/drivers/acpi/
sed -i "403s/DEVICE_ACPI_HANDLE/ACPI_HANDLE/" linux-3.15/drivers/acpi/bbswitch.c
sed -i "53iacpi-y\t\t\t\t+= bbswitch.o" linux-3.15/acpi/Makefile

六,Openbox基本设置

mkdir -p ~/.config/openbox && cp /etc/xdg/openbox/rc.xml ~/.config/openbox/rc.xml

  添加4个基本的快捷键
  F1 打开终端
  Ctl+F1 退出
  Alt+F1 重启
  Mod+F1 关闭窗口
lunar提供的Solar2Lunar函数可以提供公历农历转换

  <keybind key="W-F1">
  <action name="Close"/>
  </keybind>
  <keybind key="A-F1">
  <action name="Restart"></action>
  </keybind>
  <keybind key="C-F1">
  <action name="Exit"><prompt>no</prompt></action>
  </keybind>
  <keybind key="F1">
  <action name="Execute"><command>xterm</command></action>
  </keybind>

七,合盖不休眠

systemd默认合盖休眠,向/etc/systemd/logind.conf添加一行
HandleLidSwitch=ignore
就可以取消合盖休眠,生效需重启

杂七杂八

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

一,GRUB2

syslinux不支持btrfs(开启压缩)和zfs,而grub2支持常见的文件系统,扩展性强。此外,非Linux平台可以使用grub4dos
######/boot/grub/grub.cfg
insmod all_video
  insmod gettext
  insmod gfxterm
  insmod part_msdos
  insmod zfs
  loadfont $prefix/fonts/unicode。pf2
  set default="0"
  set gfxmode=auto
  set have_grubenv=true
  set lang=
  set locale_dir=$prefix/locale
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
  set timeout=3
  terminal_output gfxterm
  menuentry 'Debian -- The Universal Operating System' {
  linux /@/boot/vmlinuz acpi_backlight=vendor MOUNT="/bin/zpool import -f zroot" ROOT="" INIT="/lib/systemd/systemd"
initrd /@/boot/initrd.img
  }
#引导ISO
menuentry 'ISO' {
linux16 /boot/syslinux/memdisk raw iso
initrd16 /boot/xx.iso
}
#使用其他分区引导
menuentry 'Other Bootloader' {
set root='(hdX,msdosY)'
chainloader +1
}
安装至磁盘主引导或者分区引导
grub-install --root-directory=/path/to/root/ --no-floppy /dev/sdX(Y)
nano /path/to/root/boot/grub/grub.cfg

二,字体

<fontconfig>
<selectfont><acceptfont><pattern>
<patelt name="family"><string>unifont</string></patelt>
</pattern></acceptfont></selectfont>
<match target="font" >
<test compare="less" name="size" ><double>8</double></test>
<edit mode="assign" name="size" ><double>8</double></edit>
</match>
<match>
<test name="family"><string>SimSun</string></test>
<test name="style"><string>Regular</string></test>
<edit name="antialias" mode="assign"><bool>false</bool></edit>
</match>
<match>
<test name="family"><string>宋体</string></test>
<test name="style"><string>Regular</string></test>
<edit name="antialias" mode="assign"><bool>false</bool></edit>
</match>
<alias><family>sans-serif</family>
<prefer>
<family>Tahoma</family>
<family>SimSun</family>
</prefer>
</alias>
<alias><family>serif</family>
<prefer>
<family>Tahoma</family>
<family>SimSun</family>
</prefer>
</alias>
<alias><family>monospace</family>
<prefer>
<family>DejaVu Sans Mono</family>
<family>unifont</family>
</prefer>
</alias>
</fontconfig>

三,虚拟磁盘

file initrd.img #查看文件类型
fdisk -l initrd.img #查看虚拟磁盘分区
mount -t <fs> -o loop,offset=<Start*Sector> initrd.img /mnt#挂载虚拟磁盘(raw格式)分区
cpio -i -d < initrd.img #cpio解压
find . | cpio --quiet -R 0:0 -o -H newc | gzip -9 > ../initrd.img #cpio打包后用gzip压缩
一个busybox制作初始化文件系统简单例子如下:
#编译安装
rm -rf busybox && git clone https://github。com/mirror/busybox
cd busybox
make allyesconfig
make -j 20
make install
#修改文件(/lib64/ld-linux-x86-64。so.2复制到lib64/,其余库文件复制到lib/)
cd _install
mkdir etc
cp -r ../examples/bootfloppy/etc/init{.d,tab} etc/
rm linuxrc && touch etc/fstab
cat > init << EOF
#!/bin/sh
/bin/mkdir /sys && /bin/mount -t sysfs -o nodev,noexec,nosuid sysfs /sys
/bin/mkdir /proc && /bin/mount -t proc -o nodev,noexec,nosuid proc /proc
/bin/mdev -s && /bin/echo /bin/mdev > /proc/sys/kernel/hotplug
[ -z "\$MOUNT" ] && exec /bin/init; \$MOUNT; [ ! -z "\$ROOT" ] && /bin/mount --bind \$ROOT /root; exec /bin/switch_root /root \${INIT:-/lib/systemd/systemd}
EOF
#挂载新根目录位置命令比如 MOUNT="/bin/mount -t btrfs UUID= /root"
#转到新根目录后第一个执行程序路径比如sysvinit INIT="/sbin/init"
内核的部分设置参数也可以添加到init中
比如:
/bin/sync && /bin/echo 3 > /proc/sys/vm/drop_caches
/bin/echo OFF > /proc/acpi/bbswitch
/bin/echo 2 > /proc/sys/vm/overcommit_memory
/bin/echo 0 > /proc/sys/vm/swappiness
/bin/echo 1000 > /sys/class/backlight/intel_backlight/brightness
改变init权限
chmod 755 init
生成initrd.img
find . | cpio --quiet -R 0:0 -o -H newc | gzip -9 > ../initrd.img

四,bootstrap

对于一个具体的平台来说,只能安装与当前内核相同架构的Debian系统(64位系统支持32位)。
简单使用流程如下(安装一个amd64架构、sid分支Debian GNU/Linux基础系统):
Debian家族操作系统apt-get install debootstrap即可使用,非Debian家族操作系统(指任何其他GNU/Linux发行版)或者不想安装该软件
git clone git://anonscm.debian。org/d-i/debootstrap.git
注意,debootstrap运行时需要bash脚本MAKEDEV
make -C debootstrap
nano debootstrap/debootstrap #将 /usr/share/debootstrap 替换为 ./debootstrap
./debootstrap/debootstrap \
--include=debootstrap,initramfs-tools,btrfs-tools,grub2 \
--exclude=aptitude,aptitude-common,nano,tasksel,tasksel-data --arch amd64 sid sid-dir ftp://ftp.debian。org/debian/
cd sid-dir
tar cpJf ../sid-dir.txz *
mount -t btrfs -o defaults,compress=zlib,noatime,nobarrier /dev/sda1 /mnt
tar xpf sid-dir.txz -C /mnt/
#修改 /mnt/etc/fstab如下:
echo -e "en_US.UTF-8 UTF-8\nzh_CN.UTF-8 UTF-8" > /mnt/etc/locale.gen
echo "DEBIAN" > /mnt/etc/hostname
echo -e "127.0.0.1\nDEBIAN 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
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
hwclock --systohc
passwd root
echo "nameserver 8.8.8.8" > /etc/resolv.conf
nano /etc/apt/sources.list
apt-get update && apt-get install locales
apt-get install linux-image-amd64 #安装内核或者使用自编译内核(dpkg -i linux-image-x.x.x_x.x.x-1_amd64.deb)
apt-get install grub2

五,编译内核

一般个人配置内核编译时间在4分钟以内,3.15小于2.5MB(不生成可加载模块)
tar xpf linux-x.x.x.tar.xz
cd linux-x.x.x && cp /boot/config-x.x.x .config
make menuconfig
make -j20 deb-pkg #临时使用只需安装linux-image-x.x.x_x.x.x-1_amd64.deb
几个常见用法:
① make localmodconfig #处理.config(取消当前运行内核未加载模块)
② sed -i 's/=m/=y/' .config #不生成可加载模块
$firstVoiceSent
- 来自原声例句
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定