linux中软件包相关知识及安装、卸载、查询命令
一、linux包相关知识
1、包的分类
linux包从大的方面可以分为二进制包和源码包
1.1、二进制包
二进制包是编译后的可执行文件,看不到源码,后缀是.rpm。一般由厂商提供,如数据库、QQ等。
1.2、源码包
C语言写的源码,没有编译。需要手动编译后才能安装。
2、包的命名
举例:httpd-2.2.15-15.el6.centos.1.i686.rpm,命名规则说明如下:
【httpd:软件包名】
【2.2.15: 软件版本】
【15:软件发布的次数】
【el6.centos:适合的linux平台】
【i686:适合的硬件平台】
【rpm:rpm包扩展名】
3、包的依赖性
树形依赖:a->b->c a依赖b b依赖c 安装时先安装c再安装b再安装a,卸载时顺序相反
环形依赖:a->b->c->a 这种用一条命令安装abc
模块依赖:依赖的不是一个包,而是库依赖包,必须安装别的包,才能安装所需的库依赖包
网上查询该库依赖包需要安装哪个包 www.rpmfind.net,库依赖包命名如 so.2
二、linux包安装、卸载、查询命令
1、二进制包
二进制包默认的是rpm包(以.rpm作为后缀的二进制文件),rpm包有两种安装方式(yum也是安装的rpm包),如下:
1.1、rpm命令手动安装(升级、卸载、查询)
【安装命令:rpm -ivh 包全名】
【升级命令:rpm -Uvh 包全名】
【卸载命令:rpm -e 包名】
选项说明:
--nodeps:不检测依赖性(安装、卸载时可以加,一般不用)
-i:安装
-v:显示详细信息
-h:显示进入
安装说明:安装、升级时使用包全名,卸载时使用包名
【rpm包查询命令】
rpm -q 包名: 查询某个包
rpm -qa: 查询所有已安装的rpm包
rpm -qa | grep httpd: 查询是否已安装httpd包
rpm -qi mysql-community-server: 查询已安装包的信息(-i)后面跟包名
rpm -qip zip-3.0-1-el6.i686.rpm: 查询未安装的包的信息(-p)后面跟包全名
rpm -ql 包名: 查询包中文件安装位置文件安装位置是固定的(默认的)
rpm -qlp zip-3.0-1-el6.i686.rpm: 查询该包打算安在哪里,未安装的跟包全名
rpm -qf 文件名: 查询文件属于哪个包
rpm -qR 包名: 查询已安装的包的依赖性
rpm -qRp 包全名: 查询未安装的包的依赖性
rpm -V 包名: rpm包校验:
举例:
[root@localhost tmp]# rpm -V mysql-community-server
S.5....T. c /etc/my.cnf
表明/etc/my.cnf这个文件已做了修改,S:文件大小改变, 5:md5改变 ,T:修改时间改变
如果没有信息输出说明没有修改
1.2、yum命令在线安装(升级、卸载、查询)
yum源位置:/etc/yum.repos.d/CentOS-Base.repo
yum list: 查询所有可用软件包列表
yum search 包名: 查询与包名相关的包
yum -y install 包名: 安装
yum -y update 包名: 升级
yum -y update: 假如不加包名,默认所有软件包,包括内核都升级,会出大问题。注意避免
yum -y remove 包名: 卸载
【光盘yum源搭建】
如果该版本是两张光盘,要安装的包不在第一张里就在第二张里,都试一下
设备状态选择已连接
挂载命令:mount /dev/sr0 /mnt/cdrom
linux所有的yum源在以下目录:
/etc/yum.repos.d
CentOS-Base.repo
CentOS-CR.repo
CentOS-Debuginfo.repo
CentOS-fasttrack.repo
CentOS-Media.repo
CentOS-Sources.repo
CentOS-Vault.repo
mysql-community.repo
mysql-community-source.repo
nginx.repo
光盘搭建使用CentOS-Media.repo,其它的改名,改为xxx.repo.bak 使所有的网络yum源失效
修改光盘yum源文件
源文件内容:
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
说明:c7-media:容器名称,叫什么都可以
name:名称,叫什么都可以
baseurl:光盘挂载地址,不用的注释掉,现在应该只有baseurl=file:///mnt/cdrom
enabled=0:改为enabled=1,使该yum源生效
2、源码包
源码包安装:安装指定位置:一般 /usr/local/软件名/
所有rpm包都可以这样执行:/etc/rc.d/init.d/服务 start
所有rpm包的启动文件都放在/etc/rc.d/init.d目录下(绝对路径)
简单启动方式: service 服务名 start
service命令 不能用于源码包安装的
源码包的启动用决定路径启动
例如/usr/local/apache2/bin/apachectl start
安装源码包
1、安装C语言编译器 gcc
2、下载源码包:http://mirror.bit.edu.cn/apache/httpd/
已经安装了rpm包的httpd 还可以安装源码包的 因为安装位置不同
源码包的保存位置 /usr/local/src/
安装软件位置:/usr/local/
确定安装过程报错:安装过程停止并出现error、warning、no的提示
解压:tar -zxvf httpd-2.4.38.tar.gz
查看目录大小:du -sh httpd-2.4.38
进入解压缩目录
linux中任务源码包都有类似文件:
INSTALL:安装说明
README:使用说明
碰到陌生的源码 先查看安装说明,使用说明
./configure 软件配置与检查(编译前准备)
定义需要的功能选项
检测系统环境是否符合安装要求
把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑
定义安装路径 ./configure --prefix=/usr/local/apache2
编译 make
make clear(出错了清除临时文件)
编译安装 make install
完成
怎样启动? 看INSTALL中 start,绝对路径启动
卸载:不会产生任何垃圾文件
rm -rf /usr/local/apache2/
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步