Linux自娱—13.软件包管理
包的分类
- 1.源码包(二次开发后 叫脚本安装包)
| 开源 如有能力可以修改源码包
| 可以自由选择所需功能
| 软件是编译安装 更适合自己 更稳定 更高效
| 卸载方便
| 安装步骤多
| 编译过程长
| 安装过程一旦报错很难解决
- 2.二进制包(系统默认包)
| 又称为rpm(Red Hat Package Manager)包
| 简单 只需要几个命令
| 安装速度比源码包安装的快
| 不能看到源代码
| 功能选择不如源码包灵活
| 依赖性高
二进制包管理
1、二进制包命名规则
- httpd-2.2.15-15.el6.centos.1.i686.rpm
| httpd 软件包名
| 2.2.15 软件版本
| 15 发布次数
| el6.centos 适合的平台 el6 enterprise linux6
| i686 适合的硬件平台
| rpm 包的扩展名
- 包全名与包名
| 操作的包是没有安装的软件包时,使用包全名,而且要注意路径;安装和升级的时候是全名
| 操作已安装的包时,使用包名(搜索/var/lib/rpm/中的数据库);查询卸载的时候写包名
2、二进制包管理工具
- 二进制包,也就是rpm包管理工具有两个:RPM和YUM
3、RPM工具
- 进入挂载目录的packages,查看包是否存在,存在就执行安装
- rpm -ivh wget-*
- rpm -evh wget-* 卸载
- rpm -q wget-* 查是否安装
- rpm 无法处理依赖关系 需要查依赖包 手工一个个安装
- 1.安装
| rpm -ivh 包全名
| -i(install) 安装
| -v(verbose) 显示详细信息
| -h(hash) 显示进度
| --nodeps 不检测依懒性
- 2.rpm包升级
| rpm -Uvh 包全名
| 选项-U(upgrade) 升级的意思
- 3.rpm包卸载
| rpm -e 包名
| -e(erase) 卸载
| --nodeps 不检查依赖性
- 4.查询
| rpm -q 包名
| -q(query) 查询
| -qa 查询所有安装包
| -p 查询未安装包信息(package)
| -l 列表(list)查询安装位置
| -qf 系统文件名 查询系统文件属于那个包
| -R 查询软件包的依赖性(requires)
RPM升级笔记
4、YUM工具
- 两大特点
| 1.自动下载。
| 2.自动处理依赖关系
4.1.制作本地yum源
- 1.让网络yum源失效
| 所有源文件位置 /etc/yum.repos.d/ ,备份或改名让yum源失效
| centos6需要操作的是base debuginfo vault三个源文件
| centos8里没有vault源文件
| 执行mv /etc/yum.repos.d/*.repo 新路径文件夹
- 2.编写本地yum库配置文件
| [dvd]意思是名字
| name是库的描述
| baseurl是下载地址 baseurl=file:///mnt/cdrom 真实绝对路径
| 其他两个链接如果要注释掉的话,需要遵循严格的格式 在行首注释
| gpgcheck包组校验关闭
| 把enabled改成1
- 3.挂载安装光盘
| mkdir /mnt/cdrom
| vim /root/.bashrc // 把挂载加到自启动中;最好写入/etc/fstab
| mount /dev/cdrom /mnt/cdrom
- 4.安装rpm包
| yum -y install httpd vsftpd 一次安装多个软件
| yum -y reinstall httpd 重新安装
| yum -y update httpd 升级安装
| yum -y update 升级系统
| yum list 列出目录
| yum -y remove httpd
4.2、yum在线管理
- vi /etc/yum.repos.d/CentOS-Base.repo 默认yum源文件
| [base] 容器名称,一定要放在[]中
| name 容器说明 可以自己随便写
| mirrorlist 镜像站点 这个可以注释掉
| baseurl yum源服务器的地址 默认是centos官方的yum源服务器 是可以使用的 如果你觉得慢可以改成你喜欢的yum源地址
| enabled 此容器是否生效 如果不写或写成enable=1都生效,写成enable=0就是不生效
| gpgcheck 如果是1是指rpm的数字证书生效 如果是0则不生效
| gpgkey 数字证书的公钥文件保存位置 不用修改
- yum基础命令
| yum list 查询所有可用软件包列表
| yum search 关键字 搜索服务器上所有和关键字相关的包
| yum -y install 包名
| yum -y update 包名
| yum -y remove 包名
源码包管理
1、安装位置
- rpm包安装位置(默认)
| /etc/ 配置文件安装目录
| /usr/bin/ 可执行的命令安装目录
| /url/lib/ 程序所使用的函数库保存位置
| /usr/share/doc/ 基本的软件使用手册保存位置
| /usr/share/man/ 帮助文件保存位置
- 源码包一般是手工指定的 /usr/local/软件名/
2、安装位置不同带来的影响
- rpm包安装的服务可用系统服务管理命令(service)来管理
| 例如rpm包安装的apache的启动方法是:
| /etc/rc.d/init.d/httpd start
| service httpd start (这个是简化命令,常规用这个命令)
- 源码包安装的服务不能被服务管理命令管理
| 原因是没安装到默认路径,只能用绝对路径管理
| /use/local/apache2/bin/apachectl start
3、源码包的安装过程
- 1.安装准备 下载C语言编辑器 gcc
- 2.安装准备 下载源码包 http://httpd.apache.org/download.cgi#apache24
- 3.上传源码+注意事项
| 源代码保存位置 /usr/local/src/
| 软件安装位置 /usr/local/
| 安装过程如果停止或者出现error warning no 等提示 安装出错
| 用winscp上传到指定位置
| tar -zxvf xxxx.gz 解压
| du -sh 查看文件大小
| 进入解压缩文件的文件夹
| 文件夹里有两个大写文件INSTALL和README 所有源码包都有这两个文件 一个是安装说明一个是使用说明
| 查看安装说明 里边有步骤 可以复制出来
- 4.执行安装操作
| ./configure --prefix=/usr/local/apac2
| make 编译过程
| - make clean 清空 // 安装过程异常,再次执行安装前可执行此命令
| make install 安装
| /usr/local/apache2/bin/apachectl start
| service httpd stop # rpm包的关闭 因为占用了80端口
| /usr/local/apache2/bin/apachectl start
- 5.源码包卸载很容易 没有卸载功能 直接删除
| rm -rf /usr/local/apache2/
简单示例
./configure --prefix=PREFIX
- ./configure 软件配置与检查
- 定义需要的功能选项(可以用./configure --help查看都能定制的选项)
- ./configure --prefix=/usr/local/apache2 其他都可以不定义 但是一定要定义安装路径
- 检测系统环境是否符合安装要求 比如是否安装了gcc
- 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑
make
make install
PREFIX/bin/apachectl start
脚本安装包
- 解包安装包并不是独立的软件包类型 常见的安装的是源码包
- 是认为把安装工过程协程了自动安装的脚本,只要执行脚本,定义简单参数,就可以完成安装
- 类似于windows下软件的安装方式
- webmin是一个基于web的linux系统管理界面。可以通过图形化的方式设置用户账号,apache,nds,文件共享等服务
- 安装步骤
| 下载https://sourceforge.net/projects/webadmin/files/webmin/
| 解压 tar -zxvf webmin-1.979.tar.gz
| 执行 ./setup.sh
| 浏览器登陆ip地址+10000端口
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律