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
- 下载后还需要自己再构建rpm(mysql-community-5.7.25-1.el7.src.rpm),构建命令
- 已经完成编译的软件包
-
常见的二进制软件包
- RedHat,Centos,Fedora,SUSE常见的安装包文件后缀
*.rpm
,使用命令rpm,rpbulid,yum
- Ubuntu,Debian,常见后缀格式
*.deb
相关管理命令dpkg
,apt 在线安装
- RedHat,Centos,Fedora,SUSE常见的安装包文件后缀
例如:下载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命令管理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?