LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1910|回复: 6

Slacware9(10)安装使用经验荟集

[复制链接]
发表于 2004-10-12 08:16:34 | 显示全部楼层 |阅读模式
在使用Slackware9.1时,我将安装及使用时遇到的问题进行了汇总,有些是在网上看到的,有些是自己看帮助解决的,但后来发现网上也有人提并解决了.昨天看到该文件,决定将该文件发到网上,希望对初学者有所帮助.

关于汉化部分,由于是在Slackware9下做的,10下也差不多,只是在http://download.linuxsir.cn/slackware中下载一些新的文件安装即可,置顶贴里有说明.其他部分也懒得做修改了.有些问题如fcitx在GNOME下的光标跟随现在也没有解决,也请高手多多指教。
以下是原文:


这几天所学的东西需要总结一下我所作的事情况,否则就会忘记一些事情

一、安装所用的方式
    软盘安装:从光盘上的bootdisks中用rawrite将adaptec.i做成软盘:
        rawrite adaptec.i a:
    从rootdisks中做出install.1和install.2两张软盘
        rawrite install.1
        rawrite install.2
    用adaptec.i引导,按提示插入install.1和install.2,即可。

二、X-window汉字环境的配置
    基本不用做什么,只是从网上下载了firefly的字体汉字补丁如下:
    fontconfig-2.2.1-i486-1.Firefly.tgz*        qt-3.2.1-i486-1.Firefly.tgz*
    fontconfig-devel-2.2.1-i486-1.Firefly.tgz*  xfree86-4.3.0-i486-5.Firefly.tgz*
    fontconfig-doc-2.2.1-i486-1.Firefly.tgz*    xfree86-devel-4.3.0-i486-3.tgz*
    freetype-2.1.5-i486-1.Firefly.tgz*          xft-2.1.2-i486-1.Firefly.tgz*
    freetype-devel-2.1.5-i486-1.Firefly.tgz*    xft-devel-2.1.2-i486-1.Firefly.tgz*
    pango-1.2.5-i486-1.Firefly.tgz*
    并用installpkg *.tgz安装后,将/etc/profile.d/lang.sh中的export LANG=C改成
        export LANG=zh_CN.gbk
    即可。

三、locale的查看
    $ locale     #查看当前locale
    $ locale -a   #查看系统支持的所有locale

四、X-window的设置
    在Slackware下,有几个文件可进行图形配置,有:
    xf86cfg xf86config xf86setup
    经试验,最终是用的最老也是最有效的xf86config来进行配置,xf86setup可以设置,但很我选项没有,都是用的系统自动检测出来的,自动配成1024X768。而xf86cfg是图形化的,但死机,不能用。XF86Setup没有。
    用xf86config只需安步骤一步一步进行就可以了。只是鼠标不能设成滚轮的。

五、滚轮鼠标的设置
    先用xf86config将鼠标设成IMPS/2,也可能通过改/etc/X11/XF86Config文件中的鼠标选项来完成。
    在/etc/X11/XF86Config中的inputdevice段中找到鼠标的设置,改成:

        Option "rotocol"    "IMPS/2" %由PS/2改成,支持滚轮
        Option "Device"      "/dev/mouse"
        Option "ZAxisMapping" "4 5"   %加入的选项
        Option "Buttons" "5"          %设置鼠标的按键数
    鼠标滚轮就可以正常使用了。
    注:将Option "ZAxisMapping" "4 5" 改成:Option "ZAxisMapping" "4“不能正常工作

六、改/etc/X11/XF86Config文件内容
    1.将   Load FreeType
            Load xtt
            的注释去掉,使X-window可能查找fonts.dir进行系统字体配置。

    2.加入自己的字体目录
           FontPath   "/usr/share/fonts"  %可从Windows系统中拷出simsun等字体放在此目录中。

    3.改动鼠标如上:
           Option "rotocol"    "IMPS/2" %由PS/2改成,支持滚轮
           Option "Device"      "/dev/mouse"
           Option "ZAxisMapping" "4 5"   %加入的选项
              Option "Buttons" "5"          %设置鼠标的按键数

七、使系统重新扫描字体命令:
       #  fc-cache -v -f    #-v:显示工作的目录   # -f 强制进行字体扫描
       此程序扫描/etc/X11/XF86Config中配置的fonts目录及/usr/share/fonts目录及其子目录,也可能用的是/etc/X11/fs中的config文件所指的字体目录。


八、控制台窗口管理器的改变
    用命令:

       xwmconfig

    进行一个菜单选择的画面,可以选择想用的一个。

九、bash调用配置文件的顺序
    1.在用login登录时,bash会调用/etc/profile文件退出调用~/.bash_logout文件。
    2.当不是用login登录时,如再运行一个bash shell或在x-window运行终端程序时,bash调用~/.bashrc。而很多环璋配置在/etc/profile中,所以可在自己登录目录下建一个.bashrc文件,并修改如下:
    #This file is loaded when bash not running from login

     if [ -f /etc/profile ]; then
        .  /etc/profile
     fi
    3.在运行Gnome/KDE时,系统会调用~/.profile文件,所以可以在其中设置LANG以达到可以更改locale的目的。

