linux下的软件包安装

linux下安装软件包有两种方法:源文件编译安装(source)和 rpm 安装。

 1.源文件包安装的通用方法。

    一般安装源代码的程序你得要看它的README,一般在它的目录下都有的。

 01.配置:

    构建应用的第一步就是执行configure脚本,该脚本位于程式源文件的主目录下:

    [root@localhost~]# ./configure

    该脚本将扫描系统,以确保程式所需的所有库文件业已存在,并做好文件路径及其他所需的设置工作。如果程式所需的库文件不完全,该设置脚本就会退出,并告诉你还需要哪些库文件或是哪些版本太旧需要更新。

    如果遇见这种情况,仅弄到含有该库文件的软件包还是不够的,同时还要找到具有该库文件所有头文件的研发包,在linux中,这样的包一般以-dev作为文件名的结尾。安装好所有需要的库文件后,重新运行设置脚本,直到没有错误提示为止,这说明需要的库文件已全部安装妥当了即满足了依赖关系。

 02.编译:

    当设置脚本成功退出后,接下来要做的就是编译代码了。具体操作为在源文件的主目录中运行make命令:

    [root@localhost~]#  make

    注:这时,你会看到一串编译输出数据迅速从屏幕上滚过,如果正常的话,系统会返回的提示符状态。然而,如果编译过程中出现错误的话,排错的过程可就不像设置步骤那么简单了。因为,这通常要涉及到原始码的调试,可能原始码有语法错误,或其他错误等等。怎么办?

    你是编程高手,那就自己调试吧!否则,检查该软件的邮件列表等支持渠道,看看是不是已知的bug,如果是就看看别人是怎么解决的,不是就提交一份bug报告吧,也许不久就会有解决办法。

 03.安装:

    当软件成功编译后,最后一步就是将他们安装到系统上。大部分程式的makefile文件中都会有一个用于安装的函数。需要注意的是,大多时候我们必须作为root用户来安装程式,这样程式就把文件安装到/usr或其他只有终极用户才有写权限的目录中。依旧是在源文件的主目录下,执行如下命令:

   [root@localhost~]#  make install

    注:这样程序就会安装到你的计算机上了。

 

 04.另外,当你不再使用该程序时,能使用软件所带的卸载功能,一般程序都会具有此功能。转换至源文件的主目录下,执行以下命令即可:    

   [root@localhost~]#  make uninstall

 06.  多数情况下,利用上面介绍的方法安装的程式,都位于/usr/local下面,编译安装源码包还有一个特点就是我们可以自己指定安装位置,这需要在配置时指定安装文件夹下,通常我们会装在/opt下,命令如下:

   [root@localhost~]#  ./configure --prefix = /opt/

    注:当然有时候也有例外,有些程序根本就不理会你指定的文件夹,它会自己指定文件夹进行安装。 

 

