首页 IT正文

Debian系统

admin IT 2017-09-22 1221 0

37d3d539b6003af38fcf4c68372ac65c1038b645.jpg

广义的Debian是指一个致力于创建自由操作系统的合作组织及其作品,由于Debian项目众多内核分支中以Linux宏内核为主,而且 Debian开发者 所创建的操作系统中绝大部分基础工具来自于GNU工程 ,因此 “Debian” 常指Debian GNU/Linux

非官方内核分支还有只支持x86的Debian GNU/Hurd(Hurd微内核),只支持amd64的Dyson(OpenSolaris混合内核)等。这些非官方分支都存在一些严重的问题,没有实用性,比如Hurd微内核在技术上不成熟,而Dyson则基础功能仍不完善。
“Debian” 正式发音为 /ˈdɛ.bi.ən/ ,Debian 是国际化协作项目,官方未指定任何非英文名称。
功能具体语句
软件源设置/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 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
修改源码部分
nano ROX-Filer/src/main.c
创建包dpkg-buildpackage -rfakeroot -b
修改软件可升级状态echo -e "foo hold" | dpkg --set-selections

二,用dpkg解包打包(或者修改包)的简单用法1,新建必要文件controlmkdir -p dirname/DEBIAN(dirname名随意,将生成的usr bin lib之类的文件复制到dirname目录下,dirname/为伪根目录)nano dirname/DEBIAN/control,最简陋的格式如下:Package: fooVersion: version-revisionArchitecture: amd64Maintainer: xxxPriority: extraDescription: xxx2,生成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 newdircd newdir && ar x foo_version-revision_arch.deb三,添加常用软件管理命令简短别名软件管理是一个现代操作系统的基本功能,使用十分频繁,因此有必要设置简短的别名,仅字符界面有效添至~/.profile,仅图形界面有效添至~/.bashrc,比如export LC_MESSAGES=en_US.UTF-8alias 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: grey20XTerm*foreground: whiteXTerm*faceName: unifontXTerm*utf8Title: trueUXTerm*background: grey20UXTerm*foreground: whiteUXTerm*faceName: unifontUXTerm*utf8Title: true

中文输入

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

虚拟机安装

编辑VMPlayer创建虚拟机,虚拟磁盘设置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,需要重新编译内核并生成新的初始化文件系统)打开 debian-7.5.0-amd64-netinst.iso (无稳定网络使用 debian-7.5.0-amd64-DVD-1。iso )进入安装界面,根据提示安装完毕。安装基本工具:dhclient eth0dpkg --remove-architecture i386 && apt-get updateapt-get install --no-install-recommends \xserver-xorg-input-evdev xserver-xorg-video-vesa xserver-xorg xterm xinit \openbox pcmanfm gvfs lxpanel \fcitx fcitx-pinyin fcitx-ui-classic fcitx-frontend-qt5 \gtk2-engines gnome-icon-theme clearlooks-phenix-theme \vim-gtk gpicview lxtask \unzip unrar p7zip bzip2 xarchiver \alsa-utils mesa-utils libtxc-dxtn-s2tc0 libgl1-mesa-driecho -e "for f in \"pcmanfm --desktop\" lxpanel\ndo\nexec \$f > /dev/null/ 2>&1 &\ndone\nexec openbox" > ~/.xinitrcstartx#添加chrome浏览器#取消pcmanfm的root警告sed -i 's/geteuid/getppid/' /usr/bin/pcmanfm#使用默认的Clearlooks主题并设置字体nano ~/.gtkrc-2.0gtk-font-name = "Sans 10"gtk-icon-theme-name = "GNOME"gtk-theme-name = "Clearlooks-Phenix"#设置GTK+3主题(确定已安装相应的主题引擎)cp -r /usr/share/themes/Clearlooks-Phenix/gtk-3.0 ~/.config/gtk-3.0echo -e "gtk-theme-name = Clearlooks-Phenix\ngtk-icon-theme-name = GNOME" >> ~/.config/gtk-3.0/settings.ini#设置一个鼠标主题nano ~/.XdefaultsXcursor.theme: OpenZone几种常见的联网方式1,使用ppp拨号上网(ppp依赖libpcap0.8)####cat > /etc/ppp/peers/wan << EOFuser "账号"password "密码"defaultroutehide-passwordnoauthpersistplugin rp-pppoe.so eth0usepeerdnsEOF####ifconfig eth0 uppoff -a #断开pon wan #连接2,连接无线网络3,USB共享联网dhclient usb0合盖不休眠nano /etc/systemd/logind.conf,添加一行HandleLidSwitch=ignore

