Archive for 2005年10月16日


Debian系统配制工具

都是命令行的配制工具:

rcconf
系统引导是你想要启动的服务,很有用工具。

base-config
基系统配制,第一次启动后,碰到的就是它吧,配制的方面很多哦,呵呵。

debconf Debian 包裹配制系统

dpkg-reconfigure 配制一个已经安装的包裹
很有用哦,任何安装的包裹都可以用它来配制。

apt-get install etherconf
dpkg-reconfiguration etherconf
网络的配制,包括主机名,IP,DHCP,DNS,GATEWAY,NETMASK。。。等。

如果如果你用lan上网,这几个文件很重要:
/etc/hostname主机名
/etc/network/interfaces 网络配制
/etc/resolv.conf DNS配制
如:
nameserver 202.96.104.18
nameserver 202.96.103.36

dpkg-reconfiguration xserver-xfree86
鼠标,键盘,显示器和显卡配制,能不能进X,全看它了。
或手工修改/etc/X11/XF86Config-4,作用一样。

modconf
大家肯定会在刚开始装系统时碰到那个另人望而生畏的基于表单的模块选取界面(我还曾专门写一贴,关于如何选取模块),就是它了。Debian想的非常周到,它把你须要的模块都做好了,只等你动手选了,以后忘了选或想移除模块,千万不要靠重装来解决问题,呵呵。

当然也可以手动添加了:
/etc/modules
这里写的都是你引导时要加载的内核模块,可以自己添加,
/etc/modules.conf
模块配制,这个不用自己改,
在你修改了/etc/modules后,可用update-modules来重建/etc/modules.conf和/etc/chandev.conf。

几个好用的命令:
modprobe – high level handling of loadable modules
用来加载模块
modprobe -c 显示当前正被使用的模块配制
modprobe -l 显示能匹配的模块列表,你可以找你需要的模块
modprobe modname 加载模块
modprobe -r modname 移除模块

insmod – install loadable kernel module
给正在运行的内核安装一个可加载模块。
rmmod
从正在运行的内核卸载模块。
lsmod
列出已加载的模块。
modinfo modname
显示每个模块的信息,很有趣。

apt-setup
配制apt源,就是安装时的你看到的那个,帮助你写/etc/apt/source.list

apt-get install aptconf
dpkg-reconfigure aptconf
配制apt,如禁用哪个apt源,自定义添加apt源(就象是个储藏室)等,找的是你的source.list,好玩。

apt-get install timezoneconf
dpkg-reconfigure timezoneconf
配制时区,日期,和时间。

apt-get install localeconf
dpkg-reconfigure localeconf
配制locale,不用我说了吧。

locale
查看本地的locale

dpkg-reconfigure locales
功能同localeconf

cpanel,别人提醒的,呵呵,凑个数
中文图形配制工具。

呵呵,我怎么知道的呢?
呵呵,apt-cache search debconf
记得多看看男人(man)呀,不要花太多的心思在mm上呀 :)

tzconfig
改变时区

update-alternatives
维护系统缺省的符号链结

1.一般用户su root后无法运行任何图形界面的软件?

ln -s /home/normaluser/.Xauthority /root/.Xauthority

2. X 无法启动

将XF86Config-4中的Option "UseFBDev" "true"
用#注释掉,就可以了

debian认不了光驱?

ln -sf /dev/hd? /dev/cdrom
其中hd?就是你光驱所在的接口

3.我的声卡问题解决 /dev/dsp 权限不够

正确方法是
# adduser 用户名 audio
# adduser wide288 audio
比如用户名为wide288,重新登录wide288用户

通过knoppix安装装debian的办法

用Knoppix启动后在root shell下执行knx-hdinstall按提示做几十分钟后就有一个完整的debian系统了。

4.把rpm包转成deb包的工具

就是alien了
先apt-get install alien安装,装完试试用alien -d 把rpm包转成deb包,俺用它转了G五笔的deb包,使用正常

alien -i name-of-the-pakage.rpm
直接就能装上了,有时候能解决一些rpm包的所谓关联性问题

请教,X下鼠标显示一个怪怪的方块?先谢了!

是Trident显卡的驱动问题,好像Sis的显卡也有这个问题,解决方法是:
在XF86Config-4的Device字段添加一行:
Option "sw_cursor"
在xfree86的网站上说是: Option "SWCursor" "on" ,我没有试过.

5.请问如何使一个软件不进行升级

somebody said hold was a status flag to tell apt not to automatically upgrade a package. apt will place packages on hold if they require packages that are not currently installable; you can ‘apt-get install pkgname’ to explicitly install the package. To put a package on hold, ‘echo pkgname hold | dpkg –set-selections’ or use the ‘=’ key on the package in dselect, or ‘echo pkgname install | dpkg –set-selections’ to remove the hold

我们说 hold ,其实是一个状态标志,目的是告诉 apt 停止自动升级某个包裹。
apt 将让一些包裹处于 hold 状态,如果他们请求的包裹现在不可安装;
你能够使用 ‘apt-get install pkgname’ 来安装包裹。
为了让包裹置于 hold. ‘echo pkgname hold | dpkg –set-selections ‘ 或在 dselect 中使用 ‘=’ 键于对应的包裹。
移除 hold 用
‘echo pkgname install | dpkg –set-selections’

用synaptic,软件包的状态在gui界面中显示得一清二楚.

这样也许选择的更多

dpkg –get-selections *>status.current
vi stantus.current//你想hold的package
dpkg –set-selections<STANTUS.CURRENT< p>

6.“could not locate char-major-10-135 ”的解决

It’s harmless. Just means you do not have the RTC clock module compiled into your kernel, or the module has not been loaded. There should be an alias for this in
/etc/modules.conf:

alias char-major-10-135 rtc

If not, check /etc/modutils/arch/i386 (if you have an intel/amd system) and put it in there, then run update-modules.

modconf might allow you to force load the rtc module, if it exists, at boot by putting rtc in /etc/modules. That may help.

As a last resort, if your kernel doesn’t have it, you may want to install a kernel with rtc support or compile your own.

引自 http://www.debianhelp.com

相信很多朋友都会看到这个讨厌的信息,上面的方法能解决问题。:)

以下是转贴
解决关于"char-major-10-135"的错误,原因是新内核没有加入RTC支持,请在内核配置中的"character device"里将"enhanced real time clock support"选上Y或M就没这个错误了
建议选上这个支持,很多要编译的程序需要这个支持,譬如mplayer

不知道这些错误大家有没有遇见过
modprobe:modprobe:Can’t locate module char-major-108
modprobe:modprobe:Can’t locate module char-major-6

我的办法最简单:

不管数值是什么,我统统的;

alias char-major-10-135 off

最后用off就好啦,管它呢,又不影响使用

7. rxvt下[Home]、[End]按键无效该怎么办?

在~/.inputrc中加上下面的代码即可。

# rxvt
"e[7~":beginning-of-line
"e[8~":end-of-line

8. 快速的debian镜像

deb http://debian.cn99.com/debian stable main contrib non-free
deb http://debian.cn99.com/debian-non-US stable/non-US main contrib non-free
deb http://debian.cn99.com/debian-security stable/updates main contrib non-free

deb-src http://debian.cn99.com/debian stable main contrib non-free
deb-src http://debian.cn99.com/debian-non-US stable/non-US main contrib non-free

以上的 stable,根据需要可以设置成 testing 和 unstable

9.让vim支持中文

VIM当然支持中文!!!!!!
gvim也支持!!!!
在~/.gvimrc中加上

源码:set encoding=euc-cn
set guifontset=-adobe-courier-medium-r-normal-*-*-100-*-*-m-*-iso8859-*,-*-simsun-medium-r-normal-*-*-100-*-*-c-*-gbk-*
set imcmdline

vim对中文的支持很大程序依赖于你用的term

emacs主要是用来编程,它对中文的处理并不是很好,不支持gbk
部分文件会被错误识别成big5码或utf-8,有些甚至用强制指定语言都无法正确显示

你把源代码编成deb包,再用dpkg -i安装不就行了
1. apt-get install vim-gtk
2. rxvt (the most popular , but only support GB2312), and mlterm (support GBK)

10.让emacs支持中文的解决办法

在~/.emacs中加入以下几行中文环境设置

源码:
(set-language-environment ‘Chinese-GB)
(set-buffer-file-coding-system ‘cn-gb-2312)
(set-keyboard-coding-system ‘cn-gb-2312)
(set-terminal-coding-system ‘cn-gb-2312)
(setq-default enable-multibyte-characters t)
(prefer-coding-system ‘cn-gb-2312)
(set-selection-coding-system ‘cn-gb-2312)

* 除了最后一行外,都跟xemacs兼容

11.我用的是rxvt-ml,感觉还行。
不能完全说vim不支持中文,我在支持中文的crxvt -gb 环境下使用vim,也可以编辑创建中文文件,文件可用cat显示出中文内容,但在vim中输入中文时显示的均为类似“xd6xd0xcexc”的乱码,在控制台的cce环境下情况也一样。可能还有些与vim配合得比较好的终端我还不知道,carlos有什么好的推荐?

我用vim + crxvt-gb很正常
~/.vimrc中加了"set encoding=euc-cn"没?
你的乱码现象真是很奇怪
实在不行就试试mlterm

12. gnome2.2下nautilus文件和文件夹图标问题

gnome2.2下nautilus文件和文件夹图标不能正确显示(也就是说不能辨别文件的类型)。但是在主菜单-》应用程序-》桌面首选项-》高级-》文件类型和相关程序中就可以正确显示图标。不知道哪里出错?
另:请问gftp能不能连接ssh1主机?

我刚开始也有类似问题,连桌面上的图标都显示不出来
其实不是辨别文件的类型的问题,而是图标的文件名和存放位置有变化

我尝试如下步骤,好象可以解决问题
apt-get install gnome-icon-theme
再把~/.gnome2和~/.nautilus换个名字备份一下
重新进入X
OK

希望这也能解决你的问题

13. root用户不能从KDM或者GDM登录管理器登入

编辑etc/gdm/gdm.conf中
[security]
AllowRoot=False

AllowRoot=True

14.debian减肥
orphaner

dpkg -l > filename

more filename
dpkg –purge remove packagename

debfoster

14.在Debian中,如何在NTSF中读写?

http://packages.debian.org/unstable…/ntfstools.html
找了个东西
apt-get install ntfstools
关于ntfs的文档
apt-get install ntfsdoc
看提示,操作ntfs分区有一定危险性。

15.两个有趣的工具scrot,aumix

Debian下用scrot抓图很方便,它是文本界面的,简单易用。
scrot filename.png #抓整个屏幕
scrot -s filename.png #抓选择区域
还有其他有趣的选项。

16. 在文本下听歌

mpg321

17. debian如何查看已安装的deb包的文件装到哪里了?用apt-get install * ,如何可以看软件包装到哪个地方?

dpkg -L package-name|more

18.如何把PROXY加到开机启动里!

我加入的是一条代理语句

#export http_proxy=http://123.123.123.123:8080

19. 每日更新unstable版

apt-get upgrade

20.gvim不能显示出中文的解决办法

首先请大家推荐一个好一点,小一点,强一点的写代码的编辑器?要支持完美的中文,因为要写html,要支持php,html,c,c++等等语法高亮,要能够显示当前行数等等……

显示输入中文的办法:

源码:
/etc/vim/gvimrc:

set encoding=chinese
set guifontset=-misc-fixed-medium-r-normal–14-130-75-75-c-70-iso8859-1,-misc-fixed-medium-r-normal-*-*-100-*-*-c-*-gbk-0
set imcmdline

21.NE2000网卡的设置问题

查看/etc/modules.conf,要保证有下面一的行
alias eth0 ne2k-pci

然后再来设置IP和DNS之类的

22 .deb的文件在linux怎么使用和安装呀!

这是Debain Linux提供的一种包封装格式。
安装:
dpkg –i 软件名.deb
卸载:
dpkg –e 软件名.deb

23.deb也可以转换成rpm
安装RedHat的alien包,然后
alien –to-rpm -i /path/manpages-zh_0.0.7-1_all.deb

24.关于debian汉化的一点补充

我记得当时我是用deforma这个软件来实现simsun字体移植的. 可惜具体步骤记不太清了.大家不妨试试.
我想补充的是在kde下面使用中文环境还得在 /etc/environment 里面加上和 .bash_profile一样的东东.

export LC_ALL=zh_CN.GB2312
export LC_CTYPE=zh_CN.GB2312
export LANG=zh_CN.GB2312
export XMODIFIERS="@im=Chinput"
export KDE_LANG=zh_CN.GB2312

不然只能从字符终端上起动软件才能有中文环境.

25. 终于找到了通过kdm启动后,使用输入法的方法,强烈推荐看看。

这几天,兄弟们可能和我一样,对用kdm这样的显示管理器启动后,无法调用输入法的而大伤脑筋,特地做了很多试验,终于找到了方法。比如我用的是XSIM,如果用fcitx或者其它的,
就把下面的改一改就行了。

修改/etc/X11/Xsession文件
加入
export XMODIFIERS=@im=XSIM
xsim &
好了,一切ok.
哈哈,又恢复了以前平静的日子。

