Linux基础命令—软件管理

基础知识

软件包分类
windows软件包类型
    .exe 
    .msi 

Linux软件包类型
    redhat 
        .rpm
    debian 
        .deb
    alpine
        .apk
    二进制包
        由源代码编译完成后的产物,开箱即用
        特点:
            1.方便使用
            2.方便迁移,升级
    源码包
        源代码,我们程序的最初是的产物
        定制服务,一切自定义 

如何获取软件包
1.光盘 镜像文件
2.线上镜像站 仓库(公共)
    developer.aliyun.com 阿里开源镜像站
    mirrors.tuna.tsinghua.edu.cn 清华大学开源镜像站
    mirrors.pku.edu.cn 北京大学开源镜像
    mirrors.huaweicloud.com 华为云开源镜像站
3.第三方软件包的仓库(自己的软件)
4.线下仓库
    公司内部自建的

获取软件包
1.通过光盘去获取软件包
/dev/cdrom 光盘设备(链接文件)
/dev/sr0  光盘设备 mount /dev/cdrom /mnt 
ls /mnt/Packages

 

rpm

基础概念
什么是rpm包
早期 redhat package manager 
     rpm package manager
负责软件的安装 升级 卸载 查询
问题:
软件包之间存在依赖关系
安装A时需要B 安装B时又需要C
安装
    -i install 
    -v 详细信息
    -h 进度条
    --force 强制
    --nodeps 跳过依赖
    组合使用: -ivh
例1:安装zsh
# rpm -ivh /mnt/Packages/zsh-5.0.2-34.el7.x86_64.rpm
例2:安装vsftp
# rpm -ivh /mnt/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm 
例3:重新安装vsftp
# rpm -ivh --force /mnt/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm 
例4:安装samba
# rpm -ivh --nodeps /mnt/Packages/samba-4.10.4-10.el7.x86_64.rpm 

卸载
    -e 卸载
# rpm -e vsftpd

升级
    -U 升级
分别下载nginx-1.18 1.20
nginx 1.18
# wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-2.el7.ngx.x86_64.rpm

nginx 1.20
# wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm
安装nginx 1.18
# rpm -ivh nginx-1.18.0-2.el7.ngx.x86_64.rpm
升级
# rpm -Uvh nginx-1.20.0-1.el7.ngx.x86_64.rpm
降级
# rpm -Uvh --force nginx-1.18.0-2.el7.ngx.x86_64.rpm

查询
    -q 查看指定软件包是否安装
    -qa 查看系统中已安装的所有RPM软件包列表
    -qi 查看已安装软件的详细信息
    -ql 查询已安装软件包所安装的目录、文件列表
    -qc 查询已安装软件包的配置文件
    -qd 查询已安装软件包的帮助文档
    -qf 查询文件或目录属于哪个RPM软件
    -qip 查询未安装的rpm包详细信息
    -qlp 查询未安装的软件包会产生哪些文件
例1:查看zsh是否已经安装
# rpm -q zsh 
# rpm -qa |grep zsh
例2:查看zsh安装软件的详细信息
# rpm -qi zsh
例3:查看zsh软件所安装的目录以及文件列表
# rpm -ql tree
例4:查看zsh软件包的配置文件
# rpm -qc zsh
例5:查看/目录来源于哪个软件包
# rpm -qf /
例6:查看vsftp rpm包的详细信息
# rpm -qip /mnt/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm 
例7:查看vsftp的rpm会产生那些文件
# rpm -qlp /mnt/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm 

 

yum

基础概念
yum软件包管理工具
yum 是redhat 以及 centos 的软件包管理器,他可以通过互联网下载.rpm包,进行安装,并且可以解决rpm之间的依赖关系,无需一直下载以及安装,yum生产环境中的最佳实践

yum源
安装更新 软件或者系统需要去下载rpm,从软件包仓库中来

yum源的分类
官方源 基本源
        由各种linux不同的发行版本的厂商或者社区所提供
社区源
        由各种不同的社区所提供的软件包仓库
EPEL源 扩展源
        第三方源提供额外的软件包以及工具 主要为企业提供
第三方源
        由不同的app 开发者 开发商所提供的软件包仓库
中间件 nginx mysql redis