十、checkinstall的安装
    checkinstall的目的是将需编译的程序,编译后生成Slackware可以安装的tgz软件包。也就是说,以往安装一个源码的软件的过程是:
        ./configure
        make
        make install
        make uninstall  #删除安装的软件
    用checkinstall的过程是:
        ./configure
        make
        checkinstall
    运行checkinstall后,按提示,需写一些关于些软件的说明,主要说明软件的版体,作者,用途等。具体checkinstall的使用方法将在以后单独写出。
    这次安装,是从网上下载了checkinstall-1.5.3-i386-1.tgz,用pkginstall安装在Slackware系统中即可。

十一、输入法的安装及测试
    为了在系统中能进行汉字的输入,我从linuxsir网站上下载了fcitx-1.8.5.tar.bz2软件包,这是一个由Yuking制作的输入法。fcitx即Free Chinese Input Toy for X,它是一个以GPL方式发布的、基于XIM的简体中文输入法(即原来的g五笔),包括五笔、拼音、区位输入法。
    (一)安装过程:
    (1)# tar fcitx-1.8.5.tar.bz2
    (2)# cd fcitx-1.8.5
    (3)# make             #安文档说明如果是系统支持xft2,用make -f Makefile.xft
                          #所以我用两种方法生成了两人输入法安装文件,但效果相同
    (4)# checkinstall     #生成文件fcitx-1.8.5-i486-1.tgz和fcitx-1.8.5-i486-2.tgz(xft2支持)
    (5)# pkginstall fcitx-1.8.5-i486-2.tgz
    (二)输入法的配置
    按说明文档:

    应用程序是通过环境变量XMODIFIERS与XIM沟通,设置XMODIFIERS的方法如下(以bash为例):
            export XMODIFIERS="@im=YOUR_XIM_NAME"
    上面的YOUR_XIM_NAME为XIM程序在系统注册的名字。应用程序启动时会根据该变量查找相应的XIM服务器。因此,即便系统中同时运行了若干个XIM程序,一个应用程序在某个时刻也只能使用一个XIM输入法。有时侯您会遇到这种情况,明明XIM已经启动了,但应用程序就是无法使用。这往往是因为XMODIFIERS设置不正确所致,如您配置系统时在不同的脚本文件中修改了XMODIFIERS,从而导致X启动时与启动完成后该变量不一致。
    fcitx缺省注册的XIM名为fcitx,但如果fcitx启动时XMODIFIERS已经设置好,fcitx会自动以系统的设置来注册合适的名字。因此,对于新安装的Mandrake8.x/9和RedHat7.x/8,最简单的方法是执行以下命令:


    # cd /usr/bin
    # ln -sf fcitx chinput

  然后重新启动X即可。如果该方法不行,那您需要手工设置环境变量。一般可以在~/.bashrc增加行:
        export XMODIFIERS="@im=fcitx"
        export XIM=fcitx
        export XIM_PROGRAM=fcitx

  然后重新登录当前用户,启动X即可。如果fcitx没有自动启动,您需要在X下的命令行上执行:
        fcitx&

    我在安装的过程中,发现发现如果将export的三行写在.bashrc文件中,则每次运行终端程序时都 会运行这些设置,所以我总结出两种安装方式,
    1.在console方式下,运行startx进入x-window,修改/etc/X11/xinit/xinitrc文件,在文件尾加入如下内容:
    # Start the window manager:
        export XMODIFIERS="@im=fcitx"    # 以下四行为自行加入
        export XIM=fcitx
        export XIM_PROGRAM=fcitx
        fcitx &
    startkde
    这种方法由于xinitrc是一个链接文伯,用xwmconfig进行改变桌面时就需修改相关的xinit文件,如xinitrc.gnome等,因此可作为一种试验的方法。
    2.在运行gdm的情况下,根据对/etc/X11/gdm/Xsession文件的阅读发现,gdm不运行xinitrc文件,而是运行~/.profile文件,为了更改一次后,使每个用户都可以使用相通的输入环境,所以我在Xsession的关于运行profile的语句下面加入:
    export XMODIFIERS="@im=fcitx"
    export XIM=fcitx                      #根据作者文档加入这两行。
    export XIM_PROGRAM=fcitx
    if [ -x /usr/bin/fcitx ]; then
            exec fcitx &
    fi

