Linux基础16 yum命令, 源码安装nginx, fpm工具打rpm包进yum仓库

发布时间 2023-04-18 18:34:38作者: 战斗小人

yum实战命令:

    安装:
        yum install 
        -y:不交互安装    # 选项[y/d/N]: d代表只下载不安装   没有-d参数
        
        yum localinstall 安装本地的rpm包,并安装依赖(从其他源里下载安装)
        
        yum reinstall   重装    # 可用于修复
        
    查询:
        yum list 查询所有的安装包    (包含安装的来源仓库, 还会列出伪装过的包)
        
        yum info 查看安装或未安装包的详细信息    # 例: yum info tree
        
    
    更新:
        yum check-update                  检查可以更新的包
        
        yum update python -y             更新python包
        !!!!!!!!!
        yum update -y  ******注意          非常危险,更新所有包,包括内核(yum update -y会把所有包升级,升级内核把centos6升为7)
        
        
    删除:
        yum remove : 删除rpm包(会把依赖也删除)    尽量少用,把依赖删除危险。重装直接yum reinstall,不要先删后装
                rpm -e 只删除对应的包,比较安全
        yum erase  : 删除rpm包(和yum remove一样, 没区别)
        
    
    yum仓库相关命令:
        yum repolist :查看仓库中的所有rpm包数量
        
        yum repolist all: 查看启用的和没启用的仓库    # 通过修改仓库配置文件enable
        
        # 阿里源仓库配置文件3个地址 
        http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/            自己的服务,走这个源
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/            
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/        购买的云主机,内网源(走阿里内网速度快)
    
        
        yum-config-manager --enable : 启用yum仓库(可以直接通过修改仓库配置文件实现)
        
        yum provides : 查询你想要敲的命令,属于哪个rpm包    # 例: yum provides ifconfig  或写命令路径 yum provides /sbin/ifconfig
        
    yum缓存:(很少用,现在换源用不到)
        yum clean all    # 清缓所有yum缓存
        yum makecache    # 加载当前源的缓存包
        
        yum配置文件中
        vim /etc/yum.conf    里面有个keepcache=0  # 缓存软件包, 0关闭, 1开启(缓存开启的情况下, 安装包后会在/var/cache/yum/x86_64/7有对应的包)
        find /var/cache/yum/x86_64/7    # 装一个服务,会把包放在对应的缓存下面
        find /var/cache/yum/x86_64/7 -type f -name '*.rpm'    查缓存里的包

 

    yum包组相关命令:    (就是安装centos时包组选项页面(有最小安装), 左右两边都有) # 很少用到
        yum groups list
        
        yum groups install Development tools    (就是安装centos时选项页面(有最小安装)的 Development Tools)
        
        yum groups remove  -y Base
        
        
    yum历史相关命令:
        yum history
        
        yum history info     # 例: yum history info 38
        
        yum history undo 43    # 取消43步的操作(没什么意义,还要查历史)
        
    yum配置文件了解
        vim /etc/yum.conf
        keepcache    # 缓存软件包, 1启动 0 关闭  (打包会用到)
        debuglevel    # 调试级别
        logfile        # 日志记录位置
        exactarch        # 检查平台是否兼容
        obsoletes        # 检查包是否废弃
        gpgcheck        # 检查来源是否合法,需要有制作者的公钥信息 (自己安装没必要开启)
        plugins        # 是否启用查询
    
    # 不进行签名验证(如果碰到需要签名验证的,可以追加参数不验证)
    yum install httpd --nogpgcheck

 

源码包:

    yum安装,优点:速度快,简单
        缺点:rpm -ql 查看 命令目录,配置文件目录,站点目录...
              
              
    源码包优缺点:
    优点:
    
    1.有了源码包,那我就可以自行修改代码,提供我们使用,传说中的二次开发
    2.可以定制需要的相关功能
    3.新版本优先更新源码
    4.自动化规范,方便落地
    
    缺点:
    1.相对于yum安装,复杂
    2.耗时比较长

 

源码包地址

mysql (官网选择, 源码包就是Source Code, 一般都是tar包, .tar.gz)
wget https://downloads.mysql.com/archives/get/file/mysql-5.6.42.tar.gz
nginx
wget http://nginx.org/download/nginx-1.16.0.tar.gz

 

