Linux安装软件的4种方式
- 通用二进制格式:直接解压压缩文件,就可以使用。但一定要注意安装平台。
- 软件包管理器:如RPM。
- 软件包管理器的前端工具:如YUM。
- 源代码编译。
二进制格式安装
二进制软件,分为四个模块
- 二进制程序,位于 /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin 等目录中。
- 库文件,位于 /lib, /usr/lib, /usr/local/lib 等目录中。Linux中库文件以 .so(动态链接库)或 * .a(静态链接库)作为文件后缀名。
- 配置文件,位于 /etc 目录中。
- 帮助文件:手册, README, INSTALL (/usr/share/doc/)
安装程序,卸载程序是非常繁杂
软件包管理工具 RPM
特性:
- 文件清单
- 文件放置路径
- 提供的功能说明
- 依赖关系
功能:
- 打包
- 安装
- 查询
- 升级
- 卸载
- 校验
- 数据库管理 (软件包管理器内部有一个数据库,其中记载着程序的基本信息,校验信息,程序路径信息等)
缺点:
由于Linux中的程序大多是小程序。程序与程序之间存在非常复杂的依赖关系。RPM无法解决软件包的依赖关系。
源程序的命名规范:
name-version.tar.{gz|bz2|xz}
版本号:major.minor.release
例:bash-4.3.1.tar.xz
RPM包的命名规范:
name-version-release.os.arch.rpm
name:程序名称。
version:程序版本号。
release(发行号):用于标识RPM包本身的发行号,与源程序的release号无关。
os:即说明RPM包支持的操作系统版本。如el6(即rhel6)、centos6、el5、suse11。
arch:主机平台。如i686、x86_64、amd64、ppc(power-pc)、noarch(即不依赖平台)
例:bash-4.3.2-5.el6.x86_64.rpm
RPM命令、参数
RPM常用选项:
-i:表示安装。
-v, -vv, -vvv:表示详细信息。
-h:以"#"号显示安装进度。
-q:查询指定包名。
-e:卸载指定包名。
-U:升级软件,若未软件尚未安装,则安装软件。
-F:升级软件。
-V:对RPM包进行验证。
--nodeps:忽略依赖关系。
--query:查询指定包名。同-q选项。
--hash:同-h。
--install:表示安装,同-i选项。
--test:仅作测试,不真正执行,可用于测试安装,测试卸载。
--replacepkgs:重新安装。替换原有的安装。
--force:忽略软件包及文件的冲突。
--initdb:新建RPM的数据库。
--rebuilddb:重建RPM的数据库。
--percent:以百分比的形式输出安装的进度。
RPM包的查询参数
rpm -q:查询某一个RPM包是否已安装
rpm -qi:查询某一个RPM包的详细信息
rpm -ql:列出某RPM包中所包含的文件。
rpm -qf:查询某文件是哪个RPM包生成的。
rpm -qa:列出当前系统所有已安装的包
示例:
安装RPM包
rpm -ivh rpm包路径
卸载RPM包
rpm -e rpm包路径
升级软件
rpm -Uvh rpm包路径
RPM的数据库文件位于: /var/lib/rpm
软件包管理器的前端工具 Yum
配置文件位置
主配置文件:/etc/yum.conf
片段配置:/etc/yum.repos.d/*.repo
配置文件详解:name
[main] #main仓库。[ ]中括号表示一个仓库的定义。其中是仓库的名称。
cachedir=/var/cache/yum/$basearch/$releasever #RPM包的缓存位置。
keepcache=0 #RPM包在本地是否需要长期保存。1表示yes,0表示no。
debuglevel=2 #日志级别。
logfile=/var/log/yum.log #日志文件。
exactarch=1 #下载的RPM包是否需要与本地平台完全匹配。1表示yes,0表示no。
obsoletes=1
gpgcheck=1 #是否需要自动来源合法性检测。
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bdistroverpkg=centos-release
注意:配置文件中的
=
号的前后不能有空格
常用命令
* yum install 安装
* yum reinstall 重新安装软包
* yum remove 卸载
* yum update 升级制定软件
源代码编译
- configure 检查编译环境;
- make 对源代码进行编译;
- make insall 将生成的可执行文件安装到当前计算机中
Yum与Rpm区别
关系
Rpm软件包形式的管理虽然方便,但是需要手工解决软件包的依赖关系。很多时候安装一个软件安装一个软件需要安装1个或者多个其他软件,手动解决时,很复杂,yum解决这些问题。Yum是Rpm的前端程序,主要目的是设计用来自动解决Rpm的依赖关系
Yum的特点
- 自动解决依赖关系
- 可以对rpm进行分组,基于组进行安装操作
- 引入仓库概念,支持多个仓库
- 配置简单
使用
Yum仓库用来存放所有的现有的.rpm包,当使用Yum安装一个rpm包时,需要依赖关系,会自动在仓库中查找依赖软件并安装。仓库可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、统一的网络仓库,使用Rpm配置远程仓库url后无需下载rpm包,Yum可直接操作。
仓库的配置文件/etc/yum.repos.d目录下
yum源中 devel包 和 非devel包的区别
例如
czmq,czmq-devel
基于此包开发的程序,只需要安装
czmq
包就行了
要编译使用了
czmq
的源代码,则需要安装
czmq-devel
版权归原作者 大口吃饭大口吐 所有, 如有侵权,请联系我们删除。