1、linux软件包分类:
1、linux软件包分类:
2、源码包的优缺点:
源码包的优点:
1)、开源 可以修改源代码
2)、编译安装,可以自由选择所需要的功能,一般安装在/usr/local/软件名
3)、卸载方便
源码包的缺点:
1)、安装过程中的步骤多,容易出现问题;
2)、编译安装中一旦报错新手不易解决,且编译过程时间较长;
3、RPM包的优缺点:
RPM包的优点:
1)、包管理系统简单,中需几个命令就可以实现包的查询、安装、升级和卸载
2)、安装速度比源码包快
RPM包的缺点:
1)、不能看到源代码,因为编译过的
2)、功能选择不如源码包灵活
如:相关应用的配置文件一般放在/etc/目录中,相关应用的服务对应的启动、停止、重启等脚本默认放在/etc/rc.d/init.d/中;
3)、包之间的依赖性
2、包依赖性:
1、树形依赖:
2、循环依赖:
3、共享库依赖:
在rpm包安装过程中出现.so.数字的错误时,即缺少某个共享库;解决方法:
在www.rpmfind.net网站上查找
注:共享库是程序运行时加载的库,和windows系统中的dll文件差不多;
3、RPM包管理—-RPM包安装:
用法:rpm –ivh 完整的包名
示例:
注:-i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
—nodeps 不检测依赖性
4、RPM包管理—-RPM包升级:
用法:rpm –Uvh 完整的包名
说明:-U(upgrade) 升级
5、RPM包管理—-RPM包卸载:
用法:rpm –e 包名称
示例:
注:-e(erase) 卸载
—nodeps 不检查依赖性
6、RPM包管理—-查询RPM包是否安装:
用法1:rpm –q 包名称
示例:
用法2: //查询所有已安装的rpm包
rpm –qa
示例:
7、RPM包管理—-查询包中文件安装位置:
用法1:rpm –ql 包名称
示例: // 查询httpd包中文件的安装位置
[root@turingphp ~]#yum –ql httpd
注:-l 列表(list)
-p 查询未安装的包信息(package),查询未安装包信息时要带完整包名称
8、RPM包管理—-网络yum源:
rpm包最大的问题是包依赖性,前面讲过安装rpm包时可能碰到包依赖性,要解决这些包依赖性时非常麻烦,yum这种rpm包管理方式就是解决rpm包依赖性,在安装某个软件包时只需要告诉linux你要安装的软件包名,那么在安装过程中就会把要安装的软件包及相关依赖的软件都自动下载下来,并且会自动安装。
yum**源分为网络源和本地光盘源,需要注意的是yum在很多linux公司(如redhat)需要付费,但在社区版的linux系统(如centos、fedora)则不需要付费。
Centos的网络yum源默认是已经配置好,只要当前的linux系统能访问互联网就可以直接使用,但是centos默认的yum源都是使用国外主机,有时访问时可能慢。
1、Yum源存放在/etc/yum.repos.d/目录,如下图:
注:CentOS-Base.repo 基本yum源(网络yum源),默认该yum源生效
CentOS-Debuginfo.repo debug信息yum源
CentOS-Media.repo 光盘yum源
CentOS-Vault.repo 虚拟yum源
2、查看基本yum源(网络yum源),使用下面的命令:
[root@turingphp ~]#vi /etc/yum.repos.d/CentOS-Base.repo
基本yum源(网络yum源)的文件内容如下:
注:基本yum源(网络yum源)文件中默认有5个软件仓库,但默认是第一个软件仓库生效([base]),这5个软件仓库的配置格式都是一样,其格式如下:
[base] 软件仓库名称,一定要放在[]中
name 软件仓库的说明,自己可以随意定义
mirrorlist 镜像服务器地址
baseurl 真正的yum源服务器地址,默认是centos官方的yum源服务器,可以使用
enabled 该软件仓库是否生效,若不写或写成enable-1为生效,写成enable-0则不生效
gpgcheck 若为1则指rpm的数字证书生效,若为0则不生效,默认即可
gpgkey 数字证书的公钥文件保存位置,默认即可
9、RPM包管理—-常用yum命令:
1、在远程服务器上查询所有可用软件包列表:[root@turingphp ~]#yum list
示例:
2、在远程服务器上搜索所有和关键字相关的包:[root@turingphp ~]#yum search 关键字
示例:
3、安装:[root@turingphp ~]#yum –y install 包名
// -y 自动回答yes
示例:
4、升级:[root@turingphp ~]#yum –y update 包名
// -y 自动回答yes
注:若update后面没有包名,则升级所有的软件包(包括linux内核),尽量要带包名
5、卸载:[root@turingphp ~]#yum –y remove 包名
// -y 自动回答yes
注:使用yum卸载某个软件包时会把该软件包相关依赖的所有软件包都卸载掉,但有些依赖的软件包会被其它软件包使用,若卸载掉这些依赖的软件包则会导致其它包不能使用,因此尽量不要使用yum来卸载软件包**