2.rpm安装软件包的方法。

  01. 命令参数使用方法

   以上参数有些需要组合使用,比如说 rpm -h package.rpm 是没有意义的,但 rpm -ih package.rpm 即表示安装 package 并用 # 符显示安装进度。 

     • 安装 RPM 包 :               

     # rpm -ivh package.rpm

     • 升级 RPM 包命令 :             

     # rpm -Uvh package.rpm

     • 卸载 RPM 包命令 :               

     # rpm -ev package

     • 查询 RPM 包中包含的文件列表命令: 

     # rpm -qlp package

     • 查询 RPM 包中包含的文件列表命令:

     # rpm -qlp package

     • 查询 RPM 包中包含的内容信息命令:

     # rpm -qip package

     • 查询系统中所有已安装 RPM 包 :   

     # rpm -qa

 

  02. 包管理示例

    以下步骤描述了一个普通用户安装 IBM Lotus Notes V85 ( 以下简称 Notes) 的典型操作过程。 Notes 的 RPM 包名为 ibm_lotus_notes-8.5.i586.rpm 。

 

    1.首先查询是否该软件是否已经在系统中存在      
    # rpm -qa | grep ibm_lotus_notes

    注: 如果返回信息为空那么说明该软件还未被安装。

 

    2.查询 Notes 软件包内容:  
    # rpm -qip ibm_lotus_notes-8.5.i586.rpm 
    Name        : ibm_lotus_notes           Relocations: /opt/ibm/lotus/notes 
    Version     : 8.5                               Vendor: IBM 
    Release     : 20081211.1925             Build Date: Sat 13 Dec 2008 09:38:55 AM CST 
    Install Date: (not installed)               Build Host: dithers.notesdev.ibm.com 
    Group       : Applications/Office           
    Source RPM: ibm_lotus_notes-8.5-20081211.1925.src.rpm 
    Size        : 603779427                        License: Commercial 
    Signature   : DSA/SHA1, Sat 13 Dec 2008 09:43:02 AM CST, Key ID 314c8c6534f9ae75 
    Summary     : IBM Lotus Notes 
    Description : 
    IBM Lotus Notes software provides a robust ..

 

    3.安装 Notes:      
    # rpm -ivh ibm_lotus_notes-8.5.i586.rpm

    返回信息 :
      
    Preparing...             ########################################### [100%] 
    1:ibm_lotus_notes        ########################################### [100%]

    4.升级 Notes:
    若今后需要基于该版本升级至更高版本的 Notes( 缝 .0 - ibm_lotus_notes-9.0.i586.rpm),则使用 -U 参数:

    # rpm -Uvh ibm_lotus_notes-8.5.i586.rpm 
    注:在该步骤中如果使用 -i 则系统通常会报文件冲突错误,无法正常安装。

 

    5.卸载 Notes
    注意:卸载软件使用软件名称,而不是包文件名:

    # rpm -ev ibm_lotus_notes

   

  03.软件包依赖性关系

    由于开源的多态性,Linux 操作系统中的软件之间的依赖性关系处理一直令用户感到头疼。如果 package_a 依赖于 package_b,那么在一个没有安装 package_b 的系统中,package_a 是不被系统推荐安装的,强制安装很可能会导致软件无法正常工作。

    基于以上 package_a 和 package_b 的关系,在一个干净的系统中 ( 未安装 package_a 或 package_b),欲安装 package_a,错误通常会表现为:

    RHEL 5.2
    
    # rpm -ivh package_a.rpm

    error: Failed dependencies: 
        pacakge_b = version info is needed by package_a

 

    查询 RPM 包的依赖关系,   使用 rpm -qRp:
    
    # rpm -qRp package_a.rpm

    package_b = version_info 
  或
    package_b >= version_info 
  或
    package_b <= version_info 

    表明 package_a.rpm 依赖于 version_info 版的 package_b,或者任何高于并包括 version_info 版的 package_b,亦或低于或包括 version_info 版的 package_b 。所以 package_b.rpm 必须在 package_a 之前安装于系统中。

    对于 package_a,正确的安装方法应该是:
    ##RPM 
     # rpm -ivh package_b.rpm 
     # rpm -ivh package_a.rpm

 

  常见问题列表

    01.可以手动强制不进行 RPM的依赖性关系检查吗?

    RPM 可以。使用 --nodeps 辅助参数,则安装过程将不理会依赖性关系限制,强制安装目标包,

    如:# rpm -i --nodeps package_a.rpm

    02.RPM 中的 --force 是干什么用的?

    RPM 中的默认安装规则是不允许同一个包多次安装的,也不允许降级安装。使用 --force 辅助参数将不考虑以上

因素,强制安装 RPM 包。但是,--force 无法强制安装一个不满足系统依赖性关系的包 ( 此时需要用到 --nodeps

参数 ) 。使用方法如:
     # rpm -i --force package_a.rpm

    03.RPM支持远程安装吗?

    RPM 是。 RPM 支持 HTTP 和 FTP 协议,如:# rpm -Uvh ftp://user:pass@ftpserver/package.rpm 
    04.RPM提供包安装成功的验证机制吗?

    RPM 是。 可以使用 -V 参数进行验证。
    05.RPM提供包安全签名吗?

    RPM 是。可以使用 --import 导入与软件同时发布的 GPG KEY, 接着使用 -K 命令来验证包的安全性,如:
    # rpm --import pub_ibm_lotus_notes.gpg # rpm -K ibm_lotus_notes-8.5.i586.rpm 返回信息 :  ibm_lotus_notes-

 8.5.i586.rpm: (sha1) dsa sha1 md5 gpg OK

    06.如果 RPM 的底层数据库损坏,RPM 还能使用吗?

    RPM 如果底层数据库损坏,RPM 将无法正常使用。此时最常用的解决方法是重构数据库:
    # rm -f /var/lib/rpm/__* ; rpm -vv --rebuilddb

    07.可以查询系统中已经安装的某个文件属于哪个 RPM 包吗?

    RPM  可以。使用 -qf 参数 , 如在安装了 Notes8.5 的系统中:
    # rpm -qf /opt/ibm/lotus/notes/notes 返回信息 : Ibm_lotus_notes-8.5-20081211.1920

    08.可以查询 RPM 包的安装时间吗?

    RPM 可以。可使用 --last 查询。如:
    # rpm -qa --last 返回信息 : 系统中所有软件的安装时间。

 

时间: 2024-10-31 02:59:51

linux下的软件包安装的相关文章

简述Linux下的软件安装

