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地址等参数。
如果修改别的选项,则还涉及:
- /etc/HOSTNAME
- /etc/hosts
- /etc/networks
- /etc/resolv.conf
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地址,以方便物理机和所有虚拟机的交互:
- vmnet0,bridge -> eth0
- vmnet1,host-only,10.10.10.199
- vmnet2,host-only,10.10.20.199
- vmnet3,host-only,172.16.0.199
- vmnet4,host-only,10.20.10.199
- vmnet5,host-only,10.20.20.199
- vmnet6,host-only,172.17.0.199
- vmnet7,host-only,192.168.0.199
- vmnet8,host-only,192.168.1.199
- vmnet9,host-only,172.18.0.199
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