常见问题

自动登录

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

VIM基本设置

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

MPlayer设置

编译打包MPlayer以便去掉大量无用的依赖库nano ~/.mplayer/configaf=volnorm,volume=5ao=alsaautosync=30cache=10240font=SimSunosdlevel=3overlapsub=1quiet=yesstop-xscreensaver=yessub-fuzziness=1subfont-autoscale=1subfont-osd-scale=5subfont-text-scale=6subcp=utf-8vo=xvxy=800zoom=yes

省电设置

echo 1 > /sys/module/snd_hda_intel/parameters/power_savefor f in /sys/class/scsi_host/host*/link_power_management_policy; do echo min_power > $f; donefor f in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $f; done1,cpu频率调节设置ondemand2,将bbswitch编入内核任何情况下都不要使用类似nvidia的闭源驱动
  cp bbswitch.c linux-3.15/drivers/acpi/sed -i "403s/DEVICE_ACPI_HANDLE/ACPI_HANDLE/" linux-3.15/drivers/acpi/bbswitch.csed -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>

杂七杂八

GRUB2

syslinux不支持btrfs(开启压缩)和zfs,而grub2支持常见的文件系统,扩展性强。此外,非Linux平台可以使用grub4dos。######/boot/grub/grub.cfginsmod 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
  }#引导ISOmenuentry 'ISO' {linux16 /boot/syslinux/memdisk raw isoinitrd16 /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/busyboxcd busyboxmake allyesconfigmake -j 20make install#修改文件(/lib64/ld-linux-x86-64。so.2复制到lib64/,其余库文件复制到lib/)cd _installmkdir etccp -r ../examples/bootfloppy/etc/init{.d,tab} etc/rm linuxrc && touch etc/fstabcat > 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.imgfind . | 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脚本MAKEDEVmake -C debootstrapnano debootstrap/debootstrap #将 /usr/share/debootstrap 替换为 ./debootstrap#ppp用来拨号上网,iw、wpasupplicant等用来连接连接无线网络或者创建无线网络./debootstrap/debootstrap \--include=debootstrap,initramfs-tools,btrfs-tools,grub2,\ppp,iw,wpasupplicnat,dnsmasq,bridge-utils,ssh,ftp,axel \--exclude=aptitude,aptitude-common,nano,tasksel,tasksel-data --arch amd64 sid sid-dir ftp://ftp.debian。org/debian/cd sid-dirtar cpJf ../sid-dir.txz *mount -t btrfs -o defaults,compress=zlib,noatime,nobarrier /dev/sda1 /mnttar 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.genecho "DEBIAN" > /mnt/etc/hostnameecho -e "127.0.0.1\nDEBIAN DEBIAN" >> /mnt/etc/hostscat /mnt/usr/share/zoneinfo/Asia/Chongqing > /mnt/etc/localtime #时区设置(BIOS时钟为本地时间)echo "Asia/Chongqing" > /mnt/etc/timezoneecho -e "\n\nLOCAL" > /mnt/etc/adjtimemount --bind /dev /mnt/devmount -t tmpfs /tmp /mnt/tmpmount -t proc /proc /mnt/procmount -t sysfs /sys /mnt/syschroot /mnt /bin/bashhwclock --systohcpasswd rootecho "nameserver 8.8.8.8" > /etc/resolv.confnano /etc/apt/sources.listapt-get update && apt-get install localesapt-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.xzcd linux-x.x.x && cp /boot/config-x.x.x .configmake menuconfigmake -j20 deb-pkg #临时使用只需安装linux-image-x.x.x_x.x.x-1_amd64.deb几个常见用法:① make localmodconfig #处理.config(取消当前运行内核未加载模块)② sed -i 's/=m/=y/' .config #不生成可加载模块

