Duangw

Slackware 12.1

 

主要内容:基本配置X和本地化应用软件网络服务普通用户

 

1 基本配置

1.1 初始安装

选择除kdei之外的所有软件包,进行全部安装。

kdei只安装简体中文(zh_CN)和繁体中文(zh_TW)包,共4个安装文件。

不安装引导管理器。

配置网络。

只启动openssh和syslog两个服务。

 

1.2 引导配置

这里Slackware是通过别的系统上的grub来进行引导的。在Slackware下安装grub来负责多重系统引导的方法见:Grub多重引导

编辑grub所在系统的menu.lst,增加Slackware的启动项。以amd64机器为例:

title Slackware 12.1 (2.6.24.5-smp)
root (hd1,2)
kernel /boot/vmlinuz-huge-smp-2.6.24.5-smp ro root=/dev/sdb3

 

1.3 挂载分区(amd64机器)

创建挂载点:

# mkdir /pub

编辑/etc/fstab,增加:

/dev/sda7  /pub           ext3     defaults         1   2
/dev/sdb8  /pub/ext3  ext3     defaults         1   3
/dev/hda4  /pub/ext3b ext3     defaults         1   4
/dev/sda5  /pub/fat  vfat  defaults,fmask=133,utf8  0   0
/dev/sda6  /pub/ntfs  ntfs-3g  defaults,umask=022,\
fmask=133,locale=zh_CN.UTF-8    0   0

这里取消了FAT分区和NTFS分区中的文件的执行权限,体现在fmask参数上。

NTFS分区的读写采用ntfs-3g工具来处理,由于ntfs-3g缺省的文件掩码为0,不像FAT自动继承用户的umask设置,所以增加了umask选项。

此外,两者都采用UTF-8编码。

 

1.4 安装补丁

一般来说,安装一个系统并不总是在该系统刚刚发布之时,此时可能已经有一些补丁程序。新系统的第一步就是安装这些补丁,填补发现的漏洞。

选择一个速度快的镜像站点下载补丁程序(位于slackware-12.1/patches/packages),在安装系统之前先准备好这些补丁(如果有的话)。

首先进入单用户模式:

# init 1

进入补丁所在目录,更新:

# upgradepkg *.tgz

重新启动。

以上是一般操作步骤。有些特殊补丁会有额外的操作,根据安全公告的详细描述进行相应处理。

:我一般用lftp在本地建立一个补丁包镜像,供本地所有系统使用,以避免重复下载。以Australia的一个镜像为例:

# cd /pub/software/slackware
# lftp ftp://mirror.pacific.net.au/linux/slackware/
>>> mirror -ner slackware-12.1
>>> cd slackware-12.1
>>> lcd slackware-12.1
>>> mirror -ne patches
>>> bye

通过关注Slackware的ChangeLogs,或订阅邮件列表,来了解更新动态。

 

1.5 配置网络

在初始安装时进行了网络配置,这样可以省很多功夫。

由于是多网卡机器,而安装时只配置了一块网卡,所以还需要一些配置。

首先查看udev配置文件/etc/udev/rules.d/70-persistent-net.rule,通过MAC地址固定网卡编号。

编辑/etc/rc.d/rc.inet1.conf,配置其余网卡的IP地址等参数。

如果修改别的选项,则还涉及:

 

1.6 编译内核(amd64机器)

当前的内核配置只能使用3G内存,为了识别全部4G内存,需要打开内核的PAE选项。同时将CPU类型设置为AMD64,以打开一些相关选项。

内核配置基于huge-smp版本:

# cd /usr/src/linux
# make mrproper
# cp /boot/config-huge-smp-2.6.24.5-smp .config
# make menuconfig

几个选项设置:

(1).为了与原来的内核文件区别,增加-PAE后缀:

General setup  ---> 
	(-smp-pae) Local version - append to kernel release 

(2).设置CPU类型和PAE:

Processor type and features  --->
	Processor family (Opteron/Athlon64/Hammer/K8)  --->
		(X) Opteron/Athlon64/Hammer/K8
	High Memory Support (64GB)  --->
		(X) 64GB

编译安装:

# make
# make modules_install
# cp System.map /boot/System.map-huge-smp-2.6.24.5-smp-pae
# cp .config /boot/config-huge-smp-2.6.24.5-smp-pae
# cd arch/x86/boot
# cp bzImage /boot/vmlinuz-huge-smp-2.6.24.5-smp-pae

编辑grub所在系统的menu.lst,增加新内核的启动项:

title Slackware 12.1 (2.6.24.5-smp-pae)
root (hd1,2)
kernel /boot/vmlinuz-huge-smp-2.6.24.5-smp-pae ro root=/dev/sdb3

重新启动。

如果要使用generic内核,则进行如下步骤(配置选项同上):

# cd /usr/src/linux
# make mrproper
# cp /boot/config-generic-smp-2.6.24.5-smp .config
# make menuconfig
# make

备份内核模块:

# cd /lib/modules
# mv 2.6.24.5-smp-pae 2.6.24.5-smp-pae.huge

安装:

# cd /usr/src/linux
# make modules_install
# cp -i System.map /boot/System.map-generic-smp-2.6.24.5-smp-pae
# cp -i .config /boot/config-generic-smp-2.6.24.5-smp-pae
# cd arch/x86/boot
# cp -i bzImage /boot/vmlinuz-generic-smp-2.6.24.5-smp-pae

制作initrd:

# cd /boot
# mkinitrd -c -m ext3

编辑grub所在系统的menu.lst,增加新内核的启动项:

title Slackware 12.1 (2.6.24.5-generic-smp-pae)
root (hd1,2)
kernel /boot/vmlinuz-generic-smp-2.6.24.5-smp-pae ro root=/dev/sdb3
initrd /boot/initrd.gz

重新启动。

 

1.7 配置声卡

执行:

# alsaconf

选择对应的声卡型号,创建声卡数据。

 

1.8 配置防火墙脚本

有关各个iptables脚本的详细内容见:Iptables脚本

这里使用客户机脚本rc.iptables-client.ref:

# ln -s /pub/newpkg/slackware /newpkg
# cp /newpkg/rc.iptables-client.ref /etc/rc.d/rc.iptables
# chmod a+x /etc/rc.d/rc.iptables

修改/etc/rc.d/rc.S文件,在末尾添加模板rc.S.ref的内容。

 

1.9 设置内核参数

有关脚本的详细内容见:Sysctl脚本

# cp /newpkg/rc.sysctl.ref /etc/rc.d/rc.sysctl
# chmod a+x /etc/rc.d/rc.sysctl

编辑/etc/rc.d/rc.M,将模板rc.M.ref内容加入到rc.inet2的前面。

 

1.10 配置PPPOE(可选)

# pppoe-setup

设置用户名、密码、网卡接口(eth0)、选择不要防火墙,由ISP提供DNS地址。

拨号:

# pppoe-start

断开:

# pppoe-stop

查看状态:

# pppoe-status

 

1.11 建立普通用户

这里使用一个额外的分区(挂载在/pub目录下)来存放所有系统的普通用户文件(amd64机器):

# mkdir /pub/home/slackwre-12.1
# cd /home
# mv * /pub/home/slackware-12.1/
# cd /
# rmdir home
# ln -s /pub/home/slackware-12.1/ home

添加普通用户:

# useradd -m -s /bin/bash duangw

编辑/etc/group文件,将用户添加到audio组和cdrom组,以便能使用声卡和K3b。

audio:x:17:root,duangw
cdrom:x:19:root,duangw

 

1.12 启用HAL(可选)

启用HAL(Hardware Abstraction Layer):

# cd /etc/rc.d
# chmod a+x rc.hald

编辑/etc/group,为用户duangw增加组plugdev,HAL通过该设置来决定用户是否有权限使用此功能:

plugdev:x:83:root,duangw

 

 

2 X和本地化

2.1 配置Xwindow

执行xorgsetup,配置Xwindow,一切都按缺省值:

# xorgsetup

弄好后,执行startx,看看能正常启动Xwindow就行了。即使因为驱动问题启动不了也没关系,这只是初始配置,后面还要专门安装显卡驱动。

 

2.2 安装Nvidia显卡驱动

从Nvidia官方网站www.nvidia.com下载Linux驱动。

安装(amd64机器):

# sh NVIDIA-Linux-x86-171.06.01-pkg1.run

注:i386机器上使用的是另外一类的驱动程序。

 