###{ *   我发现在Slackware下存在两个RedHat没有的问题:
    ###(1)在locale的设置上,设成zh_CN.gb18030后输入法不能激活,设成zh_CN.gbk后就可以在gnome/kd###e下激活。
    ###(2)输入时虽设成光标根随,但实际是输入条总在下方的一个位置,由于输入一个汉字后输入条就会消失,所以倒也没什么大碍。
    ###在网上问了这个问题,Yuking说可能是X和glibc的问题,Slackware这个发行版对中文支持不是很好。*}
    关于原来的问题的解决方法:
    (1)设置locale为zh_CN.GB18030的问题,在Slackware中,用 locale -a虽然能够看到zh_CN.gb18030(至今没有发现是从什么地方引用的),但如果设locale为zh_CN.gb18030(GB18030)后,fcitx不能输入汉字,经过测试,我做了上点改动,就是修改/usr/X11/lib/X11/locale/locale.alias文件,加入这么两行:
    zh_CN.GB18030                                   zh_CN.gbk
    .......
    zh_CN.GB18030:                                  zh_CN.gbk
    将/etc/profile.d/lang.sh中的LANG改成:export LANG=zh_CN.GB18030,然后更改~/.gWuBi/profile文件内容:
        区域设置=zh_CN.gbk
        字体区域设置=zh_CN.GBK
        于是就可以激活输入 区域设置法了。
        如果将/etc/profile.d/lang.sh改成export zh_CN.gb18030,虽然是locale -a中的内容,但不能激活输入法,所以由此可见,fcitx在locale方面,是很大成份上依赖于/etc/X11/lib/X11/locale/locale.dir 和/etc/X11/lib/X11/locale/locale.alias文件,我在locale.alias中没有设zh_CN.gb18030,所以将LANG改成zh_CN.gb18030时,就不能输入汉字,而我将zh_CN.GB18030设为zh_CN.gbk的别名,则在~/.gWuBi中必需将  区域设置设成zh_CN.gbk才能工作。
        思考:如果在locale.dir中加入相关的zh_CN.GB18030内容,或从RedHat中拷出来,就可以将 区域设置设成与locale一致了!
    locale的位置很多:/usr/share/i18n下有locale和charmaps目录,这应该是locale的大本营。这里面的charmaps中有GB18030.gz模块,所以系统应该能支持GB18030 的编码。
    而/usr/X11/lib/X11/locale中的locale设置是xfree864.3的locale设置,所以应用于X环境,而且在X环境中处于主导地位,由fcitx输入法就可以看出。

    (2)关于光标跟随的问题:在KDE下,可以实现,只需要运行qtconfig,然后在输入法方式中改成over the spot就可以了。但在gtk2中,我始终没有试出来。根据这两天看到的情况,在GTK2中输入法可以在运行的程序中按鼠标右键的菜单中找到,但我没找到,或设环境变量GTK_IM_MODULE,根据SCIM的设置应是fcitx,但实际中不能用,不知是什么原因。不过现在的水平已经很好了。

    现在由于KDE和GNOME的环境已很成熟,所以汉化后的Slackware用起来也很顺手,由于Slackware是一个很存的LINUX运行环境,所以她的KDE和GNOME应是最原始的配置,不像其他的发行版,将菜单或图标改成自己的一套,使人看起来总是有点不舒服。

