day19学习笔记(3.25)

软件包管理

什么是软件包?

软件包是电脑程序program,是一个编程语言写好的代码文件,里面包含了该语言的指令及各种字符等。

  • windows系统:qq.exe
  • macos系统:qq.dmg
  • linux系统:qq.rpm
  • 是一个将二进制命令(程序源码,经过编译后的一个单个可执行命令产物)+配置文件+数据文件,打包好的一个单个文件,

linux系统经常遇见的软件包格式

linux有很多可以安装的软件,这些软件的安装包可分为两种,分别是源码包二进制包

  • 源码包(需要编译后使用,安装难度大,定制化强)

    • 编译型语言源码
      • go语言,需要安装golang编译器,将代码编译成二级制文件执行
      • C语言,需要安装gcc编译器,将代码编译成二进制文件执行
    • 解释型语言源码
      • bash语言,需要bash解释器才能执行,执行过程从上往下一行一行执行
      • pythonn语言,同样需要python解释,执行程序需要打开python解释器
    • 脚本程序源码
      • bash为主,pyhton为辅
  • 二进制包(不需要代码编译,拿来即用,安装简单,路径受限,定制性差)

    • 已经完成编译的软件包
      • centos平台可以使用的rpm包
      • tar.gz格式的压缩包,解压即可使用,是一些特殊的二进制包,支持二进制包下载的某些软件
    • 二进制源码包(了解)
      • 下载后还需要自己再构建rpm(mysql-community-5.7.25-1.el7.src.rpm),构建命令rpm,rpmbuild
  • 常见的二进制软件包

    • RedHat,Centos,Fedora,SUSE常见的安装包文件后缀*.rpm,使用命令rpm,rpbulid,yum
    • Ubuntu,Debian,常见后缀格式*.deb相关管理命令dpkg,apt 在线安装

例如:下载nginx软件包,会有如下格式

  • nginx-1.10.rpm #编译好的rpm包
  • nginx-2.3.3.tar.gz #nginx源代码包
  • nginx-2.3.3-x86-64.tar.gz #解压即用的nginx二进制包,提示可以在64位机器上直接运行的nginx命令
  • nginx-el7-src.rpm #rpm二进制包,还需要再次构建

rpm包安装管理命令

  • 创建
http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm

在线下载

有很多软件的官网,以及第三方软件仓库,会提供rpm包的下载功能
http://rpm.pbone.net/
www.rpmfind.net

官网下载(推荐)
http://nginx.org/packages/
根据你的机器cpu架构,以及系统版本,找到如下连接(如centos7,x86_64b)

本地光盘镜像rpm包

centos7.iso镜像文件,内置了绝大多数软件的rpm包
1、光盘,插入服务器光驱(查看虚拟机右下角小光盘图标)
2、在系统中找到光盘信息
lsblk   #查看系统中磁盘挂载项

3、挂载操作,读取光盘的内容
mount   /dev/sr0   /mnt    #挂载sr0光盘到mnt目录
mount: /dev/sr0 is write-protected, mounting read-only
#/mntmount: /dev/sr0 写保护,将以只读方式挂载

4、查看光盘中的rpm包列表,拷贝到相应目录
ls   /mnt/Packages/    #这个目录下,能找到需要的软件包的名字,即可去安装它

cp /mnt/Packages/vim-enhanced-7.4.160-4.el7.x86_64.rpm /opt/ #将vim工具拷贝到opt目录下

rpm  -ivh   vim-enhanced-7.4.160-4.el7.x86_64.rpm  #安装

5、取消挂载
umount     /dev/sr0

6、rpm包安装需要手动解决依赖关系

7、发现本地光盘是没有nginx的,只能用其他形式装nginx

  • 安装rpm包

    1、下载  wget
    wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm
    
    2、安装  rpm  -ivh
     rpm -ivh nginx-1.10.0-1.el7.ngx.x86_64.rpm 
    
  • 查询

    rpm   -qa   软件名
    参数:
    -q  查询
    -a  全部
    -i  显示详细信息
    
    例如:
    rpm   -qa  nginx     #可用于查询系统是否安装
    nginx-1.10.0-1.el7.ngx.x86_64
    rpm -qi nginx
    
  • 升级

    rpm -Uvh  升级软件
    -U升级
    
    
  • 删除

     rpm -e  需要卸载的软件,需要正确的名字
     nginx
    
  • 总结

rpm -qf  文件名   #根据文件名查询属于哪个软件包
rpm -ql 软件包名   #列出该软件包都生成了什么文件
rpm -ivh 软件包    #安装
rpm -e 软件包名字  #卸载
rpm -Uvh 软件包   #升级

rpm安装软件,需要解决他们之间的依赖关系
有些工具比光盘的版本要新,所以要卸载干净
rpm的依赖冲突,一定要是,一层一层去解决,不能跳级

源码包的安装管理命令

  • 创建

    案例:安装淘宝nginx工具
    1、源代码安装nginx工具,编译安装淘宝nginx
    wget  https://tengine.taobao.org
    
    准备linux编译环境
    yum install -y gcc make gcc-c++ ncurses-devel  #用于编译安装c语言代码
    yum install golang -y   #用于编译golang代码的环境
    
    
    2、解压缩,进行编译安装
    tar -zxvf tengine-2.3.3.tar.gz 
    cd tengine-2.3.3/    #进入目录
    
    yum -y install openssl openssl-devel pcre pcre-devel zlib zlib-devel    #ux系统支持https的模块,就是安装openssl模块
    
    ./configure  --perfix=/opt/tngx230   #--with-http_ssl_module   #执行编译参数,让nginx的安装,可以扩展其他功能
    
    make && make install    #开始编译安装
    
    cd /opt/tngx230      #进入目录查看是否生成
    
    vim /etc/profile    #添加到环境变量PATH
    PATH=/opt/tengx230/sbin/:$PATH
    
    curl   -I     #验证nginx的信息
    
    
  • 查询

    ls  /lpt/tngx230/    #查看目录的信息
    
  • 升级

    rm命令删除旧版本整个目录,重新安装新版本
    
  • 删除

rm  -rf  /opt/tngx230     #直接删除即可

解压即用软件包实践

下面以安装java为例
找到官网地址https://www.oracle.com/java/technologies/downloads/

复制链接https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz.sha256

解压缩
tar   -zxvf jdk-18_linux-x64_bin.tar.gz  

由于java比较特殊,必须配置linux的环境变量,才可使用

yum自动化软件管理命令

yum源官网,到镜像站,crntos和epel
https://developer.aliyun.com/

配置2个源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

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

备份默认的yum仓库配置文件
cd   /etc/yum.repos.d    #进入yum源默认的配置文件目录,备份所有的*.repo文件即可

mkdir  bak_repo
mv   *.repo    ./bak_repo

下载新的yum仓库文件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

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

常见用法
yum  clean   all    #清除缓存
yum  makecache     #更新缓存
yum   install   xxx    -y    #自动安装
yum   remove    xxx    -y    #删除

总结

安装方式有三种:

rpm手动安装:可以使用光驱安装或者网上安装,需要手动解决依赖关系,可以使用rpm -ql 查询,rpm -e 删除,日志及配置文件需要手动rm删除

yum自动安装:yum自动解决依赖关系,可以使用systemctl命令管理rpm包

编译安装:软件装到一个目录下,管理目录即可,无法使用yum命令管理
posted on 2022-03-27 20:23  Cloud~Commander  阅读(62)  评论(0编辑  收藏  举报