2.3 设置scim

启用scim中文输入法:

# cd /etc/profile.d
# chmod +x scim.*

 

 

3 应用软件

3.1 安装kchmviewer

kchmviewer是一个chm文件阅读器,从kchmviewer主页www.kchmviewer.net下载kchmviewer-3.1-2.tar.gz。

这里使用www.slackbuilds.org提供的脚本包kchmviewer.tar.gz来编译安装:

# cd /sources
# tar xzvf kchmviewer.tar.gz
# cd kchmviewer
# cp /pub/software/kchmviewer/kchmviewer-3.1-2.tar.gz .
# ./kchmviewer.SlackBuild
# cd /tmp
# installpkg kchmviewer-3.1-2-i486-1_SBo.tgz
# cp kchmviewer-3.1-2-i486-1_SBo.tgz /newpkg

 

3.2 安装媒体播放器mplayer

www.slackbuilds.org获得编译脚本mplayer-codecs-all.tar.gz和MPlayer.tar.gz。

从mplayer官方网站www.mplayerhq.hu下载源代码包、解码器(codecs)、皮肤(skin),补丁已经包含在上面的脚本包里,就不需要单独下载了。

安装解码器:

# cd /sources
# tar xzvf mplayer-codecs-all.tar.gz
# cd mplayer-codecs-all/
# cp /pub/software/mplayer/all-20071007.tar.bz2 .
# ./mplayer-codecs-all.SlackBuild
# cd /tmp
# installpkg mplayer-codecs-all-20071007-i486-1_SBo.tgz
# mv mplayer-codecs-all-20071007-i486-1_SBo.tgz /newpkg/

安装MPlayer:

# cd /sources
# tar xzvf MPlayer.tar.gz
# cd MPlayer/
# cp /pub/software/mplayer/MPlayer-1.0rc2.tar.bz2 .
# cp /pub/software/mplayer/Blue-1.7.tar.bz2 .
# ./MPlayer.SlackBuild
# cd /tmp
# installpkg MPlayer-1.0rc2-custom-3_SBo.tgz
# mv MPlayer-1.0rc2-custom-3_SBo.tgz /newpkg/

安装浏览器插件(可选)。

脚本和软件包同样从www.slackbuilds.org及相关链接获得:

# cd /sources
# tar xzvf mplayerplug-in.tar.gz
# cd mplayerplug-in/
# cp /pub/software/mplayer/mplayerplug-in-3.50.tar.gz .
# ./mplayerplug-in.SlackBuild
# cd /tmp
# installpkg mplayerplug-in-3.50-i486-1_SBo.tgz
# mv mplayerplug-in-3.50-i486-1_SBo.tgz /newpkg/

 

3.3 安装VMware(amd64机器)

从VMware官方网站www.vmware.com获得软件包VMware-workstation-6.0.2-59824.i386.tar.gz。

要在新版Linux内核下成功安装,还需要一个捷克专家做的补丁vmware-any-any-update-116.tgz,详情请参见:

blog.creonfx.com/linux/how-to-install-vmware-player-workstation-on-2624-kernel

根据链接内容操作即可,以下是我的步骤:

# cd /sources
# tar xzvf VMware-workstation-6.0.2-59824.i386.tar.gz
# cd vmware-distrib
# ./vmware-install.pl

当问及是否执行配置脚本时,选择no,退出。

安装补丁:

# cd /sources
# tar xzvf vmware-any-any-update-116.tgz
# cd vmware-any-any-update116/
# ./runme.pl

这次选择执行配置脚本。

在网络配置部分,将vmnet1-vmnet9配置为host-only,加上桥接的vmnet0,一共10块虚拟网卡。

Slackware的X运行级别是4,不是其他发行版常用的5,所以需要做点小调整:

# cd /etc/rc.d/rc5.d
# mv * ../rc4.d/

 

3.4 安装mpich2

有关mpich2的更详细介绍参见并行计算,不同的是,这里由root安装,以便本机所有用户使用。

编译安装:

# cd /sources
# tar xzvf mpich2-1.0.7.tar.gz
# cd mpich2-1.0.7/
# ./configure
# make
# make install

要使用mpich2的每个用户需要建立一个mpd配置文件,对于root用户,文件名为/etc/mpd.conf;其他用户为$HOME/.mpd.conf。内容:

secretword=XXXXX

修改文件权限。普通用户:

$ chmod 600 .mpd.conf

root用户:

$ chmod 600 /etc/mpd.conf

 

3.5 安装Texlive2007

系统本身已经带了tetex,这里安装texlive是为了给用户更多的选择。

# mount -o loop texlive2007-live-20070212.iso /mnt
# cd /mnt
# sh install-tl.sh

采用缺省方式,完全安装。

现在有了两套tex系统,为避免冲突,这里不进行配置,而是留给需要的用户进行。

 

3.6 安装OpenOffice.org

从OpenOffice.org 中文网站zh.openoffice.org获得二进制安装包OOo_2.4.0_LinuxIntel_install_zh-cn.tar.gz。

www.slackbuilds.org获得编译脚本openoffice.org.tar.gz。

# cd /sources
# tar xzvf openoffice.org.tar.gz
# cd openoffice.org/
# cp /pub/downloads/OOo_2.4.0_LinuxIntel_install_zh-cn.tar.gz .

脚本是针对2.4.1的英文版本编写的,需要做些调整:

# cp desktop-file-fix-2.4.1.diff desktop-file-fix-2.4.0.diff
# cp openoffice.org.SlackBuild openoffice.org.SlackBuild-2.4.1

改动地方如下:

# diff openoffice.org.SlackBuild openoffice.org.SlackBuild-2.4.1
31c31
< VERSION=2.4.0
---
> VERSION=2.4.1
48c48
< OOLANG=${OOLANG:-zh-cn}
---
> OOLANG=${OOLANG:-en-US}
55c55
< DISABLE_JAVA=${DISABLE_JAVA:-YES}
---
> DISABLE_JAVA=${DISABLE_JAVA:-NO}
110c110
< patch -p1 < $CWD/desktop-file-fix-2.4.0.diff
---
> patch -p1 < $CWD/desktop-file-fix-2.4.1.diff

制作安装:

# chmod +x openoffice.org.SlackBuild
# ./openoffice.org.SlackBuild
# mv /tmp/openoffice.org-2.4.0_zh_cn-i586-2_SBo.tgz /newpkg/
# cd /newpkg
# installpkg openoffice.org-2.4.0_zh_cn-i586-2_SBo.tgz

 

3.7 安装Texlive2008

保留Texlive2007,同时安装新版本:

# mount -o loop texlive2008-20080822.iso /mnt
# cd /mnt
# ./install-tl

采用缺省方式,完全安装。

这里同样不进行配置,而是留给需要的用户进行。

 

3.8 更新媒体播放器mplayer

备份原来的数据:

# cd /sources
# mv MPlayer.tar.gz MPlayer-custom-3.tar.gz
# mv MPlayer/ MPlayer-custom-3/

www.slackbuilds.org获得新的编译脚本MPlayer.tar.gz:

# cd /sources
# tar xzvf MPlayer.tar.gz
# cd MPlayer/
# cp /pub/software/mplayer/MPlayer-1.0rc2.tar.bz2 .

调整脚本,关闭CPU检测,因为当前只在本机上使用。以后如果要为别的机器编译软件包,再重新调回来:

# cp MPlayer.SlackBuild MPlayer.SlackBuild-bak
# vi MPlayer.SlackBuild
# diff MPlayer.SlackBuild MPlayer.Slackbuild-bak
54c54
< RUNTIME_CPU=${RUNTIME_CPU:-no}
---
> RUNTIME_CPU=${RUNTIME_CPU:-yes}

编译:

# ./MPlayer.SlackBuild
# cd /tmp
# mv MPlayer-1.0rc2-custom-6_SBo.tgz /newpkg/

更新:

# cd /newpkg/
# upgradepkg MPlayer-1.0rc2-custom-6_SBo.tgz

 

3.9 安装GoogleEarth

www.slackbuilds.org获得编译脚本GoogleEarth.tar.gz。

从Google获得安装包GoogleEarthLinux.bin。

# cd /sources
# tar xzvf GoogleEarth.tar.gz
# cd GoogleEarth
# cp /pub/software/GoogleEarth/GoogleEarthLinux.bin .
# ./GoogleEarth.SlackBuild
# mv /tmp/GoogleEarth-4.3.7284.3916-i486-1_SBo.tgz /newpkg/
# cd /newpkg
# installpkg GoogleEarth-4.3.7284.3916-i486-1_SBo.tgz

 

3.10 安装新版本的VMware

先卸载旧版本的vmware:

# vmware-uninstall.pl
# rm -rf /etc/vmware
# rm /etc/rc.d/rc4.d/*vmware

备份用户数据:

$ cd
$ mv .vmware .vmware-bak

从VMware官方网站www.vmware.com获得软件包VMware-Workstation-6.5.0-118166.i386.bundle。

安装(在X下执行有图形界面):

# sh VMware-Workstation-6.5.0-118166.i386.bundle
# cd /etc/rc.d/rc4.d
# ln -s /etc/rc.d/init.d/vmware S19vmware
# ln -s /etc/rc.d/init.d/vmware K08vmware

以root运行“Virtual Network Editor”,配置10块虚拟网卡。除vmnet0为桥接外,vmnet1到vmnet9均为host-only。关闭nat和dhcp服务。设置IP地址,以方便物理机和所有虚拟机的交互:

 

3.11 安装AdobeReader

http://www.adobe.com获得二进制安装包AdobeReader_chs-8.1.2_SU1-1.i486.tar.bz2。

www.slackbuilds.org获得编译脚本acroread.tar.gz。

# cd /sources
# tar xzvf  acroread.tar.gz
# cd acroread/
# cp /pub/downloads/AdobeReader_chs-8.1.2_SU1-1.i486.tar.bz2 .

调整脚本:

# mv acroread.SlackBuild acroread.SlackBuild-bak
# cp acroread.SlackBuild-bak acroread.SlackBuild
# vi acroread.SlackBuild

改动地方如下:

# diff acroread.SlackBuild acroread.SlackBuild-bak
41c41
< ADOBE_LANG=${ADOBE_LANG:-chs}
---
> ADOBE_LANG=${ADOBE_LANG:-enu}

制作安装:

# ./acroread.SlackBuild
# mv /tmp/acroread-8.1.2_SU1_chs-i486-1_SBo.tgz /newpkg/
# cd /newpkg
# installpkg acroread-8.1.2_SU1_chs-i486-1_SBo.tgz

 

3.12 安装Adobe Flash-player-plugin

http://www.adobe.com获得二进制安装包install_flash_player_10_linux.tar.gz。

www.slackbuilds.org获得编译脚本flash-player-plugin.tar.gz。

# cd /sources
# tar xzvf flash-player-plugin.tar.gz
# cd flash-player-plugin/
# cp /pub/Downloads/install_flash_player_10_linux.tar.gz .
# ./flash-player-plugin.SlackBuild
# mv /tmp/flash-player-plugin-10.0_r12-i386-1_SBo.tgz /newpkg/
# cd /newpkg
# installpkg flash-player-plugin-10.0_r12-i386-1_SBo.tgz

如果普通用户之前装了flash插件,则卸载之:

$ cd ~/.mozilla/plugins/
$ rm libflashplayer.so

 

3.13 安装aMule

aMule依赖于wxGTK和crypto++,需要一并安装。

www.amule.org获得源代码包aMule-2.2.2.tar.bz2。

www.wxwidgets.org获得源代码包wxGTK-2.8.9.tar.gz。

www.cryptopp.com获得源代码包cryptopp552.zip。

www.slackbuilds.org获得编译脚本aMule.tar.gz、wxGTK.tar.gz和cryptopp.tar.gz。

编译安装wxGTK:

# cd /sources
# tar xzvf wxGTK.tar.gz
# cd wxGTK
# cp /pub/downloads/wxGTK-2.8.9.tar.gz
# cp wxGTK.SlackBuild wxGTK.SlackBuild-bak
# vi wxGTK.SlackBuild
# diff wxGTK.SlackBuild wxGTK.SlackBuild-bak
12c12
< VERSION=2.8.9
---
> VERSION=2.8.8
# ./wxGTK.SlackBuild
# mv /tmp/wxGTK-2.8.9-i486-1_SBo.tgz /newpkg/
# cd /newpkg
# installpkg wxGTK-2.8.9-i486-1_SBo.tgz

编译安装crypto++:

# cd /sources
# tar xzvf cryptopp.tar.gz
# cd cryptopp/
# cp /pub/downloads/cryptopp552.zip .
# chmod +x cryptopp.SlackBuild
# ./cryptopp.SlackBuild
# mv /tmp/cryptopp-5.5.2-i486-1_SBo.tgz /newpkg/
# cd /newpkg
# installpkg cryptopp-5.5.2-i486-1_SBo.tgz

编译安装aMule:

cd /sources
# tar xzvf aMule.tar.gz
# cd aMule
# cp /pub/downloads/aMule-2.2.2.tar.bz2 .
# ./aMule.SlackBuild
# mv /tmp/aMule-2.2.2-i486-1_SBo.tgz /newpkg/
# cd /newpkg
# installpkg aMule-2.2.2-i486-1_SBo.tgz

 

 

4 网络服务

4.1 配置ftp服务

编辑/etc/vsftpd.conf,允许普通用户有写权限:

write_enable=YES

编辑/etc/inetd.conf, 打开vsftp,取消其他所有服务。

允许执行rc.inetd:

# cd /etc/rc.d
# chmod a+x rc.inetd

启动inetd:

# /etc/rc.d/rc.inetd start

编辑防火墙脚本/etc/rc.d/rc.iptables,允许ftp:

iptables -A INPUT -p tcp --dport ftp -m state \
	--state NEW -j ACCEPT

 

4.2 配置http服务

允许执行rc.httpd:

# cd /etc/rc.d
# chmod a+x rc.httpd

启动httpd:

# /etc/rc.d/rc.httpd start

编辑防火墙脚本/etc/rc.d/rc.iptables,允许httpd:

iptables -A INPUT -p tcp --dport http -m state \
	--state NEW -j ACCEPT

 

 

5 普通用户

5.1 设置locale

编辑.profile,增加:

export LANG=zh_CN.UTF-8

 

5.2 配置scim(kde)

让scim随kde自动启动:

$ cd $HOME/.kde/Autostart

创建一个脚本scim.sh,内容:

scim -d

使脚本可执行:

$ chmod +x scim.sh

启动kde,在scim的全局设置中,将键盘设置为en_US。

 

5.3 配置KDE

将语言设置为简体中文,并根据个人喜好设置面板,背景等。

 

5.4 配置Konsole

设置字体:DejaVu Sans Mono,bold,12。

大小:80X25。

方案:vim颜色。

 

5.5 配置Terminal

设置字体:DejaVu Sans Mono,bold,12。

取消“允许粗体字”。

颜色设置为白第黑字。

选择将命令作为login shell执行。

 

5.6 配置Firefox

获得并安装adobe的flash插件,对于这些非开源的产品,只以受限用户模式进行安装:

(已取消!)

$ tar xzvf install_flash_player_9_linux.tar.gz
$ cd install_flash_player_9_linux/
$ ./flashplayer-installer

安装DownThemAll插件。

从旧系统中导入书签。

 

5.7 编码转换

Linux内核已经全面转向utf8,思考良久,决定也向utf8迈进。

首要的问题,就是将我的众多文档进行编码转换,系统工具iconv可以完成这项任务。

例如,将我的html文档由gb2312转换到utf8:

#!/bin/sh
find . -name "*.html" | while read configfile ; do
  echo "Process $configfile..."
  mv $configfile ${configfile}.bak
  iconv -f gb2312 -t utf8 -o /tmp/tmp.html ${configfile}.bak
  sed 's/charset=gb2312/charset=utf-8/' /tmp/tmp.html>$configfile
  rm /tmp/tmp.html
done

对于一些转换失败的文件,手工进行校正。

 

5.8 配置Texlive2007

编辑.profile,增加:

export PATH=/usr/local/texlive/2007/bin/i386-linux:$PATH
export MANPATH=/usr/local/texlive/2007/texmf/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2007/texmf/doc/info:$INFOPATH

执行texconfig进行设置(结果存放在.texlive2007/下):

$ texconfig

 

5.9 配置Texlive2008

如果改用2008,则将上一步2007的配置取消,编辑.profile,改为:

export PATH=/usr/local/texlive/2008/bin/i386-linux:$PATH
export MANPATH=/usr/local/texlive/2008/texmf/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2008/texmf/doc/info:$INFOPATH