使用Debian包管理器简化Linux管理

编辑如果你使用Debian软件包管理器来管理Linux软件,应该详细了解Debian软件仓库的原理,这有助于使用Linux命令将让你更容易管理Debian软件。
  Linux软件包管理使用的Debian软件库,Debian提供了软件包的安装源。Debian管理器会自动查找库和安装Debian包的依赖关系。如果没有Debian软件库管理系统,要解决这些Debian软件包的依赖关系是一种烦恼。
  按目前的Linux分布情况,主要的Debian软件库管理系统是Debian的软件库管理系统,主要用于Debian、Ubuntu和其Linux衍生系统上,如Linux Mint;Debian软件库管理系统使用默认的Debian软件包格式。Debian用.deb。这些Debian软件包是将软件和元数据压缩和档案。Debian元数据提供了有关软件的版本信息,以及Debian软件包的依赖关系。
  但Debian软件包的数据库与Debian软件库很容易混淆。虽然通过Debian软件库管理使这些Debian软件包可以让工作更简单,但这些Debian软件包同时有另一个数据库。这意味着Debian软件包的信息来源可以有多个:Debian包数据库和Debian软件库数据库。

使用Debian包数据库工作

  Debian包数据库是Debian软件安装了。在Linux系统里最重要的信息来源。Debian包数据库从服务器上检索当前安装的Debian软件,Debian包文件通常是一个丰富的Debian文档和Debian软件使用的信息源,这对于Linux系统Debian软件包之间的依赖关系非常有用。
  在基于Debian的Linux服务器,使用dpkg命令。例如,dpkg -L命令可以读取Debian软件包清单,或rpm -ql命令显示哪些文件被包含在一个Debian软件包。

使用Debian软件仓库工作

  在安装新的Debian软件或进行Debian软件升级,系统管理员通常使用Debian软件仓库。尤其是更新Debian服务器补丁的时候,Debian软件仓库会更方便:Debian软件包管理器只需要更新新的软件包,使Debian自动可用,Debian库用户便可以使用它们,这过程完全是透明的。
  在基于Debian软件仓库的系统,Debian索引文件需要手动更新,使用Debian的apt-get update命令来更新本地机器上的Debian软件包缓存。Debian包缓存更新完成后,便可以很容易的Debian安装软件包和更新。
  Debian系统会自动比较了软件仓库的Debian安装包和Debian安装在本地系统的Debian软件包列表,以确定一个Debian包已经安装,或者是否有可用的Debian更新。
  Debian软件仓库管理系统在处理Debian软件包依赖关系非常好用:目前所有的Linux都提供了丰富的Debian资料库,并提供必要的Debian依赖,这意味着Linux管理员对Debian软件包的依赖恐惧大大减少了。

Debian软件仓库中没有的包

  Debian软件仓库中没有的软件,意味着Debian安装起来比较困难。管理员可以创建自己的Debian软件库和复制本地的Debian软件包。这也让管理员从库安装自定义Debian软件包的时候,进一步减少Debian依赖问题。

(内容来自百度百科)

本文标题:Debian系统
本文链接:https://xl.cndyun.com/post/163.html
作者授权:除特别说明外,本文由 admin 原创编译并授权 小龙的博客 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
«    2024年3月    »
123
45678910
11121314151617
18192021222324
25262728293031

分享:

支付宝

微信