对于Windows的用户来说,软件安装的确是没有什么学问,一直Next或者改一下路径,软件就会装好了.但是在Linux下可没这么简单了. Linux下的软件安装主要有三种方式,分别是rpm(RedHat系列)或DPKG(Debian系列).yum(RedHat系列)或APT(Debian系列)和Tarball. 由于rpm.yum等的安装方式都非常简单,在这里就不再详述了,就举一个例子来说明吧,在Windows上360.金山这些系统管理软件相信大家都有用过,yum的软件安装方式就类似于你在360

Linux下MySQL的安装与配置

  在Linux下MySQL的安装,我一直觉得挺麻烦的,因为之前安装时就是由于复杂的配置导致有点晕.今天,需要在Linux下用Qt连接MySQL.遂安装配置了一把. 1)首先检查系统中是否已经安装了MySQL 在终端里面输入 sudo netstat -tap | grep mysql 若没有反映,没有显示已安装结果,则没有安装.若如下显示,则表示已经安装 2)如果没有安装,则安装MySQL. 在终端输入 sudo apt-get install mysql-server mysql-clien

Linux下Sybase数据库安装注意的问题

我们将介绍Linux下Sybase数据库安装注意的问题,包括安装地点的询问,安装之后进行优化的步骤等等. 首先使用root用户创建一个专有的sybase用户以及sybase的目录 然后切换到sybase用户下进行安装 //切记一定要在sybase用户下面安装 最后将安装包上传到sybase目录下使用命令 ./setup -console进行安装 Step1:安装数据库sybase 安装步骤: 1.询问安装地点而显示License信息,因为安装软件显示中文有问题,一般选择"United State

Linux下NDK的安装配置

Linux下NDK的安装配置     在编写android程序的时候如果需要复用一部分以前的c语言程序,可以考虑使用NDK.由于设计到c和c++编程,故强烈建议在Linux下安装上eclipse的CDT插件.安装方法同安装其他插件的方式一样,推荐离线安装,方法这里不再赘述.     在使用NDK之前需要下载android-ndk包,下载解压后将解压后的文件夹拷贝到自定义的目录下面(如"/root/"目录下),如图一所示.   图一  拷贝解压后的ndk文件夹到自定义目录下      

Linux下rz/sz安装及使用方法

http://blog.chinaunix.net/uid-20639775-id-154615.html Linux下rz/sz安装及使用方法 1)    工具说明 在SecureCRT这样的ssh登录软件里, 通过在Linux界面里输入rz/sz命令来上传/下载文件. 对于RHEL5, rz/sz默认没有安装所以需要手工安装. sz: 将选定的文件发送(send)到本地机器; rz:运行该命令会弹出 一个文件选择窗口, 从本地选择文件上传到服务器(receive). 下载安装包lrzsz-0

Linux下MongoDB的安装,通过配置文件启动Mongodb的方式研究,mongodb自启动脚本(Linux),Windows下安装MongoDB服务

关于MongoDB的windows的 安装,可以参考: http://www.runoob.com/mongodb/mongodb-window-install.html 关于Linux的安装可以参考: http://www.runoob.com/mongodb/mongodb-linux-install.html 使用MongoDB的场景: A:需要写入大量的数据,但是这些数据的价值并不是太高,比如:日志 B:数据增长量较大,而且数据结构有时候还不一致 C:未来数据会很大. 注意:Mongod

linux yum yellowdog-关于linux下 yum的安装问题,,,配置,,(第一次提问)

问题描述 关于linux下 yum的安装问题,,,配置,,(第一次提问) 我在虚拟机下,装了Redhat,用Rpm命令查找YUM找不到,,就想在网上下载一个安装,,,,,,就大神 解决方案 去sohu或163的镜像站下一个yum的rpm包,然后用rpm -i命令安装上即可 解决方案二: 没有yum安装包,网上下载一个.deb包然后双击安装就ok了~

Linux下Nagios的安装与配置

Nagios是企业普遍使用的最具影响力的网络信息监视系统之一,它可以动态监视指定的网络状态,并在状态异常时发出警告音或邮件报警通知运维人员.监控的类型和警报定时器是完全可定制的. Nagios的另一强大功能是它能同时监测主机和服务.例如,它可以同时监测到IP地址和TCP/UDP端口号.为进一步阐述此功能,我们假定有台需要监测的web服务器,Nagios可运用在服务器上基于IP/服务器名运行ping命令的方法检测服务器是否在线,同时当服务器的RTT(往返时延)增加时,Nagios会随时告警.另外,

linux下tomcat apr 安装问题

问题描述 linux下tomcat apr 安装问题 求高手帮忙: 按网上的文档安装apr一切顺利,但tomcat在启动的时候apr仍然找不到... 2015-7-7 15:17:31 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments