自由狼-台风 发表于 2004-11-4 15:09:01

[系列.原创]Linux不完全攻略_05

回复贴到 http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=91508 。不要回复本贴。


5        安装软件
        版本:2004-10-28-01

    在Linux下滚打摸爬一阵子,有发现缺点儿什么吗?软件!
    系统装好,也附带了一些软件,而且比Window$安装附带的还多。但是安装光盘毕竟容量有限,不能把所有需要的软件都包下来,更多的软件和更新的驱动程序都得另外安装。安装一个软件前最好多找找它的相关文档,也许有些已经被翻译成中文了。

        5.1        Linux下常见软件包格式

    Linux下的软件很多,出自不同作者之手,打包的格式也挺多。*.rpm、*.tar、*.gz、*.bz2、*.Z、*.tgz和*.tbz都是常见打包格式。

        5.2        分类说明

                5.2.1        *.rpm

    RPM 是 Red Hat Package Manager 的缩写。由 Red Hat Linux 首先引入,现在已经被一些主要的 Linux 发行商采用。“Package”就是归档后的软件包,其中包含了属于该应用程序或程序库的文件,这有点类似于压缩文件。
    除了压缩功能,这个包里还有一些控制脚本,这些脚本可以被本地的安装程序读出,执行,并存储。可以进行安装、卸载、状态检查、依赖检查等。

    在以上格式的软件包中,装卸操作最简便的就是*.rpm包。一般情况下,这种格式的包用鼠标点点即可安装,没有太多需要考虑的。
    桌面环境一般会提供RPM软件包管理器。红旗Linux4.0桌面的软件包管理器在“控制面板”里。可以从那里卸载软件包。

    终端命令行中安装命令为“rpm -ivh 安装文件名.rpm”。安装文件名一般包括软件包名和版本号两部分。查询软件包版本为“rpm -q 软件包名”。卸载命令为“rpm -e 软件包名”。

    “rpm xxxxxxxxx --nodeps”,表示强行安装或卸载,一般不推荐这么做。

                5.2.2        其他主要格式

                        5.2.2.1        初步处理

    *.gz:
    常见的压缩格式。“gunzip xxxxxxxxx.gz”。桌面环境往往带有图形化解压工具,用鼠标点点,不成再用命令。

    *.tgz:
    常见tar归档加gzip压缩格式。只解成tar归档文件用“gunzip xxxxxxxxx.tgz”,完全解开用“tar zxvf xxxxxxxxx.tgz”。桌面环境往往带有图形化解压工具,用鼠标点点,不成再用命令。

    *.tbz:
    常见tar归档加gzip压缩格式。完全解开用“tar jxvf xxxxxxxxx.tbz”。桌面环境往往带有图形化解压工具,用鼠标点点,不成再用命令。

    *.tar:
    tar归档文件,解压命令为“tar xvf xxxxxxxxx.tar”。桌面环境往往带有图形化解压工具,用鼠标点点,不成再用命令。

    *.bin:
    没什么好说的了,直接执行吧。

                        5.2.2.2        安装二进制软件包

    下载的软件包,解压缩和反归档后,看看里面的说明文档,主要是那个“readme”,里面一般会安装说明。照着做。如果只是一个“xxxxxxxxx.bin”,就直接执行吧,只是注意一下,你可能需要自己把权限改为可执行。

                        5.2.2.3        安装源代码包

    本机编译出来的软件在本机具有最好的执行效率,也能尽量减少软件冲突,源代码包的体积也比二进制包小许多,所以更多的软件都以源代码形式发布。

    解压缩和反归档后,浏览一下软件包的目录,找找“README”、“INSTALL”之类的说明文档。如果没有特殊注意事项,就看看哪个目录里有“configure”这个文件。

    从终端命令行进入有“configure”的目录,准备安装。

    先做配置。执行“./configure”,这是个编译预处理脚本,它会自动检查操作系统、编译器、库等东西,生成正式的编译脚本。“configure”有许多选项,可以用来指定编译器、所需的库等,其中一个是“ --prefix=”,用来指定软件的安装位置,用法为“./configure 选项1 选项2 …… --prefix=安装路径 …… 选项n”。没有特殊需要的话,只用“ --prefix=”选项即可。

    再编译。当然不需要你一个一个文件自己去手动编译。UNIX类系统早就有处理这些“不是人做的事情”的办法了,一个功能强大的维护工具“make”会按照“configure”生成的脚本自动处理。只需要执行“make”即可。

    最后安装。命令“make install”,把软件安装到你先前指定的地方。仅仅比安装Window$软件多出编译一步。

    我一般会自己写一个小的脚本,内容如下:
./configure --prefix=xxxxxxxxx>../conf_log.txt 2>conf_err.txt
make>../make_log.txt 2>../make_err.txt
make install>../install_log.txt 2>../install_err.txt
init 0

    第一行,配置,把配置过程中该显示的东西打到上级目录中的文件“conf_log.txt” ,错误提示进“conf_err.txt”。
    第二行,编译,同样把屏幕正常显示和错误提示写入记录文件。
    第三行,安装,还把屏幕正常显示和错误提示写入记录文件。
    第四行,搞定就给我关机。软件大一点,或者机子旧一点,编译时间都比较长,一般晚上临睡觉做,脚本一运行我就关显示器,睡觉去,第二天看装好没有,没好就开记录文件。分析这些文件,当然,如果不是临睡,你也可以不要关机这行,尽可以做别的事情,总之不必干等。

    作为使用者,如果软件安装顺利,这些记录文件就没有多少保留价值了,但如果软件安装出错而未能完成,分析这些文件往往能得出错误原因。

        5.3        运行软件

                5.3.1        我的软件在哪里?

    估计你主要是想知道你装的软件如何启动,启动用的可执行文件在哪里。

    对于RPM包,它们的可执行文件一般可以去“/bin”、“/sbin”、“/usr/bin”和“/usr/sbin”找。当然,RPM也有源代码包,文件名里往往有“src”字样,或者以“.srpm”为后缀,那个可执行文件就不在常规位置了。去“/usr/src”找吧,然后按源代码包的方式处理。命令“rpm -qpl xxxxxxxx.rpm”或“rpm -qpl xxxxxxxxx.srpm”能查看这个软件包里的各种文件会安放到系统的什么地方。在桌面环境里也可以用RPM软件包管理器查看。

    其他的二进制软件包,安装在哪里就去哪里找,其可执行文件一般在软件目录下的“bin”目录里。用源代码包安装的软件也差不多。如果配置时没加“ --prefix=”选项,一般“/usr/local”会被当作安装目录,可执行文件请到“/usr/local/bin”里找。
   
                5.3.2        软件跑起来

    “/bin”、“/sbin”、“/usr/bin”、“/usr/sbin”、“/usr/local/bin”等路径已经在系统环境变量中了,如果可执行文件在这几个标准位置,在终端命令行输入该软件可执行文件的文件名和参数(如果需要参数),回车即可。

    如果不在标准位置,文件名前面需要加上完整的路径。不过每次都这样跑就太麻烦了,一个“一劳永逸”的办法是把这个路径加入环境变量。命令“PATH=$PATH:路径”可以把这个路径加入环境变量,但是退出这个命令行就失效了。要想永久生效,需要把这行添加到环境变量文件里。有两个文件可选:“/etc/profile”和用户主目录下的“.bash_profile”,“/etc/profile”对系统里所有用户都有效,用户主目录下的“.bash_profile”只对这个用户有效。

    “PATH=$PATH:路径1:路径2:……:路径n”,意思是可执行文件的路径包括原先设定的路径,也包括从“路径1”到“路径n”的所有路径。当用户输入一个一串字符并按回车后,shell会依次在这些路径里找对应的可执行文件并交给系统核心执行。那个“$PATH”表示原先设定的路径仍然有效,注意不要漏掉。某些软件可能还有“PATH”以外类型的环境变量需要添加,但方法与此相同,并且也需要注意“$”。

    注意,与DOS/Window$不同,UNIX类系统环境变量中路径名用冒号分隔,不是分号。另外,软件越装越多,环境变量越添越多,为了避免造成混乱,建议所有语句都添加在文件结尾,按软件的安装顺序添加,格式如下():
########################################
#        软件名-版本号
PATH=$PATH:路径1:路径2:……:路径n
其他环境变量=$其他环境变量:……
########################################
    在“profile”和“.bash_profile”中,“#”是注释符号,写在这里除了视觉分隔外没有任何效果。
    设置完毕,注销并重新登录,设置就生效了。如果不注销,直接在shell里执行这些语句,也能生效,但是作用范围只限于执行了这些语句的shell。

    相关的环境变量生效后,就不必老跑到软件的可执行文件目录里去操作了。


回复贴到 http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=91508 。不要回复本贴。
页: [1]
查看完整版本: [系列.原创]Linux不完全攻略_05