应用程序安装与管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux应用程序安装与管理
Edit by LCHSH 1. Linux支持哪两种软件安装的方式?
大多数Linux系统都支持软件包安装和源代码编译安装两种安装软件的方法。
2. Linux下的应用程序与命令的关系如何?
①基本命令是Linux系统中不可缺少的组成部分。
②命令保存在/bin和/sbin目录中。
③应用程序保存在/usr/bin和/usr/sbin目录中。
④命令的作用是完成对Linux系统本身的管理工作,应用程序则完成与Linux系统管理相对独立的任务。
⑤命令只能以命令行的形式运行,命令格式中包括命令字、命令选项和命令参数。应用程序可以是以命令行的形式运行,也可以是字符界面或图形界面的窗口程序,形式比较多样。
3. Linux的应用程序由哪些部分组成?
Linux的应用程序安装好以后,会把构成本程序的文件安装在以下几个位置:
①普通执行程序文件,保存在“/usr/bin”目录中。
②服务器执行程序文件和管理程序文件,保存在“/usr/sbin”目录中。
③应用程序配置文件,保存在“/etc/”目录下。
④应用程序文档文件,保存在“/usr/share/doc/”目录下。
⑤应用程序手册文件,保存在“/usr/share/man/”目录下。
4. 什么是包管理系统?什么是RPM?常用的包管理系统包括哪些?
对于一个操作系统来说,如果没有包管理系统,操作系统发行版的制作者将面临这样或那样的难题,用户安装、升级、卸载与发布软件包也将是非常麻烦的,系统管理也容易出现问题。RPM就是随着RedHat Linux发行版的流行而迅速推广开来的RedHat下专用的包管理系统。
RPM向用户提供了在操作系统中安装、卸载、升级、和查询软件包信息的便利操作,并向程序员提供制作应用程序二进制和源代码安装包的功能。RPM发布给予GPL协议,可以被任何系统使用。
常用的包管理系统包括RPM和APT。其中APT主要用于Debian Linux下。
5. RPM包文件的文件名的格式如何?
在文件“bash-3.0-19.2.i386.rpm”中,“bash”是软件包的名称;“3.0-19.2”是软件的版本号,其中“3.0”是主版本号,“19.2”是次版本号;“i386”是软件所运行的硬件平台,“rpm”是文件的扩展名,用以标识当前文件是RPM格式的软件包。
6. 如何利用rpm命令完成与软件包相关的查询?
①rpm –qa(查询系统中安装的所有的RPM包)
#rpm –qa | head -3
② rpm –q RPM包名称(查询指定的软件包是否安装)
#rpm –q bash(查询bash包是否安装)
③rpm –qi(查询软件包的详细信息)
④rpm –ql(查询软件包安装后生成的文件的列表)
⑤rpm –qf 文件名(查询指定的文件所属的软件包)
7. 如何使用rpm命令完成软件的安装?
命令格式:#rpm -ivh rpm安装包文件名(针对rpm包名可以使用通配符来安装一系列近似名的包)。
其中i:install,安装;h:hash,在过程中显示#来表示进度;v:verborse,在安装中显示更详细信息。
其他相关选项有:
--test只测试安装是否存在冲突并且满足依赖性,并非实际安装。实际上是看是否满足依赖关系。
--force忽略文件冲突和依赖性问题而强行安装。
--nodeps不检查依赖性。
8. 软件包安装时的依赖关系如何解决?
依赖性关系的产生在于有些时候库和脚本不可能提供完全的后台支持。若发现链接库和文件不存在或者不符合要求,就会终止安装。依赖性关系分为两种:树形依赖关系和循环依赖关系。
对于因为依赖关系而导致软件包不能正常安装的情况,需要先安装缺失的依赖软件包,然后再安装需要安装的软件包;另一种方法是在rpm命令中指定需要安装的软件包和所依赖的软件包同时安装。总之,要先满足软件包的依赖关系,然后再进行软件包的安装。
解决软件包循环依赖的较好办法是,将涉及循环依赖的所有软件包使用“rpm -i”命令一起进行安装,或使用“--force”选项分别强行安装。
9. 如何使用rpm命令完成软件的卸载?
命令格式:#rpm –e rpm包名
#rpm –qa | grep pine(检查pine包是否安装)
#rpm –e pine(删除pine包)
RPM软件包的卸载同样存在依赖关系,被依赖的软件包应该最后被卸载。
其他相关参数有:
--test 只执行删除的测试。
--nodeps 不检查依赖性。
10. 如何使用rpm命令完成软件的升级?
命令格式:#rpm –U RPM安装包文件名
执行以上命令,将升级系统中同名的低版本软件包;当系统中未安装同名的软件包时,升级的过程等同于安装软件包的过程。
11. 什么情况下使用源代码编译安装?
现代的Linux发行版本通常使用包管理机制对软件进行打包安装,这样省去了软件的编译安装过程,大大简化了Linux系统的安装和使用难度。在有些情况下,仍然需要对软件的源代码进行编译安装。
①需要使用发行版本中没有的应用软件时,从程序源代码进行编译安装具有更好的适用性。
②Linux发行版本中的应用程序的配置功能不能满足用户需求时,通过对程序源代码
进行重新配置后编译安装可以解决。
③Linux系统中的很多服务器软件在应用时都需要进行编译安装。
④对源代码进行修改后,需要进行编译安装才能实现修改时增加的功能。
12. 以编译安装prozilla应用程序为例,说明源代码编译安装的过程。
①安装gcc编译环境
在图形界面的虚拟终端中输入命令:#system-config-packages,打开图形界面的包管理工具,勾选“Development Tools”,点击“Update”。
回到字符界面,验证gcc环境是否已经安装:#rpm –qa | grep gcc
②获得源代码安装包文件
下载prozilla包文件到当前目录中:
#wget http://prozilla.genesys.ro/downloads/prozilla/tarballs/prozilla-2.0.4.tar.bz2
③把源代码释放到当前目录中的子目录中(系统自动为该子目录命名为prozilla-2.0.4)
#tar –jxf prozilla-2.0.4.tar.bz2
④进入源代码目录
#cd prozilla-2.0.4
⑤进行编译前的配置工作
所有的源代码软件在进行编译前都需要用configure命令完成程序编译前的配置工作。
#./configure --prefix=/home/benet/
配置的同时,用“--prefix”选项指定了软件的安装目录。不指定安装目录也可以,并不影响正常的配置工作,若不指定安装目录,则默认安装在“/usr/local/bin/”目录中。
⑥把源代码编译成系统能够读得懂的二进制数据
#make
⑦把程序安装到指定目录/home/benet/
#make install
可以看到,系统在安装目录中建立了如下几个子目录:
●bin目录用于保存程序的执行文件
●include目录用于保存程序的头文件
●lib目录用于保存程序的库文件
●man目录用于保存程序的手册页文件
●share目录用于保存程序的多语方文件等其他文件
⑧到安装了此程序的目录中验证
#cd /home/benet/
#./bin/proz http://prozilla.genesys.ro/downloads/prozilla/tarballs/prozilla-2.0.4.tar.bz2