软件包管理

一. 软件包介绍

编程语言分类:
机器语言
汇编语言
高级语言:
    (1)解释型(shell、python)
安装方法:
1、下载python写好的软件包
2、在自己的linux主机上安装对应版本的python解释器以及依赖包
python a.py
    (2)编译型(c语言、go语言)
c语言不支持跨平台编译,所以c语言写出来的源码包,在不同的平台安装都必须编译一次
go支持跨平台编译 
安装方法:
1、下载源码包
2、在自己的linux主机上安装好编译器
3、用编译器把源码包编译成可执行的命令

分类 安装 特点
rpm包 预先编译打包,安装简单 通常软件的稳定版会被官方做成rpm,所以软件版本偏低
源码包 手动编译打包,安装繁琐 软件版本丰富,可选择性强
二进制包 解压即可使用,安装简单 不能修改源代码

源码包:需要手动编译打包,定制安装细节,然后才能安装
rpm:预先已经编译打包好了,是已经制作好的安装程序,可以通过rpm或者yum安装

二进制包:下载完毕就可以用,无需安装

 rpm包举例:

管理rpm包有两种命令

rpm包获取

二. rpm命令

-i: 安装
-v: 详细信息
-h: 安装进度
--test: 测试是否能够安装成功
--force: 强制重新安装
--nodeps: 忽略依赖关系
-U: 如果老版本不存在,就全新安装,如果存在有新版即升级
-f: 老版本必须存在
 
#仅测试,是否能安装成功
[root@oldboyedu Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm --test
Preparing... ################################# [100%]
 
#强制安装,忽略依赖
[root@oldboyedu Packages]# rpm -ivh --nodeps --force samba-client-4.8.3-4.el7.x86_64.rpm
 
#安装
rpm -ivh (rpm包全称)
 
#卸载
rpm -e (rpm包名)
 
#升级
rpm -Uvh (rpm包名)
 
#查询
rpm -q (rpm包名) #查看指定软件包是否安装
rpm -qa (rpm包名) #查看系统中已安装的所有RPM软件包列表
rpm -qi (rpm包名) #查看指定软件的详细信息
rpm -ql (rpm包名) #查询指定软件包所包含的文件
rpm -qc (rpm包名) #查询指定软件包的配置文件
rpm -qd (rpm包名) #查询指定软件包的帮助文档
rpm -qf (文件路径) #查询文件或目录属于哪个RPM软件

#查看未安装的rpm包
在上述选项的基础上加上选项-p,就可以查看尚未安装的rpm包信息
[root@localhost ~]# rpm -e dos2unix # 先卸载一下,证明本地rpm数据库中没有该包信息
[root@localhost ~]# rpm -qip /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm 
[root@localhost ~]# rpm -qlp /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
[root@localhost ~]# rpm -qcp /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
[root@localhost ~]# rpm -qdp /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
 
 
#安装与依赖
 

 

 
三. yum安装rpm包
 
yum是RedHat以及CentOS中的软件包管理器,能够通过互联网下载以rpm结尾的包,并且安装,并可以自动处理依赖性关系,无需繁琐的一次次下载安装。
 
yum命令常用选项:
 
1.查看仓库命令
yum repolist  查询可用仓库
yum repolist all 查看包括已启用或禁用的所有仓库状态
yum-config-manager --disable epel 关闭仓库epel
yum-config-manager --enable epel 启用仓库epel 
###关闭和启用仓库,本质上都是在修改repo文件中enable的值:0为不启用,1为启用.

2.查看仓库中的软件
yum list #查看可用仓库中所有的软件包
yum list | less  可以分页查询
yum grouplist  查看可用仓库中的软件组
yum provides /usr/sbin/ifconfig 查询命令所属的软件包,可用不加路径,只写命令名字.rpm -qf 的区别是必须要写上路径.

3.安装软件包
yum install httpd httpd-tools #加上-y选项可以贬称给交互
yum groupinstall "软件组" -y #安装软件组,一个软件组中包含了多个软件包
yum groups install "软件组" -y #意思同上
 
4.卸载
yum remove httpd httpd-tools http* #卸载软件包
yum groupremove "软件组" -y. #卸载软件组
yum groups remove "软件组" -y #同上
 
5. 重装
yum reinstall httpd #不小心删除了配置文件时,可以重装一下
 
6. 更新
yum check-update 检查可以更新的软件包
yum update -y  更新所有的软件包,包括内核,一般只在刚装完系统是执行
yum update httpd -y 更新某个软件包
 
7. 缓存
yum makecache #制作元数据缓存
yum clean all #清理元数据缓存
yum元数据缓存是将yum仓库的元数据缓存下来,下次安装时省去了检索的过程,安装速度可以加快.
yum软件包缓存:开启了软件包缓存后,从网络源下载安装完的软件包不再删除,都缓存到了本地.
###默认软件包下载安装后会自动删除,在yun.conf配置文件中设置keepcache=1即开启了软件包缓存,缓存目录为配置文件指定的cache目录,或者可以自己指定.
vim /etc/yum.conf
8. 历史记录
yum history   查看执行过的yum命令历史记录
yum history info ID号  查看具体某一条yum命令的详细信息
yum history undo ID号  撤销执行过的历史命令
 

四.镜像文件作为yum源(本地源)

1.先挂载
方式一: mount /dev/cdrom /mnt

方式二: mount /dev/sr0 /mnt

方式三: mount -o loop /xxx.iso /mnt 
xxx.iso 表示一个镜像文件,可以本地上传或者dd if=/dev/sr0 of=/xxx.iso /mnt

2.编辑repo文件

3. 检查可用仓库

4. 安装,查询,卸载

5. 软件包组的安装,查询,卸载

五. 使用开源yum仓库(网络源)

阿里云的base基础源:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

163的base基础源:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
 
红帽的epel扩展源:
 curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
也可以通过安装一个软件包来生成
yum install epel-release -y
 

六. 自己制作本地yum仓库

基于软件包缓存,也可以做成自己的本地yum仓库,以此来控制各个服务的版本,通常做法为:

自己制作本地yum源共享给别人

七. 源码包

1. 官网下载 

wget http://nginx.org/download/nginx-1.18.0.tar.gz
 
2. 预先安装编译安装依赖的库
yum -y install gcc gcc-c++ autoconf automake make
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
或者
LANG=C yum -y groupinstall "Development tools"
 
3. 解压,编译,编译安装
tar xvf nginx-1.18.0.tar.gz -C /tmp/
cd /tmp/nginx-1.18.0/
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-http_gzip_static_module --with-http_sub_module
# --prefix指定安装的目录,/usr/local/nginx 是安装目录
make && make install
#将程序设定一个软链接,便于后续的升级
 ln -s /soft/nginx-1.16.0/ /soft/nginx
 

原文地址:https://www.cnblogs.com/allenzhu128/p/13914823.html