当然解决的方法虽然简单,没什么新意,但我觉得碰到问题后,如何在自己脑子几乎一片空白的时候,一步步找到解决的方法,是很重要的。

26.linux下的outlook-Ximian evolution,推荐用用。

apt-get install evolution
如果没有的话,加入unstable试试看,挺好的。

下面为我安装Debian Sarge的过程,记录在此便于下次安装时查找。其中ATI显卡、GNOME、SCIM输入法、USB MOUSE、SIMSUN字体安装、MYSQL安装、WU-FTP安装、邮件服务器及DNS服务器安装因为目前我不需要或硬件不是相应设备,所以没有记录。

格式说明:单独一行中以"#"或"$"开头表示执行的shell命令,不以开头的"#"或"$"表示文件内容。如果文件内容中有"#"表示该行被注释掉。

一、安装前准备工作
将BIOS设置里PCI详细设置中的“reset configuration data"选项由Disable改为Enabled,如果不设在基本安装时网卡不能正常驱动和安装。
下载sarge-i386-netinst.iso(100M左右),并将其刻录成光盘(以下称为sarge光盘)。下载地址为:http://debian.cn99.com/debian-cd/sa…386-netinst.iso
下载某文件或用apt-cache search不到的软件包时请使用www.google.com或www.baidu.com搜索,比如下载libreadline5-dev包时,可以搜索关键字"lib readline5 dev deb"。

二、系统安装

1、安装基本系统

1.1、用sarge光盘启动,当出现"boot:"时,如果直接敲回车键则安装2.4内核,如果输入
linux26
则安装2.6.8-1-386内核。安装语言选中文,后面全部是中文提示。根据硬盘大小进行分区。建议:SWAP交换分区为内存的2-3倍。"/usr"分区适当大些,因为软件基本安装在这个分区。"/"分区大于150M即可。

1.2、安装后重启系统,系统自动执行base-config配置系统,如果是ADSL上网,则中止该程序执行。(因其ppp配置是基于拨号上网调制解调器配置)
在命令行方式(以下简称为shell环境)下,键入
#LANG=C
这样以英文方式显示不会出乱码;或者安装zhcon
#apt-get -y install zhcon
也可正常显示中文。
#pppoeconf
配置ADSL上网,配置完后键入
#pon dsl-provider或
#pon
即可连接上网。断开互联网连接用
#poff

1.3、shell环境下键入
#base-config
启动配置,apt软件安装源选择中国,建议选linuxforum,因速度最快。软件安装可以选择各种类型,如桌面环境、WEB服务器等,建议选择手动选择软件,然后退出。在shell环境下安装,这样可以实现精细控制安装。

2、安装桌面,即X-WINDOWS(建议安装,如果不用浏览只做服务器则不用装)
shell环境下输入
#apt-get install x-window-system-core kde kde-i18n-zhcn
也可详细安装如kde-core等,为省事可以选kde软件包则安装全部kde环境。

2.1、修改X-windows配置
X-windows配置文件在/etc/X11/XF86Config-4中。有三种方法(建议用第C种):
a.纯字符界面:
#xf86config
b.字符图形界面:
#dpkg-reconfigure xserver-xfree86
c.自动检测:
#apt-get install xdebconfigurator
自动检测硬件
#xdebconfigurator
根据检测结果修改XF86Config-4文件
#dexconf

2.2、安装nvidia显卡驱动(如果是nvidia显卡则必须)

2.2.1、安装nvidia驱动
#apt-get install nvidia-kernel-common_1.0.7174-1_all.deb
#apt-get install nvidia-kernel-2.6.8-1-386_1.0.6629+1_i386.deb

#apt-get install nvidia-glx_1.0.6629+1-2_i386.deb
上面3个文件可用GOOLE搜索,我的本地硬盘也已保存(安装完忘了从哪里下载的)如果谁提供FTP站点可以上载供大家使用。先安装kernel-common包再安装kernel包。
注意:nvidia-kernel-2.6.8这个包的版本号须和内核相同,sarge linux26系统安装则应该选2.6.8,且nvidia-kernel-2.6.8这个包和nvidia-glx这个包的小版本号必须相同,这里均为 6629。nvidia-kernel-common这个包的小版本号要等于或大于其它两个包就行,这里是7174。
加载nvidia内核模块,可以
每次开机后执行一次
#modprobe nvidia
也可在/etc/modules中增加一行内容
nvidia
然后执行:
#update-modules

2.2.2、修改XF86Config-4文件,文件中
Load "dri"
Load "Glcore"
Option "UseFBDev" "true"
上列3行前加#号或直接删除这几行;将
Driver "nv"
修改为
Driver "nvidia";

nvidia中BusID据实填,我填的是
BusID "PCI:1:0:0"
因为
#lspci
后的输出如下:
0000:01:00.0 VGA compatible controller: nVidia Corporation NV10 [GeForce 256 SDR ] (rev 10)

2.3、安装PS/2鼠标

2.3.1、加载PS/2内核模块
如果X窗口因鼠标原因不能启动,则加载PS/2内核模块,可以每次开机后执行一次:
#modprobe psmouse
#modprobe mousedev
也可在/etc/modules中增加两行内容
psmouse
mousedev
然后
#update-modules

2.4、XF86Config-4中相关内容:

Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "speedo"
Load "type1"
Load "vbe"
# Load "dri"
# Load "Glcore"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
Section "Device"
Identifier "NVIDIA Corporation NV10 [GeForce 256 SDR]"
Driver "nvidia"
BusID "PCI:1:0:0"
# Option "UseFBDev" "true"
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
EndSection

2.5、安装中文输入法fcitx
#apt-get install fcitx
新建文件/etc/X11/Xsession.d/25xchinput-start,使启动X窗口自动启动fcitx做为汉字输入法,该文件内容如下:

export G_FILENAME_ENCODEING=@GBK
export LANG=zh_CN.GB2312
export XMODIFIERS=@im=fcitx
fcitx

2.6、安装中文字体(FireFly新宋体)
#wget http://debian.okey.net/other/debian&#8230;.0.0-1_i386.deb
#dpkg -i ttf-fireflysung_1.0.0-1_i386.deb
不用修改/etc/fonts/local.conf也可使用该字体。wget是一个下载HTTP协议文件的工具。

2.7、启动X窗口
#startx&
建议安装firefox用于浏览,KDE的浏览器运行不稳定总崩溃。
#apt-get install mozilla-firefox mozilla-firefox-locale-zh-cn
http://www.firefoxcn.com 下载标签页浏览扩展TabbrowserExtensions.xpi
然后在firefox浏览器直接打开该xpi文件即可安装该扩展

3、安装开发环境(建议安装,如果用源码安装软件则必须)
#apt-get install gcc g++ make gdb m4 binutils
如果在X-windows下开发,建议安装图形开发环境
#apt-get install kdevelop3 kdbg

三、安装FTPD、TELNETD

1、为能远程登录,安装telnetd
#apt-get install telnetd
安装后,在本机或其它机器上执行telnet,如果以普通用户身份能正常登录,则安装正常。如需以root超级用户身份登录,可以先以普通用户身份登录,然后执行
$su

2、安装FTP服务器proftpd
#apt-get install proftpd
新建ftp用户,其主目录为/var/ftp,以ftp身份登录,在/var/ftp下新建/pub供下载和/incoming供上传。
修改配置文件/etc/proftpd.conf如下:

ServerName "wzwftp"
ServerType inetd
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayFirstChdir .message
ListOptions "-l"
DenyFilter *.*/
Port 21
MaxInstances 30
MaxLoginAttempts 1
RequireValidShell off
User nobody
Group nogroup
Umask 022 022
AllowOverwrite on
<Directory /*>
HideNoAccess on
AllowOverwrite off
</Directory>
<Anonymous /var/ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
MaxClients 10
AuthAliasOnly on #为允许anonymous登录,此行必须。
<Limit LOGIN>
AllowAll
</Limit>
<Directory pub>
<Limit WRITE>
DenyAll
</Limit>
AllowRetrieveRestart on
AllowAll
AllowOverwrite off
</Directory>
<Directory incoming>
Umask 022 022
<Limit READ WRITE>
AllowAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
AllowRetrieveRestart on
AllowStoreRestart on
DeleteAbortedStores off
AllowAll
AllowOverwrite on
</Directory>
DefaultChdir /var/ftp
LoginPasswordPrompt on
AllowAll
AnonRequirePassword off
AuthAliasOnly off
UseFtpUsers off
</Anonymous>

然后执行ftp 127.0.0.1,如果以anonymous身份登录正常,则ftp服务器正常安装。

四、源码安装服务器软件APACHE(HTTP浏览器服务器)、POSTGRESQL(SQL关系数据库服务器)、PHP(CGI语言)

1、下载解压源码软件包
下载软件包httpd-2.0.54.tar.bz2、postgresql-8.0.2.tar.bz2、php-5.0.4.tar.bz2,解压软件包
#tar xvjf httpd-2.0.54.tar.bz2
#tar xvjf postgresql-8.0.2.tar.bz2
#tar xvjf php-5.0.4.tar.bz2
在源码安装过程中,执行./configure命令后经常会出现某个开发库没找到中止,根据提示信息用apt-cache search搜索,apt-get install安装相应软件包即可。

2、安装APACHE
2.1、安装APACHE
#cd httpd-2.0.54
#./configure –enable-module=so (允许模块,为php安装做准备)
#make
#make install

2.2、使用和配置APACHE
修改/usr/local/apache2/conf/httpd.conf中DocmentRoot和其它相关内容,以设置自己的浏览器根目录。APACHE使用命令:
#/usr/local/apache2/bin/apachectl 选项
选项内容:start表示启动,stop表示停止,restart表示重新启动。

2.3、测试APACHE是否正常安装
安装后启动APACHE,在本机浏览器内敲入localhost,如果页面显示内容为“
您能看见这个页面,说明Apache web server 已经安装成功。等等”,则表示APACHE安装成功。

3、安装POSTGRESQL服务器

3.1、安装POSTGRESQL
#cd postgresql-8.0.2
#./configure enable-nls (打开本地语言支持)
#make
#make install

3.2、配置POSTGRESQL数据库
新建/var/sqldata目录供数据库使用(数据库使用目录可建于任何地方);新建用户postgres,该用户属postgres组,该用户主目录为"/var/sqldata"。然后
#chown postgres:postgres /var/sqldata
#chmod a+rx /var/sqldata
以postgres用户登录:
#su postgres

#login
新建目录:
$mkdir /var/sqldata/base
初始化数据库(数据库存放于/var/sqldata/base,设置默认字符集为UTF-8)
$/usr/local/pgsql/bin/initdb –locale=UNICODE -D /var/sqldata/base
创建数据库"test"
$/usr/local/pgsql/bin/createdb test
启动数据库服务(-i表示允许TCPIP连接,-D指定数据库目录,执行日志输出到logfile文件)
$/usr/local/pgsql/bin/postmaster -i -D /var/sqldata/base>logfile 2>&1 &
停止数据库服务,直接杀掉postmaster进程即可
$killall postmaster

3.3、测试是否正常安装
进行数据库操作:
#su postgres
$/usr/local/pgsql/bin/psql test
如果进入数据库命令行管理方式则表示数据库安装成功。

3.4、POSTGRESQL参考:请参考何伟平的网站: http://www.pgsqldb.org ,上面的POSTGRESQL文档和论坛非常好。

4、安装PHP

4.1、安装PHP
#cd php-5.0.4
#./configure –with-apxs2=/usr/local/apache2/bin/apxs –with-pgsql –with-zlib –with-bz2 –enable-ftp –with-gd –with-gettext –enable-mbstrin –with-readline
#make
#make install

4.2、配置PHP
#cp php.ini-dist /usr/local/lib/php.ini
apache配置文件httpd.conf中如果没有下列行,则增加。
LoadModule php5_module libexec/libphp5.so
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

4.3、测试PHP是否正常安装:
在浏览器服务的根目录(例如:/usr/local/apache2/htdocs)下新建文件lzzzz.php,文件内容如下所示:

然后在本机浏览器窗口地址栏内输入
localhost/lzzzz.php
如果有正常输出结果而不是显示文件内容本身或显示异常,则php安装正常。

五、apt和dpkg软件包管理工具使用要点

1、/etc/apt/sources.list文件内容:

deb ftp://ftp.linuxforum.net/debian/ unstable main contrib non-free
deb-src ftp://ftp.linuxforum.net/debian/ unstable main contrib non-free
deb http://security.debian.org/ stable/updates main

debain有三种类型发行版:stable最稳定,unstable有最新版本软件包但没有全面测试可能不太稳定,testing介于stable和unstable之间。

2、apt命令(主要用于管理网络上文件下载)简要

2.1、检索和显示
检索存在的包,参数中name可以是包名的一部分也可是全部。
#apt-cache search name
显示包信息,其中pkgname必须是软件包的全名。
#apt-cache show pkgname
显示软件包内容:
#apt-file search pkgname
#apt-file list pkgname
apt-file信息要更新则:
#apt-file update

2.2、安装软件包
下载并安装软件包。
#apt-get install pkgname1 pkgname2
例如:
#apt-get install telnetd
只下载不安装软件包,软件包被下载到/var/cache/apt/archives目录。
#apt-get -d install pkgname1 pkgname2,
重新安装软件包:
#apt-get –reinstall install pkgname1 pkgname2
安装时对所有提问回答"yes"选项:
#apt-get -y install pkgname1 pkgname2
如果安装进行不下去则用命令修复,然后再安装
#apt-get -f install

2.3、删除软件包
删除软件包:
#apt-get remove pkgname
彻底删除软件包(包括配置文件等):
#apt-get –purge remove pkgname
删除本机上下载的无用软件包,第1种全部删除:
#apt-get clean
第2种删除过时的:
#apt-get autoclean

2.4、更新软件包
更新软件包分两步,第1步更新软件包信息:
#apt-get update
第二步软件包升级:
#apt-get upgrade
或升级软件包的发行版:
#apt-get dist-upgrade。
软件升级时使某个包锁定(即不升级):修改/etc/apt/preferences文件,其中内容为:
Package: pkgname
Pin: pindef
Priority: pinpri
例如:
Package: gaim
Pin: version 0.58*,*表示锁定以0.58开头的所有版本。
Priority值含义是:<0表示永不安装,0-100表示不是有效版本不安装,>100且<1000表如有新版本则安装,>1000表示安装旧版本。

2.5、源码包管理
下载源码包:
#apt-get source pkgname
通常下载3个文件:.orig.tar.gz和.dsc和.diff.gz;然后解压在/var/cache/apt/archives/pkgname目录,其中/debian子目录是创建.deb包需要的文件。
下载并自动打包:
#apt-get -b source pkgname

2.6、在CD-ROM使用APT,dirname为CD-ROM挂载点目录名
#apt-cdrom add [-d dirname]

3、dpkg命令(主要管理本地硬盘和已安装的包文件)简要

3.1、检索和显示
查找文件属于哪个安装软件包,filename可以是全名也可以是部分名字,可以带路径也可以不带路径。
#dpkg -S filename
显示系统已安装的软件包列表:
#dpkg -l
因输出软件包名字太长则会被截断,所以加上COLUMNS环境变量,或在.bashrc和.profile中加上COLUMNS环境变量设置:
#COLUMNS=120 dpkg -l
列出未安装到系统上的软件包文件(.deb)中的文件列表,其中pkgfilename为软件包文件名:
#dpkg -c pkgfilename
列出已安装到系统上的软件包的安装文件列表,其中pkgname为软件包名:
#dpkg -L pkgname
显示未安装到系统上的软件包文件(.deb)中的包信息:
#dpkg -f pkgfilename
#dpkg -I pkgfilename
显示已安装到系统上的软件包的包信息:
#dpkg -s pkgname
#dpkg -p pkgname

3.2、安装软件包
安装本地硬盘上的软件包,pkgfilename为软件包的全名:
#dpkg -i pkgfilename
例如
#dpkg -i ttf-fireflysung_1.0.0-1_i386.deb
解开但不配置软件包:
#dpkg –unpack pkgfilename
解开且配置软件包:
#dpkg –configure pkgfilename

3.3、删除软件包
删除软件包:
#dpkg -r pkgname
彻底删除软件包(包括配置文件等):
#dpkg -P pkgname

3.4、生成软件包
#dpkg -b directoryname
#dpkg -b filename

六、常用配置工具
1、显示系统信息
列出PCI信息(如显卡、网卡、声卡等):
#lspci

显示当前内核:
#cat /proc/verion
显示系统信息:
#uname -a
显示开机过程的信息:
#dmesg
显示当前locale
#locale

2、系统配置
配置系统引导服务:
#rcconf
基本系统配置:
#base-config
软件包管理:
#debconf
#aptconf
软件包重新配置:
#dpkg-reconfigure pkgname
locale配置:
#localeconf
#dpkg-reconfigure locales

3、网络配置
ADSL上网配置:
#pppoeconf
网络配置用下面命令,涉及的几个主要文件:/etc/hostname(主机名字),/etc/hosts,/etc/network/interfaces(开机网络配置),/etc/resolv.conf(DNS配置)。
#ifconfig

4、X窗口配置见第二部分2.1节。

5、内核模块配置:
#modconf
/etc/modules文件中是开机加载模块,修改该文件后应用
#update-modules
自动更新/etc/modules.conf和/etc/chandev.conf文件。
modprobe命令管理模块时考虑与其它模块依赖关系,较insmod只针对某模块管理方便安全。
加载模块:
#modprobe modname
卸载模块:
#modprobe -r modname
当前使用模块的配置:
#modprobe -c
显示安装的模块:
#modprobe -l
安装一个可加载模块:
#insmod modname
卸载模块:
#rmmod modname
列出已加载模块:
#lsmod
显示模块信息
#modinfo modname

主要工具
dselect — 使用菜单界面的软件包管理工具(最上层的包管理工具)
dpkg — 安装软件包(管理软件包中的文件)
apt-get — 安装软件包(管理软件包,CLI APT)
tasksel — 安装任务套件(管理面向某方面任务的一套软件包)
aptitude — 安装软件包(管理软件包和任务套件,ncurses APT)
deity — 另一种ncurses APT
synaptic, gsynaptic — 另一种GUI APT

它们不是同级的工具。`dselect’运行于APT(命令行命令是`apt-get’)和`dpkg’之上。

APT使用`/var/lib/apt/lists/*’来跟踪可用的软件包,而`dpkg’使用的是 `/var/lib/dpkg/available’。如果直接用`apt-get’或同类工具如`aptitude’等来安装软件包,千万别忘了更新 `/var/lib/dpkg/available’文件,可以使用dselect的`[U]pdate’选项或在运行`dselect
update’、`tasksel’或`dpkg -l’前执行shell命令行“`dselect update’”。

在理关联软件包的方式上,`apt-get’会自动搜索下载_depends_类软件包,但不会理睬_recommends_和_suggests_类软件包,而`dselect’在软件包的选择方面采用菜单方式操作,对_depends_、_recommends_和_suggests_三类相关软件包均给出提示。`aptitude’则提供了选项下载安装所有_depends_、_recommends_和_suggests_类软件包。

方便的工具

apt-cache – 在本地缓冲区检查包文件
dpkg-reconfigure – 重新配置已安装的软件包(如果它是使用debconf进行配置的)
dpkg-source – 管理源码包
dpkg-buildpackage – 自动生成包文件

Debian软件包管理基础

地安装软件包称之为_task_,还可以使用软件包管理工具逐个地安装软件包或升级系统。

使用`tasksel’或`aptitude’进行_task_安装

`tasksel’是_Debian的任务安装器_,系统安装过程中它为用户提供了一种`简易’软件包选择方式。

如果你希望完装的某项常规功能包含了许多软件包,最好的办法就是使用它来安装。运行如下命令:

# dselect update
# tasksel

`aptitude’亦可访问_task_。用它不仅可以选择_tasks_还可以对_task_选项菜单中的软件包进行逐个取舍。

设置APT系统

使用`testing’发布版的用户,有时需要对系统进行有选择性地升级
首先,在`/etc/apt/sources.list’中添加`stable’、`testing’和`unstable’镜像源,接着编辑`/etc/apt/preferences’,设置合适的Pin-Priority。
[1]

Package: *
Pin: release a=stable
Pin-Priority: 500

Package: *
Pin: release a=testing
Pin-Priority: 600

Package: *
Pin: release a=unstable
Pin-Priority: 50

[1] I kept the description around here as is to maintain consistency with
other parts. If you are really tracking `testing’ or `unstable’, you
should actually remove references to `stable’ in
`/etc/apt/sources.list’ and `/etc/apt/preferences’. This is because
`testing’ starts as a copy of `stable’.

用 dselect代替apt:

`dselect’会自动选上所有“Required”、“Important”和“Standard”类软件包,在Potato系统中,某些大型应用程序如TeX和Emacs处于这些分类中,在初次安装系统时最好手工取消对它们的选择(输入“_”)。在Woody稳定版中,这些大型应用程序被移入 “Optional”类软件包。

`dselect’的用户界面有点怪。有4个相似命令(注意是大写字母!):

Key-stroke Action
Q 退出。确认当前的选择然后退出。
(override dependencies)
R 恢复!我放弃我做出的选择
D 不管它!我不管dselect有什么建议,照我说的做!
U 照系统的建议做

使用`D’和`Q’可以选择有冲突的选项,你要自负风险,所以使用这些命令要小心。当前`dselect’是一款成熟的菜单驱动式工具,在对_suggests_和_recommends_类软件包的选择控制方面,它提供相当棒的微操作能力。

在`/etc/dpkg/dselect.cfg’中加上一行包含“expert”选项以减少干扰。对于速度慢的机器,请在其它速度快的机器上运行`dselect’选好软件包,然后用`apt-get
install’安装它们。

对于没有定义Pin-Priority的软件包,`dselect’不会访问它们。

使用 aptitude程序:

`aptitude’是一款新的菜单驱动式软件包安装工具,与`dselect’很相似。它亦可作为命令行工具`apt-get’的替代品。

`aptitude’可接受单字符命令,通常是小写字母。

Key-stroke Action
F10 菜单
? 键盘命令帮助
u 更新软件包信息
g 下载并安装选定的软件包
q 保存修改并退出当前屏幕
x 放弃修改并退出当前屏幕
Enter 浏览某软件包的相关信息

`aptitude’提供了选项可自动选取所有_depends_、_recommends_和_suggests_类软件包。可在`F10
-> Options -> Dependency handling’菜单中设置它。

通过`aptitude’可访问某软件包的所有版本。

apt-cache和apt-get命令

还是以上面使用`testing’发布版的用户为例,可使用下列命令管理系统:

* `apt-get -u upgrade’

跟踪`testing’发布版的更新情况,对系统上所有软件包进行升级并从`testing’处安装关联软件包。

* `apt-get -u dist-upgrade’

跟踪`testing’发布版的更新情况,对系统上所有软件包进行升级并从`testing’处重新分析关联关系并安装关联包。

* `apt-get -u dselect-upgrade’

跟踪`testing’发布版的更新情况,对系统上所有在`dselect’中选定了的软件包进行升级。

* `apt-get -u install ‘

从`testing’处安装及其关联包。

* `apt-get -u install /unstable’

从`unstable’处安装并从`testing’处安装关联包。

* `apt-get -u install -t unstable ‘

从`unstable’处安装及其关联包。注意须设置`unstable’的Pin-Priority为990。

* `apt-cache policy ‘

检查软件包的状态。

* `apt-cache show | less’

查看软件包的有关信息。

* `apt-get install ‘

安装软件包的特定版本<2.2.4-1>。

* `apt-get -u install ‘

安装软件包并删除软件包。

* `apt-get remove ‘

删除软件包,但保留其配置文件。

* `apt-get remove –purge ‘

删除软件包及其配置文件。

在上面的例子中用`-u’选项的作用是在实际升级之前将所有将要升级的软件包列出,并提示用户确认。下面的操作可将`-u’设置为默认行为:

$ cat >> /etc/apt/apt.conf << .
// Always show packages to be upgraded (-u)
APT::Get::Show-Upgraded "true";
.

使用`-s’可进行模拟升级,并不进行真正的升级行为。

跟踪某Debian发行版

根据个人的喜好,选择要跟踪的Debian发行版
`设置APT系统’的样例文件`/etc/apt/preferences’:

track stable: 将testing的Pin-Priority改为50
track testing: 保持上面的设置不变
track testing(unstable): 将unstable的Pin-Priority改为500
track unstable(testing): 将unstable的Pin-Priority改为800

有关如何选定Pin-Priority的说明:在上表中,从上而下代表了某个版本
从上个版本刚刚发布之后到下一版进入冻结期之前这段时间经历的各个阶段。

请注意,跟踪`testing’发行版的Debian有一个负面影响,安全补丁的更新很慢。

请注意,如果将Debian各版本混合,例如将`testing’混入`stable’或将`unstable’混入`stable’,这会造成众多关键软件包不自觉地从`testing’处或`unstable’处获得,结果引起许多麻烦。

如何对`/etc/apt/preferences’进行设置,将某些关键包锁定在成熟版本,而让其它非关键包跟踪不太成熟的新版本,可参考样例目录
(http://www.debian.org/doc/manuals/debian-reference/examples/)中的 `preferences.testing’和`preferences.unstable’文件。另一方面,`preferences.stable’ 强制所有软件包降级到“stable”。

将所有软件包降级到`stable’

要将所有软件包降级到`stable’,可按下面的方法编辑`/etc/apt/preferences’:

Package: *
Pin: release a=stable
Pin-Priority: 1001

然后运行“`apt-get upgrade’”,由于Pin-priority >
1000而引起强制降级。注意,该操作可能会在关联性方面发生一点问题。

/etc/apt/preferences概述

`设置APT系统’中展示的`/etc/apt/preferences’样例文件里,首行`Package:
*’表示该段落指令作用于所有软件包。可以通过指定软件包名称来为某个特定的软件包设置指定的Pin-Priority。

接下来的一行是`Pin: release a=stable’表示`apt-get’从包含`Archive:
stable’节的`Release’文件所在的目录获得`Packages.gz’文件。

最后一行`Pin-Priority: 500’指定Pin-Priority为500。

如果多个软件包同名,系统通常会安装拥有最高Pin-Priority的软件包。

在此,Pin-Priority表示:

* 1001及以上:可降级优先级。

Pin-Priority处于该范围的软件包允许降级操作。

* 100到1000:标准优先级。

不允许降级。几个key Pin-Priority的值:

* 990:由`–target-release’或apt-get(8)`-t’选项设置的优先级。

* 500:所有默认软件包文件的优先级。

* 100:当前安装软件包文件的优先级。

* 0到99:非自动优先级。(仅用于软件包没有安装或没有别的可用版本时。)

* 小于0:决不选择该版本。

按下面的方法设置`/etc/apt/apt.conf’可获得与`–target-release’一样的效果:

# echo ‘APT:efault-Release "testing";’ >> /etc/apt/apt.conf

命令行选项`–target-release’和`/etc/apt/apt.conf’中的设置会顶替`/etc/apt/preferences’的设置。在玩`/etc/apt/preferences’的时候小心两者冲突。

检测程序错误寻求帮助

如你使用某个软件包出现问题,在寻求帮助或发送错误报告之前请确认查看过下列站点(`lynx’、`links’和`w3m’同样好用):

$ lynx http://bugs.debian.org/
$ lynx http://bugs.debian.org/ # 如果你知道软件包名称
$ lynx http://bugs.debian.org/ # 如果你知道错误序号

如有疑问,可阅读帮助文件。设置`CDPATH’如下:

export CDPATH=.:/usr/local:/usr/share/doc

然后输入

$ cd $ pager README.Debian # if this exists
$ mc

APT升级错误及解决方法

从`unstable’/`testing’进行升级时可能出现第 5.3 节,
`升级Debian系统’中提到的软件包关联问题。多数情况下,是因为升级的软件包所需的新增的关联包没有安装。可使用如下方法解决:

# apt-get dist-upgrade

如果这招无效,可以重复下面的方法至到问题解决:

# apt-get upgrade -f # continue upgrade even after error
… 或
# apt-get dist-upgrade -f # continue dist-upgrade even after error

一些的确存在问题的升级脚本会引起持续出错。最好的解决方法是检查该软件包的安装脚本`/var/lib/dpkg/info/packagename.<{post-,pre-}{install,removal}>’然后运行:

# dpkg –configure -a # 配置所有未完成安装的软件包

如果脚本报告缺少配置文件,查看一下`/etc’中相关的配置文件。如果配置文件有`.new’扩展名(或其它类似的扩展名),去掉(`mv’)它的扩展名。

从unstable/testing进行升级时可能出现软件包关联问题。可用这个方法智取:

# apt-get install -f # 重载坏关联

使用dpkg救助

如果系统的`dselect’(APT)受损无法完成安装,可使用`dpkg’来恢复:

# cd /var/cache/apt/archives
# dpkg -i libc6* libdb2* perl*
# dpkg -i apt* dpkg* debconf*
# dpkg -i * # 直至不再出错

如果软件包丢失,用下述方法从镜像源
(http://www.debian.org/mirror/)下载:

# mc # use "FTP link" pointing to Debian FTP server

现在,在HTTP/FTP服务器上,软件包的真正位置不再是传统的`/dist’目录而是新的`/pool’目录。

然后开始安装:

# dpkg -i /var/cache/apt/archives/

对于坏关联,可这样解决:

# dpkg –ignore-depends=,… -i # dpkg –force-depends -i # dpkg –force-depends –purge # dpkg –force-confmiss -i # Install missing conffile

恢复软件包选择状态的数据

如果`/var/lib/dpkg/status’因为某种原因坏掉了,Debian系统将会完全丢失软件包选择状态的数据。赶快到 `/var/lib/dpkg/status-old’或`/var/backups/dpkg.status.*’下找找旧的 `/var/lib/dpkg/status’文件。

将`/var/backups/’放在其它的分区是个好习惯,因为该目录包含了许多非常重要的系统数据。

如果旧的`/var/lib/dpkg/status’文件也坏了,仍可以从`/usr/share/doc/’下的目录进行恢复这些信息。

# ls /usr/share/doc |
grep -v [A-Z] |
grep -v ‘^texmf$’ |
grep -v ‘^debian$’ |
awk ‘{print $1 " install"}’ |
dpkg –set-selections
# dselect –expert # reinstall system, de-select as needed

/var被删除后如何恢复系统

`/var’目录包含着定时更新的数据如mail,它们很容易遭破坏。将目录放到别的分区可降低风险,如果最坏的事情发生了,可以通过重建`/var’目录来挽救Debian系统。

从相同或旧版本的最简Debian系统中取得`/var’目录的内容框架,例如var.tar.gz
(http://people.debian.org/~osamu/pub…膔oot目录,接着

# cd /
# mv var var-old # 如果剩有有用内容
# tar xvzf var.tar.gz # 使用Woody框架文件
# aptitude # 或用dselect

上述步骤可使系统恢复工作。
`恢复软件包选择状态的数据’中描述的技术加速软件包选择数据的恢复。
([FIXME]:该过程需要更多的实践来检验)

为无法启动的系统安装软件包

使用Debian急救软盘/CD或从多启动Linux系统其它分区启动。
`启动系统’.
将无法启动的系统挂载到`/target’并使用`dpkg’的chroot安装模式。

# dpkg –root /target -i

接下来就可以着手配置并解决问题。

如是只是由于`lilo’损坏而造系统无法启动,可使用标准Debian急救盘启动。假设你的root分区位于`/dev/hda12’且想使用runlevel
3,在启动提示符输入:

boot: rescue root=/dev/ 3

这样,你就可以使用软盘中内核启动系统,新系统的功能基本齐全。(可能丢失某些内核特性或模块)

如果dpkg命令出错该怎么办

如果`dpkg’损坏就不能安装任何`.deb’文件。下面的操作可帮助你修复这种状况。(在第一行,你可将“links”替换成你喜欢的浏览器。)

$ links http:///debian/pool/main/d/dpkg/
… 下载完好的dpkg__.deb
$ su
password: *****
# ar x dpkg__.deb
# mv data.tar.gz /data.tar.gz
# cd /
# tar xzfv data.tar.gz

对`i386’,亦可用`http://packages.debian.org/dpkg’作为URL。

文件信息

查找特定文件所属的软件包:

$ dpkg {-S|–search} pattern # search for pattern in installed packages
$ wget http://ftp.us.debian.org/debian/dists//
$ zgrep -e pattern
# find filename-pattern of files in the debian archive

或使用专门的软件包命令:

# apt-get install dlocate
# conflicts with slocate (secure version of locate)
$ dlocate # fast alternative to dpkg -L and dpkg -S

# apt-get install auto-apt # on-demand package installation tool
# auto-apt update # create db file for auto-apt
$ auto-apt search # search for pattern in all packages, installed or not

软件包信息

搜索并显示包文件的信息。编辑`/etc/apt/sources.list’,让APT指向正确的包文件。如果想了解testing/unstable中的相应软件包与当前系统安装的软件包有何差别,使用`apt-cache
policy’—更好。

# apt-get check # 更新缓冲区并检查损坏的软件包
$ apt-cache search # 按文本描述搜索软件包
$ apt-cache policy # 软件包的priority/dists信息
$ apt-cache show -a # 显示所有dists中软件包描述信息
$ apt-cache showsrc # 显示相应源码包的信息
$ apt-cache showpkg # 软件包调试信息
# dpkg –audit|-C # 搜索未完成安装的软件包
$ dpkg {-s|–status} … # 已安装软件包描述
$ dpkg -l … # 已安装软件包的状态(每个占一行)
$ dpkg -L … # 列出软件包安装的文件的名称

如果是Woody发布版没有为`apt-cache showsrc’建档,但该命令可用

你也这可这样查看软件包信息(我用`mc’浏览):

/var/lib/apt/lists/*
/var/lib/dpkg/available

比较下面的文件可以确切了解最近的安装过程对系统造成了那些改变。

/var/lib/dpkg/status
/var/backups/dpkg.status*

使用APT进行全自动系统安装

进行全自动安装,要在`/etc/apt/apt.conf’中加上一行:

Dpkg::Options {"–force-confold";}

另一种等阶的方法是运行`apt-get -q -y
‘。这种方法可能产生严重的负作用,所以使用起来要小心。参阅apt.conf(5)和dpkg(1)。

安装完毕以后重新配置已安装软件包’中的方法配置特定的软件包。

重新配置已安装软件包

使用下列方法重新配置已安装软件包。

# dpkg-reconfigure –priority= […]
# dpkg-reconfigure –all # 重新配置所有的软件包
# dpkg-reconfigure locales # 生成别的locales
# dpkg-reconfigure –p= xserver-xfree86 # 重新配置X服务器

如果你想永久改变`debconf’对话框模式,可这么做。

某些程序用于生成特殊的配置脚本。

apt-setup – 创建/etc/apt/sources.list
install-mbr – 安装主引导(Master Boot Record)管理器
tzconfig – 设定本地时间
gpmconfig – 设置gpm鼠标daemon
sambaconfig – 在Potato中配置Samba(Woody使用debconf来配置)
eximconfig – 配置Exim (MTA)
texconfig – 配置teTeX
apacheconfig – 配置Apache (httpd)
cvsconfig – 配置CVS
sndconfig – 配置声音系统

update-alternatives – 设定默认启动命令,例如设定vi启动vim
update-rc.d – System-V init脚本管理工具
update-menus – Debian菜单系统

删除软件包

删除软件包但保留其配置文件:

# apt-get remove …
# dpkg –remove …

删除软件包并删除配置文件:

# apt-get remove –purge …
# dpkg –purge …

阻止旧软件包升级

举个例子,要阻止`libc6’和`libc6-dev’通过`dselect’或使用`apt-get -u
upgrade ‘命令升级,可执行:

# echo -e "libc6 holdnlibc6-dev hold" | dpkg –set-selections

这种方法不影响`apt-get -u install ‘命令操作。要阻止`apt-get
-u upgrade ‘或`apt-get -u
dist-upgrade’命令对软件包执行的强制自动降级行为,可在`/etc/apt/preferences’中加上:

Package: libc6
Pin: release a=stable
Pin-Priority: 2000

这里“`Package:’”后不能使用通配符如“`libc6*’”,如果要保持所有与`glibc’源码包相关的二进制包的版本同步,可以明确的列出它们。

该命令可以显示处于“阻止”状态的软件包:

dpkg –get-selections "*"|grep -e "hold$"

stable/testing/unstable混合系统

`apt-show-versions’可以列出发行版中可用软件包的版本。

$ apt-show-versions | fgrep /testing | wc
… 你有多少testing软件包
$ apt-show-versions -u
… 列出可升级的软件包
$ apt-get install `apt-show-versions -u -b | fgrep /unstable`
… 将所有unstable软件包升级到最新版本

删除缓存包文件

使用APT安装软件包会在`/var/cache/apt/archives’目录留下缓存文件,要清除这些文件可使用:

# apt-get autoclean # removes only useless package files
# apt-get clean # removes all cached package files

记录/拷贝系统配置

对软件包选择情况进行本地备份:

$ dpkg –get-selections "*" > # or use *

`“*”’使`’包含那些被指定“完全删除(purge)”的文件。

你可将这个文件发送到另一台电脑并在那儿按文件中的选择进行软件包安装。

# dselect update
# dpkg –set-selections <
# apt-get -u dselect-upgrade # dselect install

stable系统引入软件包

对stable系统进行部分升级,在软件运行环境中重新编译源码的确是个诱人的想法,这样可以避免由于关联关系不得不对大量软件包升级。首先,将下列镜像源加入
/etc/apt/sources.list:(以下是美国的Debian源)

deb-src http://http.us.debian.org/debian testing
main contrib non-free
deb-src http://non-us.debian.org/debian-non-US testing/non-US
main contrib non-free
deb-src http://http.us.debian.org/debian unstable
main contrib non-free
deb-src http://non-us.debian.org/debian-non-US unstable/non-US
main contrib non-free

由于屏幕输出的限制,上述每条`deb-src’命令均分成了2行,实际上在`sources.list’中它们均为单行。

然后下载源码并在本地生成软件包:

$ apt-get source $ dpkg-source -x $ cd … 查找需要的软件包(编译所需的关联包列在.dsc文件中)并安装它们,
你还需要“fakerroot”软件包。

$ dpkg-buildpackage -rfakeroot

…or (no sig)
$ dpkg-buildpackage -rfakeroot -us -uc # use "debsign" later if needed

…Then to install
$ su -c "dpkg -i "

通常,需要安装一些带“-dev”后缀的软件包以满足关联关系。`debsign’在`devscripts’软件包中。`auto-apt’可以轻松解决这些关联问题。请使用`fakeroot’,如是没有必要,就别使用root帐号。

在Woody中,这些关联问题已被简化。例如,编译`pine’源码包:

# apt-get build-dep pine
# apt-get source -b pine

完结:以上全部方法同样可用于ubuntu