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 返回信息 : 系统中所有软件的安装时间。
linux下的软件包安装的更多相关文章
- linux下制作软件包安装服务器
linux下的软件包在有网络的情况下比较好安装,在ubuntu下,更新sourcelist,然后使用apt-get就可以很方便的安装包,在centos下面,更新yum列表,然后使用yum也可以进行方便 ...
- Linux下OpenSSL的安装与使用
Linux下OpenSSL的安装与使用 OpenSSL简介 OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux.Windows.Mac OS ...
- 【one day one linux】linux下的软件包管理工具
Linux 下的软件包管理工具 linux下的软件安装可以通过两种方式,一种是直接使用自带的软件包管理工具安装,另外一种通过编译源码安装. 1.软件包的种类 Red Hat和Fedora:redhat ...
- Linux下软件常见安装方式
pasting 分类: Linux2007-12-08 16:31 1909人阅读 评论(0) 收藏 举报 linuxredhat脚本文档managerfile Linux下软件安装主 ...
- Linux下图解minicom安装
Linux下图解minicom安装 minicom是一个串口通信工具,就像Windows下的HyperTerminal.可用来与串口设备通信,如调试交换机和Modem等.它的Ubuntu软件包的名称就 ...
- 笔记:Linux下软件的安装、CentOS更新yum源、LAMP环境搭建、kali软件管理
一.Linux下软件的安装 方式:yum源 / rpm /源码安装 1.yum:(帮助管理员解决依赖关系) yum是通过分析rpm的包头数据后,根据各种软件的相关性质做出属性相对应的解决方案,然后可以 ...
- Linux下命令行安装weblogic10.3.6
Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...
- Linux下MongoDB服务安装
Linux下MongoDB服务安装 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据 ...
- Windows下的Memcache安装 linux下的Memcache安装
linux下的Memcache安装: 1. 下载 memcache的linux版本,注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent. 官方网址:http ...
随机推荐
- C#主键类型选择
1.SQL Server中两种常用的主键数据类型:int(或者bigint)+标识列(又称自动增长字段) uniqueidentifier(又称Guid.UUID) 2.Guid算法是一种可以产生唯一 ...
- BZOJ 4143 The Lawyer
这道题看起来很吓人,但事实上看懂后会发现,其根本没有任何技术含量,做这道题其实要考虑的就是每天最早结束的一场的结束时间以及最晚开始的一场的开始时间,如果结束时间早于开始时间,那么OK就这 ...
- 重新生成IE02
procedure ReBuild_IE02( pi_aac001 in number, po_fhz out varchar2, po_msg out varchar2) is type typ_t ...
- AutoCAD 2013官方简体中文破解版(32 / 64位),带激活码和注册机
AutoCAD 2014下载地址:http://ideapad.zol.com.cn/61/160_603697.html 安装及破解方法:(注册机下载在下方) 1.安装Autodesk AutoCA ...
- chr()、unichr()和ord(),全半角转换,ValueError: unichr() arg not in range() (wide Python build)
chr().unichr()和ord() chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符. unichr()跟它一样,只不过返回的是 Unicode ...
- Linux UDEV和为MySQL InnoDB共享表空间配置裸设备
⑴ UDEV 基础 udev 可管理保存在/dev 目录下的文件.文件只有在接入相应设备后才会生成.设备被拔出后自动删除 它还允许用户添加规则.以便修改/dev中默认的名称和权 ...
- Eclipse中设置tomcat的启动内存
现象:眼下每次使用Eclipse启动Tomcat 的时候常常出现OutOfMemoryError thrown from the UncaughtExceptionHandler in thread ...
- IOS7 适配以及向下兼容问题
1.所有的UIViewController加如下方法. - (void) viewDidLayoutSubviews { if ([[[UIDevice currentDevi ...
- 史上最详细的Android Studio系列教程一--下载和安装
链接地址:http://segmentfault.com/a/1190000002401964#articleHeader4 原文链接:http://stormzhang.com/devtools/2 ...
- ASP.NET MVC 5 学习教程:修改视图和布局页
原文 ASP.NET MVC 5 学习教程:修改视图和布局页 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 ...