十二、系统启动的状态的配置
    以root注册后编辑/etc/inittab文件用改变启动时是以console形式还是以图形形式运行。以下是inittab文件的全部内容(不是很多):
    # cat /etc/inittab            #键入的命令
    #
    # inittab       This file describes how the INIT process should set up
    #               the system in a certain run-level.
    #
    # Version:      @(#)inittab             2.04    17/05/93        MvS
    #                                       2.10    02/10/95        PV
    #                                       3.00    02/06/1999      PV
    #                                       4.00    04/10/2002      PV
    #
    # Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
    # Modified by:  Patrick J. Volkerding, <volkerdi@slackware.com>
    #

    # These are the default runlevels in Slackware:
    #   0 = halt
    #   1 = single user mode
    #   2 = unused (but configured the same as runlevel 3)
    #   3 = multiuser mode (default Slackware runlevel)
    #   4 = X11 with KDM/GDM/XDM (session managers)
    #   5 = unused (but configured the same as runlevel 3)
    #   6 = reboot

    # Default runlevel. (Do not set to 0 or 6)
    id:4:initdefault:

    # System initialization (runs when system boots).
    si:S:sysinit:/etc/rc.d/rc.S

    # Script to run when going single user (runlevel 1).
    su:1S:wait:/etc/rc.d/rc.K

    # Script to run when going multi user.
    rc:2345:wait:/etc/rc.d/rc.M

    # What to do at the "Three Finger Salute".
    ca::ctrlaltdel:/sbin/shutdown -t5 -r now

    # Runlevel 0 halts the system.
    l0:0:wait:/etc/rc.d/rc.0

    # Runlevel 6 reboots the system.
    l6:6:wait:/etc/rc.d/rc.6

    # What to do when power fails.
    pf::powerfail:/sbin/genpowerfail start

    # If power is back, cancel the running shutdown.
    pg::powerokwait:/sbin/genpowerfail stop

    # These are the standard console login getties in multiuser mode:
    c1:1235:respawn:/sbin/agetty 38400 tty1 linux
    c2:1235:respawn:/sbin/agetty 38400 tty2 linux
    c3:1235:respawn:/sbin/agetty 38400 tty3 linux
    c4:1235:respawn:/sbin/agetty 38400 tty4 linux
    c5:1235:respawn:/sbin/agetty 38400 tty5 linux
    c6:12345:respawn:/sbin/agetty 38400 tty6 linux

    # Local serial lines:
    #s1:12345:respawn:/sbin/agetty -L ttyS0 9600 vt100
    #s2:12345:respawn:/sbin/agetty -L ttyS1 9600 vt100

    # Dialup lines:
    #d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100
    #d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100

    # Runlevel 4 used to be for an X window only system, until we discovered
    # that it throws init into a loop that keeps your load avg at least 1 all
    # the time. Thus, there is now one getty opened on tty6. Hopefully no one
    # will notice. ;^)
    # It might not be bad to have one text console anyway, in case something
    # happens to X.
    x1:4:wait:/etc/rc.d/rc.4

    # End of /etc/inittab

    由于inittab是系统启动时首先运行的文件,所以一些配置信息可以决定机器能否正常运行。
    根据这个文件可以看出启动进时系统配置的一些信息
    1.runlevels设置运行时以什么形式进行系统
       0:halt设成这个时系统就会开机后就关机
       1:Single user mode单用户模式,主要用于系统维护
       2:未使用,如设成2,则与3多用户模式相同
       3:多用户模式,是console模式,也是Slackware的缺省模式(与其他发行版不同)
       4:X11 with KDM/GDM/XDM (session managers)图形运行模式,运行时先找gdm再查kdm、xdm等,
         配置顺序文件是:/etc/rc.d/rc.4
       5:同2
       6:reboot重启
    2.配置行如下:
       #id:runlevels:action:process
       id:4:initdefault:
      id:是1-4个字符的inittab入口标志符,终端应是终端的标志如tty1等
        action:动作,对于initdefault,后面的process不运行,所以是空
        action有以下选择:respawn ,boot(runlevels is ignored),bootwait,ctrlaltdel(用于设置用Ctrl+ALT+DEL是否重启计算机),powerdown等
    3.启动运行情况可以根据下各行的描述看出。如:
    (1)
    # System initialization (runs when system boots).
    si:S:sysinit:/etc/rc.d/rc.S
    系统启动时运行 /etc/rc.d/rc.S,改此文件可以改启动时调运行的rc配置文件
    (2)
    # Script to run when going multi user.
    rc:2345:wait:/etc/rc.d/rc.M
    (3)
    多用户状态运行时运行此rc文件。
    # What to do at the "Three Finger Salute".
    ca::ctrlaltdel:/sbin/shutdown -t5 -r now
    关闭/开启Ctrl+ALT+DEL重启机器功能
    (4)
     #Runlevel 4 used to be for an X window only system, until we discovered
     # that it throws init into a loop that keeps your load avg at least 1 all
     # the time. Thus, there is now one getty opened on tty6. Hopefully no one
     # will notice. ;^)
     # It might not be bad to have one text console anyway, in case something
     # happens to X.
     x1:4:wait:/etc/rc.d/rc.4
     图形注册时调用的文件,里面决定了第一个会话管理器是什么。
    (5)
     # These are the standard console login getties in multiuser mode:
     c1:1235:respawn:/sbin/agetty 38400 tty1 linux
     c2:1235:respawn:/sbin/agetty 38400 tty2 linux
     c3:1235:respawn:/sbin/agetty 38400 tty3 linux
     c4:1235:respawn:/sbin/agetty 38400 tty4 linux持,也就是说,只能用Ctrl+Alt+F6进入console模式,其他Ctrl+Alt+F1~F5均不可用(无4),F7是重返图形模式。
     c5:1235:respawn:/sbin/agetty 38400 tty5 linux
     c6:12345:respawn:/sbin/agetty 38400 tty6 linux
     注意第二项的数字决定了runlevels,如用图形会话管理器注册时,终端只有c6支持,也就是说,只能用Ctrl+Alt+F6进入console模式,其他Ctrl+Alt+F1~F5均不可用(无4),F7是重返图形模式。
    init进程调用的各种系统配置文件(如rc.S,rc.M等)都位于/etc/rc.d目录下。

十三、关闭机器的Ctrl+ALT+DEL重启功能
    以root身份编辑/etc/inittab文件,找到下面行
    # What to do at the "Three Finger Salute".
    ca::ctrlaltdel:/sbin/shutdown -t5 -r now
    在第二行前加入#使其变成注释行即可
    # What to do at the "Three Finger Salute".
    # ca::ctrlaltdel:/sbin/shutdown -t5 -r now
    注:此知识点单独提出较好,否则不知在什么文件中。