安装源码包:

        # 安装nginx所有依赖包
        [root@db_rpm ~]# yum install -y gcc gcc-c++ glibc pcre-devel zlib-devel openssl-devel

            # 把需要安装的依赖包拷贝出来(用于下面fpm打rpm包)
            # 修改yum缓存,把安装的相关依赖包本地保存下来
            sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
            # 查找当前yum缓存下的安装包
            find /var/cache/yum/ -name '*rpm'
            # 把下载的包拷贝出去
            find /var/cache/yum/ -name '*rpm' |xargs cp -t /usr/local/src/
    
        1.解压(一定要装完c的环境后再进行解压,否则会少东西)
            [root@db_rpm ~]# tar xf  nginx-1.16.0.tar.gz

        mkdir /app
        2.生成
            [root@db_rpm nginx-1.16.0]# ./configure --prefix=/app/nginx-1.16.0        # --prefix选择要安装的路径
            # echo $? 可以看运行成功失败

        3.编译(把c语言代码编译成linux可以识别的编码)
            [root@db_rpm nginx-1.16.0]# make
            # echo $? 可以看运行成功失败
        4.安装
            [root@db_rpm nginx-1.16.0]# make install
            # echo $? 可以看运行成功失败
            # 在/app/nginx-1.16.0/下  conf配置文件,html站点目录,logs日志,sbin命令          
        

        5.启动nginx(/app/nginx-1.16.0下会生成很多文件,都是缓存,可以清理)
        [root@db_rpm nginx-1.16.0]# /app/nginx-1.16.0/sbin/nginx
              
        6.关闭防火墙
        [root@db_rpm nginx-1.16.0]# systemctl stop firewalld
        
        7.打开浏览器,访问:http://10.0.0.60/

 

fpm工具打rpm包进yum仓库

优点: 安装路径和源码安装一致,企业统一管理

fpm工具安装:(打包需要工具,可以把源码安装的包通过fpm打包成rpm包)    
        
        wget http://download.driverzeng.com/fpm-1.3.3.x86_64.tar.gz
        
        yum -y install ruby rubygems ruby-devel    # 安装fpm依赖

        解压:[root@db_rpm ~]# tar xf fpm-1.3.3.x86_64.tar.gz
        
        # 换gem源 删掉国外源,换成国内源(不换源也可以,速度慢些)
        gem sources --add https://mirrors.huaweicloud.com/repository/rubygems/ --remove https://rubygems.org/
        
        # 安装fpm的包
        [root@db_rpm ~]# gem install *.gem
        
        # 打包命令(会有黄字, 不影响)
        fpm -s dir -t rpm -n nginx -v 1.16.0 -d 'pcre-devel,openssl-devel' -f /app/nginx-1.16.0
        # -s dir指定打包目录    -t rpm指定是rpm包    -n 指定包名  -v 指定版本   -d 指定依赖包  -f 指定要打包的目录
        
        nginx-1.16.0-1.x86_64.rpm    
        # 打包出的文件   nginx-版本-发布次数-架构

通过fpm打包做镜像

        cp nginx-1.16.0-1.x86_64.rpm /usr/local/src/
        进入/usr/local/src/中,把所有文件打tar包
        cd /usr/local/src/
        tar zcf nginx.tar.gz ./*

        # 拷贝到仓库机器目录下
        cd /data/zls/yum_repo/nginx
        # 解压
        tar xf nginx.tar.gz
        # 把该路径变为yum仓库
        createrepo /data/zls/yum_repo/nginx/

        # 访问机操作
        cd /etc/yum.repos.d/
        # 编辑
        vim nginx-zls.repo
        [app-nginx]
        name='xxx'
        baseurl=http://10.0.0.200/nginx/
        enable=1
        gpgcheck=0

        # 参看yum是否生效
        yum repolist
        # 查看是否安装nginx
        rpm -qa|grep nginx
        >> nginx-1.16.0-1.el7.ngx.x86_64
        # 卸载
        rpm -e nginx-1.16.0-1.el7.ngx.x86_64 
        # 安装
        yum install -y nginx
        # 查看是否在/app目录下(conf文件也在路径下)
        ll /app