• 软件包管理


    一. 软件包介绍

    编程语言分类:
    机器语言
    汇编语言
    高级语言:
        (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
     

  • 相关阅读:
    leetcode 237: Delete Node in a Linked List
    谈谈地图中的道路绘制
    关于double类型数字相加位数发生变化的问题
    iOS_25_彩票设置的cell的数据源模型的封装
    session_start() [function.session-start]:
    Android系统Gps分析(一)【转】
    Android4.4 GPS框架分析【转】
    GPIO设备虚拟文件结点的创建【转】
    高通MSM8255 GPS 调试分析&&Android系统之Broadcom GPS 移植【转】
    和菜鸟一起学android4.0.3源码之硬件gps简单移植【转】
  • 原文地址:https://www.cnblogs.com/allenzhu128/p/13914823.html
Copyright © 2020-2023  润新知