yum源在哪
/etc/yum.repos.d/*.repo

yum源的配置文件详解
[仓库名称]
name=仓库的描述信息
# mirrorlist=
baseurl= 指定软件包仓库的URL路径 
# 指定软件包仓库的三种方式:
# file:// 指定本地rpm包仓库(rpm必须要存在于当前的操作系统中)
# ftp://  ftp文件传输协议 指定局域网或者公共网络的FTP服务器文件仓库
# http:// https:// 超文本传输协议 互联网上的软件包仓库URL路径
gpgcheck= #秘钥校验 验证软件包的完整性 有权限能够访问该软件包 默认不开启 0关闭 1 开启
gpgkey=  #指定密钥
enable=  #仓库的大门 0关闭 1开门 默认开启

yum的配置
例1:更换国内基本源 (阿里云)
1)浏览线上镜像站 阿里云线上镜像站
2)备份官方源
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repo.d/*.repo /etc/yum.repos.d/backup

3)下载阿里云国内基本源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
或者
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

yum repolist #查看软件包仓库 

更换epel源
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
或者
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo


第三方源
配置nginx的yum源
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enable=1
查询
provides 根据文件目录以及命令查询该软件包名称
list  软件包列表
repolist 软件仓库列表
info 查询软件包的详细信息
search 通过字段查询软件包列表信息
grouplist 查看软件包组
例1:查看vim命令属于哪个软件包
# yum provides vim 
例2:查看软件包列表
# yum list
例3:查看软件包仓库
# yum repolist
例4:查询nginx的软件包详细信息
# yum info nginx

安装
install 安装
        yum 安装的整体流程
        yum install -y vim 
            1)加载软件仓库的元数据信息 (如果已经缓存过了会跳过)
                将元数据下载至本地进行缓存
            2)解析软件包之间的依赖关系
            3)生成一个列表
                显示安装的软件包
                以及依赖包
            4)确认是否安装软件包 y /d /n 
            5)先下载rpm至本地
            6)安装软件包
            7)安装完成
    localinstall 本地安装
    reinstall 重新安装
    groupinstall 安装软件包组

卸载
remove
erase 软件包及其依赖

版本更新
yum update
yum install -y nginx-1.20.0
更新nginx-1.24.0
yum update nginx
软件包的更新
yum install 默认就会安装最新版本 如果软件包已经安装就会进行更新

版本回退
yum downgrade

历史
yum history 
        undo  ID 撤回此次操作
        redo  ID 重新执行此次操作

缓存
缓存所存在的目录
/var/cache/yum
    无需再去进行元数据的读取
makecache 生成元数据缓存
clean all 清除元数据缓存

获取rpm包
--downloaddir #指定软件包下载目录
--downloadonly #只下载

下载nginx的rpm包
yum install -y nginx --downloadonly
yum install -y nginx --downloadonly --downloaddir=.

 

构建内网仓库

​​​​​​

1.挂载光盘镜像文件获取软件包
mount /dev/cdrom /mnt 

2.准备存放rpm包的目录
mkdir -p /data

3.复制rpm包
cp /mnt/Packages/* /data

4.安装元数据生成工具
yum install -y createrepo

5.生成软件包元数据
createrepo /data

6.将自己的yum源注销
cd /etc/yum.repos.d/
rename .repo .bak *.repo

7.编写配置文件
vim /etc/yum.repos.d/test.repo
[test]
name=test repo
baseurl=file:///data
enable=1
gpgcheck=0

8.查看软件包仓库
yum repolist

下载tree
yum install -y tree

源码包安装实例

基础概念
什么是源码包
源代码,没有通过编译工具进行编译的源代码

为什么要学习源码包
1.部分软件官网只提供了源码包安装 需要自行安装编译
2.部分软件的最新版本以及最新的特性并未及时更新rpm包

源码包的优缺点
1.可以自行修改源代码 
2.可以定制需要的相关功能 
3.新版软件优先更新源码 
4.缺点是: 1) 相对yum安装软件会复杂很多。2) 标准化实施困难,自动化就无法落地

源码包应用场景
1.定制化服务
2.都可以安装在各种不同的操作系统中
3.编译完成后 便于管理 升级 以及在相同平台中迁移
例1:安装nginx
1)下源码包
wget https://nginx.org/download/nginx-1.24.0.tar.gz

2)解压
tar xf nginx-1.24.0.tar.gz

3)配置
yum install -y make  cmake gcc zlib-devel pcre-devel
mkdir -p /app
cd nginx-1.24.0
./configure  --prefix=/app/nginx-1.24

4)编译
make 

5)编译安装
make install 

验证
临时关闭selinux 
selinux 会影响到服务的运行 
setenforce 0

#关闭防火墙
systemctl stop firewalld

/app/nginx-1.24/sbin/nginx

浏览器->10.0.0.100

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值