Debian软件的安装和基本命令

admin 2015年05月11日 Linux学习 2080次阅读 查看评论

软件管理

一,APT以及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 --reinstall 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 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

 

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

功能

具体语句

示例

获取源码

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/DEBIANdirname名随意,将生成的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

6,转为低级的rpm

mv newdir fuckrpm

cat > /tmp/fuckrpm.spec << EOF

Name: foo

Version: version

Release: 1

License: GPL

Summary: "-"

%description

%files

EOF

 

 

cd fuckrpm

find . -type f -o -type l | sed 's/^.//g' | sort | uniq >> /tmp/fuckrpm.spec #注意转义空格

cd ..

rpmbuild --noclean --define "_rpmdir $PWD" --define "buildroot $PWD/fuckrpm" -bb /tmp/fuckrpm.spec

三,添加常用软件管理命令简短别名

软件管理是一个现代操作系统的基本功能,使用十分频繁,因此有必要设置简短的别名,仅字符界面有效添至~/.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 && unifont.pcf cp /path/to/windows/Fonts 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

export BROWSER=/path/to/firefox

export http_proxy=""

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

export XMODIFIERS=@im=fcitx

export GTK_IM_MODULE=fcitx

exec 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.6.0-amd64-netinst.iso (无稳定网络使用 debian-7.6.0-amd64-DVD-1.iso )进入安装界面,根据提示安装完毕。

安装基本工具:

dhclient eth0

dpkg --remove-architecture i386 && apt-get update

apt-get install --no-install-recommends \

gcc gdb binutils make bc libncurses-dev dpkg-dev default-jdk \

lib32z1 lib32stdc++6 groff gettext \

postgresql nginx php5-fpm php5-pgsql tomcat8 \

xserver-xorg-input-evdev xserver-xorg-video-vesa xserver-xorg xterm xinit openbox xdg-utils \

gtk2-engines atril \

xfdesktop4 xfce4-panel xfce4-battery-plugin xfce4-clipman xfce4-screenshooter xfce4-weather-plugin \

thunar tumbler ristretto xfce4-taskmanager xfce4-notifyd libnotify-bin \

gvfs eject vim-gtk recordmydesktop gimp \

fcitx fcitx-pinyin fcitx-ui-classic fcitx-frontend-gtk2 \

zip unzip unrar p7zip bzip2 xdg-utils engrampa \

dosfstools dos2unix ntfs-3g \

alsa-utils mplayer mesa-utils libtxc-dxtn-s2tc0 libgl1-mesa-dri \

echo -e "for f in xfdesktop xfce4-panel fcitx; do\n\texec \$f > /dev/null/ 2>&1 &\ndone\nexec openbox" > ~/.xinitrc

startx

#添加Firefox浏览器和VMPlayer虚拟机

#取消root警告

sed -i 's/geteuid/getppid/' /usr/bin/{thunar,xfce4-taskmanager}

#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 = "mate"

gtk-theme-name = ""

#设置一个鼠标主题

nano ~/.Xdefaults

Xcursor.theme: OpenZone

几种常见的联网方式

1,使用ppp拨号上网(ppp依赖libpcap0.8

####

cat > /etc/ppp/peers/wan << EOF

user "账号"

password "密码"

defaultroute

hide-password

noauth

persist

plugin rp-pppoe.so eth0

usepeerdns

EOF

####

ifconfig eth0 up

poff -a #断开

pon wan #连接

2,连接无线网络

3USB共享联网

dhclient usb0

合盖不休眠

nano /etc/systemd/logind.conf,添加一行

HandleLidSwitch=ignore

常见问题

一,自动登录

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

二,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设置

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.16/drivers/acpi/

sed -i "403s/DEVICE_ACPI_HANDLE/ACPI_HANDLE/" linux-3.16/drivers/acpi/bbswitch.c

sed -i "53iacpi-y\t\t\t\t+= bbswitch.o" linux-3.16/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 
关闭窗口


<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>

六,修改文件属性

#阻止文件被修改、删除等,用于备份文件

chattr +i <file>

chattr -R +i <directory>

#chattr还可以设置更多文件访问限制

 

杂七杂八

由于许多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

chmod 2755 _install/bin/busybox

#修改文件(parted等二进制文件复制到bin//lib64/ld-linux-x86-64.so.2复制到lib64/,使用ldd将其余库文件复制到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

/bin/echo OFF > /proc/acpi/bbswitch

/bin/echo 1000 > /sys/class/backlight/intel_backlight/brightness

[ -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权限

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基础系统):

debootstrap --include=debootstrap,ppp,iw,wpasupplicant,ftp,axel,locales,xz-utils,parted,grub2,initramfs-tools,btrfs-tools

--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

echo -e "HandleLidSwitch=ignore\nHandlePowerKey=ignore" >> /mnt/etc/systemd/logind.conf #禁用休眠

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.16小于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 #不生成可加载模块


« 上一篇 下一篇 » admin原创文章,转载请注明出处! 标签:Debian软件安装和基本命令

相关日志:

«   2019年11月   »
123
45678910
11121314151617
18192021222324
252627282930
控制面板
您好,欢迎到访网站!
  [查看权限]
网站分类
文章归档
网站收藏
友情链接
图标汇集
  • 又拍云
  • 订阅ipvb的RSS 2.0聚合