十四、dircolors----color setup for ls
    在/etc/profile中运行了有一个eval `dircolrs -b`命令,这个命令的作用就是生成ls的运行环境,如
    LS_OPTIONS=' --color=auto -F -b -T 0'
    alias ls='/usr/bin/ls $LS_OPTIONS
    这就是为什么没有什么角本存在alias这个ls命令的原因。在Redhat等发行版中,color.sh位于/etc/profile.d下,也可能自己生成或从RedHat等发行版中拷出一个来用。

十五、GTK2.0在KDE下的显示字体设置
    GTK的用户配置文件是.gtkrc-2.0文件,在KDE下运行GTK+2的程序就会用到这个环境设置文件。如果选择的桌面是GNOME,这个文件就不会起太大作用。在KDE下运行gedit等程序时,由于没有GNOME环境,所以启动时调用.gtkrc-2.0文件,如果没有发现,就用缺省字体,字会很小。在.gtkrc-2.0中配置字体的文件的内容如下:
    jxl72@darkstar:~$ cat .gtkrc-2.0
    # This file used by gtk+-2.0 for font setup (or others)

    style "default"
    {
        font_name = "sans 12"
    }
    widget "*" style "default"
    注意,字体的写法与GTK+1.0不同,GTK+1.0的用户设置文件是.gtkrc,与GTK+2不同,其汉字设置文件是/etc/gtk/gtkrc.zh_CN,也可以设置在~/.gtkrc中。设置文件内容是将字体的信息全部写出如:
    jxl72@darkstar:~$ cat /etc/gtk/gtkrc.zh_CN
    # $(gtkconfigdir)/gtkrc.zh_CN
    #
    # This file defines the fontsets for Chinese language (zh) using
    # the simplified chinese standard GuoBiao as in mainland China (CN)
    #
    # 1999, Pablo Saratxaga <pablo@mandrakesoft.com>
    #

    style "gtk-default-zh-cn" {
           fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
                      -*-simsun-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-*"
    }
    class "GtkWidget" style "gtk-default-zh-cn"

    从这个文件可以看出这两种文件是有很大不同的,GTK+2已支持国际化,所以不再需要指出是汉字环境的GTK,而是通这locale就可以显示相关的字体了,LANG=C时GNOME的菜单就是英文的了。

十六、Kylix3的安装
    在RedHat中,Kylix3有很多设置需改动,安装时用setup.sh -m命令,否则就会把文件都安装在根目录中。
    运行时的字体需进行配置,否则不能看到任何东西。
    在Slackware下,只需安装后运行一切正常,可以看出RedHat还是有很多东西进行了自行配置。(也许Slackware有问题?:))还是干些正事吧。

十七、关于GRUB的使用的一个技巧
    这个方法不是在Slackeware下进行的,而是由于别人的机器由于安装RedHat时,没有很好地GRUB,导致系统不能引导。恢复方法是:
    1.用Redhat第一张光盘启动
    2.以安全模式引导
        boot:linux rescure
    3.按提示,不配置网络设备,进入系统#。按说明应将linux的分区挂在/mnt/sysimage下,但由于LINUX的系统分区受到破坏,所以不能挂上,手动挂在/mnt/sys上,即cd /mnt;mkdir sys;mount /dev/hda1 /mnt/sys。
    4.运行/sbin/grub
    5.在grub>提示符下键入以下命令
        grub>root (hd0,//Tab键,按提示选择启动系统的数字
        grub>root (hd0,0)
        grub>setup (hd0)  //将GRUB引导信息写入MBR
    6.退出,重新启动。
    以上方法可以恢复由于误操作导致的MBR受破坏,系统不能引导。
    另:如果能运行GRUB引导,但需手工输入引导信息时,可以如上操作,在引导时按C进入交互式,提示
        grub>
    键入以下命令:
        grub>root (hd0,0)
        grub>setup (hd0)
        grub>boot               //运行分区系统

十八、issue文件的内容及作用
    用cat命令看一下/etc/issue的内容:
    jxl72@darkstar:/etc$ cat issue

    Welcome to \s \r (\l)
    在console终端下显示的登录内容为:
    Welcome to Linux 2.4.22 (ttyX)

    darkstar login:
    issue的作用在于显示 Welcome to Linux 2.4.22 (ttyX)
    其参数由例中可以看出
    issue.net的作用是在远程登录的时候所看到的登录提示

十九、hosts的配置信息
     用cat命令看一年hosts的内容
     jxl72@darkstar:/etc$ cat hosts
     #
     # hosts         This file describes a number of hostname-to-address
     #               mappings for the TCP/IP subsystem.  It is mostly
     #               used at boot time, when no name servers are running.
     #               On small systems, this file can be used instead of a
     #               "named" name server.  Just add the names, addresses
     #               and any aliases to this file...
     #
     # By the way, Arnt Gulbrandsen <agulbra@nvg.unit.no> says that 127.0.0.1
     # should NEVER be named with the name of the machine.  It causes problems
     # for some (stupid) programs, irc and reputedly talk. :^)
     #

     # For loopbacking.
     127.0.0.1       localhost
     # This next entry is technically wrong, but good enough to get TCP/IP apps
     # to quit complaining that they can't verify the hostname on a loopback-only
     # Linux box.
     127.0.0.1       darkstar.example.net darkstar

     # End of hosts.
     hosts文件的作用是对联在TCP/IP子系统网内的ip地址与主机名进行映像。主要是用于小型系统,主机数量不为很多的,没有名字服务器(DNS)运行的情况下。这个文件可以替代名字服务器,在启动时就运行了。只需在文件中加入名字,地址和其他的这个文件的别名。由于主机名与IP地址是一一对映的关系,所以如果主机数量很多,如在INTERNET中,这个文件必须将所有的主机信息记录下来,数量巨大,难以维护,所以只能应用于小型网络中,对于大型网络一般采用先查名字服务器DNS,再查这个文件方式。
     127.0.0.1是保留地址,用于指向本机名,此时当网络启动而没有联到网络时,只能查到本机,通过这个地址指向本机,不至于查不到而导致不必要的延时。
    从是面的例子可以看出,127.0.0.1       localhost用于指向本机,由于网络中的查找本机,给本机起个名字,可以实现本机名的查找,127.0.0.1       darkstar.example.net darkstar中darkstar.example.net是本机网络名,darkstar则是本机名。

    二十、hosts.allow,hosts.deny,hosts.equiv,HOSTNAME文件的作用
    hosts.allow用于标识允许的访问本机的主机名,hosts.deny用于标识禁止访问本机的主机名,hosts.equiv用于标识可以的rsh访问本机的主机名。HOSTNAME文件标名了本机的网络名。这个名字用于hosts文件的地址查找。如本例中的HOSTNAME的内容是darkstar.example.net,这样系统网络查找HOSTNAME名字后,到hosts文件中找相应的IP地址,并通过PING等方式探测IP地址,由于地址是127.0.0.1,是本机的IP地址,所以很快找到本机。

    二十一、LILO的配置文件lilo.conf的内容
    执行命令如下:
    jxl72@darkstar:/etc$ cat lilo.conf
    # LILO configuration file
    # generated by 'liloconfig'
    #
    # Start LILO global section
    boot = /dev/hda
    #compact        # faster, but won't work on all systems.

    prompt
    timeout = 80
    default=Windows2000

    # VESA framebuffer console @ 640x480x256
    # vga = 769

    # Normal VGA console
    vga = normal

    # VESA framebuffer console @ 1024x768x64k
    # vga=791
    # VESA framebuffer console @ 1024x768x32k
    # vga=790
    # VESA framebuffer console @ 1024x768x256
    # vga=773
    # VESA framebuffer console @ 800x600x64k
    # vga=788
    # VESA framebuffer console @ 800x600x32k
    # vga=787
    # VESA framebuffer console @ 800x600x256
    # vga=771
    # VESA framebuffer console @ 640x480x64k
    # vga=785
    # VESA framebuffer console @ 640x480x32k
    # vga=784
    # VESA framebuffer console @ 640x480x256
    # vga=769
    # ramdisk = 0     # paranoia setting
    # End LILO global section
    # Linux bootable partition config begins
    image = /boot/vmlinuz
        root = /dev/hda7
        label = Slackware_Linux
        read-only # Non-UMSDOS filesystems should be mounted read-only for checking
    # Linux bootable partition config ends

    # DOS bootable partition config begins
    other = /dev/hda1
      label = Windows2000
      table = /dev/hda
    # DOS bootable partition config ends

这个文件是lilo的配置文件,有以下几个方面的内容:
    boot = /dev/hda    #标名引导的内容写在第一个硬盘的主引导中,即MBR中,如果用其他引导器,
                       #则将boot信息写成 boot = /dev/hda3 从hda3分区引导LINUX,即只有当
                       #/dev/hda3为激活时引导
    prompt             # 提示boot:进行选择
    #lba32             # 当分区在1024柱面之后,用此参数可正常引导
    timeout = 80       #   引导时等时待的时间为8秒
    default=Windows2000   #缺省引导为Windows2000的label
    vga = normal       #LINUX的字符显示模式,和屏幕分辨率。标准VGA为通常显示方式,显示80X25,其他模式
                       #可显示如100X40等
    image = /boot/vmlinuz   #LINUX的引导内核的位置及名称。
        root = /dev/hda7    #引导分区
        label = Slackware_Linux  #输入引导LINUX的名称
        read-only                #以只读方式引导
    other = /dev/hda1       #other标名引导的是一个非LINUX的操作系统
      label = Windows2000   #引导名称
      table = /dev/hda      #标名此设备有分区表
    以下几行根据帮助,标名WIN98的引导方式,可作为参考,也可以用上面的WINDOWS2000的引导方式。
    other=/dev/hdb1
                   label=Win98
                   boot-as=0x80    # must be C:
二十二、fstab,mtab的内容及关系
    看一下系统中的fstab的内容情况:
    jxl72@darkstar:/etc$ cat fstab
    /dev/hda8        swap             swap        defaults         0   0
    /dev/hda7        /                ext3        defaults         1   1
    /dev/hda5        /win_d           vfat        noauto,iocharset=cp936,user  1   0
    /dev/hda6        /win_e           vfat        noauto,iocharset=cp936,user  1   0
    /dev/cdrom       /mnt/cdrom       iso9660     noauto,iocharset=cp936,user,ro  0   0
    /dev/fd0         /mnt/floppy      auto        noauto,iocharset=cp936,user 0   0
    devpts           /dev/pts         devpts      gid=5,mode=620   0   0
    proc             /proc            proc        defaults         0   0
    这个文件表明系统可以挂接的分区有挂接的方式,这个文件被fsck,mount,umount命令所要求,这个文件由系统管理员来维护,具体参数情况如下:
    第一列是设备名称或分区,第二列标明挂接在系统的哪个位置,第三个参数说明分区的类型,第四个参数说明挂接的参数,noauto为系统启动时不自动挂上,iocharset=cp936表名以汉字编码方式挂上系统,user表明普通用户可以用mount命令挂上这个分区,owner则为只能是分区的宿主才可以挂上。ro是以只读方式挂系统。default为不用任何参参数,用系统缺省方式。后面的两位?????
    mtab是已挂在系统中的文件系统情况
    jxl72@darkstar:/etc$ cat mtab
    /dev/hda7 / ext3 rw 0 0
    devpts /dev/pts devpts rw,gid=5,mode=620 0 0
    proc /proc proc rw 0 0
    usbfs /proc/bus/usb usbfs rw 0 0

二十三、运行级别(runlevels)的切换
    # telinit 3          # 图形时切换到console状态下的命令
    # telinit 4          # 从console切换到图形注册界面下。

二十四、编译及运行mplayer
    将MPlayer-1.0pre2.tar.bz2用命令解开 :tar xvjf MP*bz2
    进放解开的目录,用以下参数来运行configure文件:
    ./configure --enable-gui --language=zh_CN --with-codecsdir=/usr/local/lib/extralite  --with-win32libdir=/usr/local/lib/win32codecs --with-xanimlibdir=/usr/local/lib/extralite --with-reallibdir=/usr/local/lib/extralite --with-xvidcore=/usr/local/lib/extralite  --with-xmmsplugindir=/usr/lib
    然后运行make,checkinstall(makeinstall)


二十五、安装运行PostgreSQL
    configure ->make->make instal

二十六、patch文件的使用
    运行命令:patch -p0 <patchfile
    要注意在patchfile中的文件路径,-p0表示不去任何一级目录,如在patch文件中有MPlayer-1.0pre2/libvo/font.c文件,如果在MPlayer-1.0pre2所在的目录安装patch,则用上面的命令,如果在MPlayer-1.0pre2目录中运行patch命令,则用下面的命令:patch -p1 <patchfile

二十七、在xine中运行rm文件的方法
    xine已经支持realplay9的解码器,只需指明codecs所在的目录即可。
    进入~/.xine目录,编辑config文件,找到realplay的设置目录位置,缺省为unknown,改成:
    # path to real player codecs, if installed
    # string, default: unknown
    codec.real_codecs_path:/usr/local/lib/extralite
    运行xine即可。

二十八、本机TCP/IP端口情况
    用nmap 127.0.0.1 可以看到本机所开的TCP/IP端口情况,这些端口的开启是由于相关服务的运行所造成,如本机:

    root@darkstar:/etc# nmap 127.0.0.1

    Starting nmap 3.45 ( http://www.insecure.org/nmap/ ) at 2003-11-14 22:34 CST
    Interesting ports on localhost (127.0.0.1):
    (The 1650 ports scanned but not shown below are in state: closed)
    PORT    STATE SERVICE
    21/tcp  open  ftp
    22/tcp  open  ssh
    25/tcp  open  smtp
    37/tcp  open  time
    110/tcp open  pop-3
    113/tcp open  auth
    587/tcp open  submission

    Nmap run completed -- 1 IP address (1 host up) scanned in 1.693 seconds
    root@darkstar:/etc#
    在这次扫描中可以看出ftp,smtp等端口是开的,而用ps -e查看,看不到ftpd等程序的运行,这是由于inetd的运行,inetd会自动监测所定义的请求,并激活相关的daomen程序,而这些可以激活的服务定义是在/etc/inetd.conf文件中定义的。只需修改inetd.conf中的相关内容,重新启动inetd守护进程,就可以实现对相关端口的监控。
    LINUX中支持的端口服务是在/etc/services文件中定义的,从中可以看出各种服务所使用的端口。

二十八、用双网卡实现连机共享
    在一台机器上安装了两块网卡,一块用于连接内网,即本地局域网,一块用于连接外网,即Internet网,这时两块网卡的IP地址不在同一网段,此时应如何设置?
    假设外网分配地址为192.168.11.17,内网地址为192.168.18.1。外网网卡为eth1,内网网卡为eth0,
    (1)首行设网卡的地址,注册成root用户,用ifconfig配置网卡:
        #ifconfig eth1 inet 192.168.11.17 netmask 255.255.255.0 up
        #ifconfig eth0 inet 192.168.18.1 netmask 255.255.255.0 up
    (2)配置路由:
        # route add default 192.168.11.1
        ?# route add -net 192.168.11.0 netmask 255.255.255.0 gw 192.168.11.1 dev eth1
        # route add -net 192.168.18.0 netmask 255.255.255.0 gw 192.168.11.18 dev eth0
    (3)配置iptables
    在Slackware中有一个关于iptables的内容 如下:

    # As a quick example (for a much more extensive treatment, see the IP-Masquerade
    # mini-HOWTO) to allow Internet access to a local network 192.168.11.0 with a
    # netmask of 255.255.255.0, you'd use these commands in /etc/rc.d/rc.local:
    #
    #  # EXTERNAL -> external network interface
    #  # INTERNAL -> internal network interface
    #  EXTERNAL=eth0
    #  INTERNAL=eth1
    #  echo 1 > /proc/sys/net/ipv4/ip_forward
    #  echo "Setting up NAT (Network Address Translation)..."
    #  # by default, nothing is forwarded.
    #  iptables -P FORWARD DROP
    #  # Allow all connections OUT and only related ones IN
    #  iptables -A FORWARD -i $EXTERNAL -o $INTERNAL -m state --state ESTABLISHED,RELATED -j ACCEPT
    #  iptables -A FORWARD -i $INTERNAL -o $EXTERNAL -j ACCEPT
    #  # enable MASQUERADING
    #  iptables -t nat -A POSTROUTING -o $EXTERNAL -j MASQUERADE
   本例中将eth0连为外网,eth1连为内网,具体实现可将此设反:
   EXTERNAL=eth1
   INTERNAL=eth0
   运行下面的命令:
      echo 1>/proc/sys/net/ipv4/ip_forward
      echo "Setting up NAT(Network Address Translation)
      iptables -P FORWARD DROP    #缺省情况,没能forward(向前) 任何数据
      iptables -A FORWARD -i $EXTERNAL -o $INTERNAL -m state --state ESTABLISHED,RELATED -j ACCEPT
                                                                  #允许所有的内网连接发到外网(-o),
                                                            #外网数据只有一个入口(-i)
                                                            #-m:module名字,--state:连接状态
                                                            #-j:目标规则,如果目标符合,该如何作
      iptables -A FORWARD -i $INTERNAL -o $EXTERNAL -j ACCEPT
                                                            #与上面的相反,用于定义从外网进入内网的数据
      iptables -t nat -A POSTROUTING -o $EXTERNAL -j MASQUERADE
                                                            # -t:定义table是与哪一种相符
                                                            # -A 对选择的chain连接进行扩展更多的功能
                                                            # -o本命令发往外网
                                                            # -j MASQUERADE只有在nat的table情况下有效,
     到此,iptables设置完成,此时就可以实现共享上网的功能。

二十九、KDE菜单位置
    KDE的菜单位于/opt/kde/share/applnk中,每一个目录就是一个菜单项,每一目录的多国语言名称在文件.directory中,该文件位于所对应的目录下。在RedHat的fodera中是位于/usr/share/applnk-redhat中,而这是一个符号连接,实际位置位于/var/lib/menu/kde/applications中。这是Redhat自己设置的目录结构 。
    每一个目录中的.directory都是用的UTF-8的编码。
    个人用户所增加修改的菜单项位于~/.kde/share/applnk中。
    在/usr/share/application的目录下放着的是gnome的菜单项
 楼主| 发表于 2004-10-12 08:20:58 | 显示全部楼层
怎么出现乱码了,而且没有修改项?
发表于 2004-10-12 09:39:53 | 显示全部楼层
不错,还行。。
发表于 2004-10-12 12:13:56 | 显示全部楼层
好帖 ,不过楼主还是重新编辑一下吧,这样看好累
发表于 2004-10-12 12:33:24 | 显示全部楼层
怎么整篇文章就一链接?
发表于 2004-10-12 12:49:35 | 显示全部楼层
我帮楼主修改好了,[/url]链接符号放错地方了。
发表于 2004-10-12 23:54:25 | 显示全部楼层
我正在找此类帖。不过我的mouse是三键的老掉牙动西不知设置时选哪项,哪位大大能告知与我?谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表