Linux基础之软件包实战
创始人
2025-06-01 15:57:08
0

Linux基础之软件包实战

RPM软件包讲解

软件包分类:

  • 二进制包:无需编译、可以直接安装使用
    • ,以.rpm结尾的软件包称之为二进制包
    • 代码代码里面存在bin目可以执行文件,称之为二进制包。
  • 源码包:需要经过gcc c++编译器进行编译
    • .tar.gz、.zip、.rar结尾的包通常称之为源码包
    • .h、.c、.cpp、.cc等结尾的源码文件,称之为源码包

RPM工具

作用:对软件包实现快速安装、管理及维护

  • 是红帽包管理工具
  • rpm包的命令格式:zziplib-0.13.62-9.el7.x86_64.rpm
    • zziplib:软件包名
    • 0.13.62:版本号:主版本.次版本.修正好
    • 9:版本修改的次数
    • el7.x86_64:支持的平台
    • rpm:表示二进制的rpm包
    • devel:表示开发包;
    • noarch:支持任何平台上安装

语法:rpm + 选项+ 包名

选项:

  • -a:查看已安装的软件包
  • -q:列出信息
  • -l:列出软件李彪
  • -f:查询文件名
  • -i:软件的信息
  • -v:列出详细信息
  • -U:升级软件包
  • -e:卸载rpm软件包
  • -R:查询依赖包

常见用法:

#首先安装一个httpd服务,用于测试rpm命令
[root@Test0 ~]# mount /dev/cdrom /mnt/cdrom/#查询已安装的包
[root@Test0 ~]# rpm -qa | grep  httpd
httpd-tools-2.4.6-98.el7.centos.6.x86_64
httpd-2.4.6-98.el7.centos.6.x86_64#查询httpd安装的路径
[root@Test0 ~]# rpm -ql httpd
..........
/var/www/cgi-bin
/var/www/html#查询httpd的信息版本
[root@Test0 ~]# rpm -qi httpd
Name        : httpd
Version     : 2.4.6
Release     : 98.el7.centos.
................#安装软件包-->注意这个命令是要准备这个vsftd的软件包的
[root@Test0 ~]# rpm -ivh vsftpd#升级软件包
[root@Test0 ~]# rpm -Uvh httpd#卸载软件包
[root@Test0 ~]# rpm -e httpd

tar软件包管理

作用:解压、打包、软件包

语法:tar + 选项 + tar包名 +源文件

选项:

  • -A:合并已经存在的包
  • -c:创建打包
  • -d:对比当前不同的软件包
  • -r:追加打包到结尾
  • -t:列出打包的内容
  • -u:仅仅把最新的文件追缴到包中
  • -x:解压包
  • -j:指定bz2后缀的包
  • -z:指定gz后缀的包
  • -C:指定新包的路径
  • -f:指定文件名

常见用法:

#准备一个nginx.tar.gz的包
[root@Test0 ~]# ll nginx-1.16.1.tar.gz 
-rw-r--r-- 1 root root 1032630 4月  17 2020 nginx-1.16.1.tar.gz#查看软件包的内容
[root@Test0 ~]# tar -tf nginx-1.16.1.tar.gz 
..............
nginx-1.16.1/auto/cc/owc
nginx-1.16.1/auto/cc/sunc#创建打包-->并且指定路径
[root@Test0 ~]# tar -czvf /usr/local/src/init.tar.gz /tmp/*#查看是否成功
[root@Test0 ~]# ls /usr/local/src/
init.tar.gz#把文件追加到init.tar.gz
[root@Test0 ~]# tar -rvf init.tar.gz  anaconda-ks.cfg #解压包
[root@Test0 ~]# tar -xvf init.tar.gz #解压包并且指定路径
[root@Test0 ~]# tar -xvf nginx-1.16.1.tar.gz  -C /usr/local/

zip软件包管理

主流的压缩格式包括tar、rar、zip、war、gzip、bz2、iso

与tar相比:zip的压缩效率很高

作用:压缩和解压缩

语法:zip+选项+压缩文件名+源文件

选项:

  • -f:更改文件
  • -u:更新文件
  • -d:删除文件
  • -r:递归目录

示例演示:

#zip压缩所有内容-->这个压缩是保留源文件的
[root@Test0 ~]# zip -rv shuzi.zip 1.txt 2.txt 3.txt adding: 1.txt	(in=0) (out=0) (stored 0%)adding: 2.txt	(in=0) (out=0) (stored 0%)adding: 3.txt	(in=0) (out=0) (stored 0%)
total bytes=0, compressed=0 -> 0% savings#压缩所有
[root@Test0 ~]# zip -rv lala.zip * -x 1.txt adding: 2.txt	(in=0) (out=0) (stored 0%)adding: 3.txt	(in=0) (out=0) (stored 0%)adding: 4.txt	(in=0) (out=0) (stored 0%)adding: 5.txt	(in=0) (out=0) (stored 0%)adding: anaconda-ks.cfg	(in=11457) (out=717) (deflated 94%)adding: shuzi.zip 	(in=436) (out=436) (stored 0%)adding: sysconfigure.sh	(in=1960) (out=1108) (deflated 43%)
total bytes=13853, compressed=2261 -> 84% savings#解压文件-->指定压缩后的目录
[root@Test0 ~]# unzip lala.zip  -d /usr/local/src/
Archive:  lala.zipextracting: /usr/local/src/2.txt    extracting: /usr/local/src/3.txt    extracting: /usr/local/src/4.txt    extracting: /usr/local/src/5.txt    inflating: /usr/local/src/anaconda-ks.cfg  extracting: /usr/local/src/shuzi.zip  inflating: /usr/local/src/sysconfigure.sh  

源码包安装讲解

源码安装三部曲:

使用make编译时,Linux操作系统必须有GCC编译器,用于编译源码。

  • /configure–>预编译,主要用于检测系统基准环境库是否满足,生成MakeFile文件;
  • make–>编译,基于第一步生成的makefile文件,进行源代码的编译;
  • make install–>安装,编译完毕之后,将相关的可运行文件安装至系统中;

源码安装nginx web服务讲解

  • 任何的源码安装都是需要gcc编译器的;
  • 准备好nginx的源码包
#安装必要的依赖-->依赖是要看不同的服务器是需要不同的依赖的#安装nginx需要的依赖如下-->gcc、gcc-c++:用于源码编译环境-->zlib、zlib-devel-->必要依赖-->pcre、pcre-devel-->必要依赖-->openssl、openssl-devel-->加密作用
[root@Test0 ~]# yum -y install gcc gcc-c++ zlib zlib-devel pcre pcre-devel openssl openssl-devel#准备好nginx的源码包
[root@Test0 ~]# ls nginx-1.16.1.tar.gz 
nginx-1.16.1.tar.gz#nginx的软件包是tar.gz包-->直接使用tar命令进行解压
[root@Test0 ~]# tar -xf nginx-1.16.1.tar.gz  -C /usr/local/src/#第一步->去到源码包的解压目录-->注意这个一定要操作,不然没法预编译
[root@Test0 ~]# cd /usr/local/src/nginx-1.16.1/
[root@Test0 nginx-1.16.1]# #预编译-->检查依赖环境以及生成Makefile文件
[root@Test0 nginx-1.16.1]# ./configure --prefix=/usr/local/nginx#如果预编译出错了,需要删除makefile文件重新预编译#检查是否有错误可以直接使用echo $?-->输出结果为非0就是出错了
[root@Test0 nginx-1.16.1]# echo $?
0#着了可以查看一下Makefile文件的内容#这里看到很多表示-->以下是解释
[root@Test0 nginx-1.16.1]# cat Makefile 
default:	build				#如果啥都不选就是默认make ibill
clean:							#make clean-->删除原来的编译环境-->可以用于排错rm -rf Makefile objs
build:							#make build-->就是执行编译安装$(MAKE) -f objs/Makefile
install:$(MAKE) -f objs/Makefile install #编译安装
modules:$(MAKE) -f objs/Makefile modules	#指定外家的模块#下面的是升级教程
upgrade:/usr/local/nginx/sbin/nginx -t			#先检测配置文件kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`	#然后关闭pidsleep 1test -f /usr/local/nginx/logs/nginx.pid.oldbin  #测试一下kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin` #退出原来的进程#第二步:make 编译
[root@Test0 nginx-1.16.1]# make #第三步就是编译安装
[root@Test0 nginx-1.16.1]# make install #最后启动查看-->到这里安装完成
[root@Test0 nginx-1.16.1]# /usr/local/nginx/sbin/nginx  -t

yum软件安装讲解

yum工作原理

  • yum能够正常运行需要依赖两个部分
    • yum源端:
      • YUM客户端安装的所有RPM包都是来自YUM服务端,YUM源端通过HTTP或者FTP服务器发布。
      • YUM源端生成了RPM包的基准信息,
        • 包括RPM包版本号、配置文件、二进制信息、依赖关系等
    • yum客户端–>也就是用户使用端
      • YUM客户端需要安装软件或者搜索软件,会查找/etc/yum.repos.d下以.repo结尾文件;
      • 客户端能够连接外网–>这个是基准
      • YUM客户端安装软件,默认会把YUM源地址、Header信息、软件包、数据库信息、缓存文件存储在/var/cache/yum中
      • 每次使用YUM工具,YUM优先通过Cache查找相关软件包,Cache中不存在,然后在访问外网YUM源

yum命令讲解

  • 作用:安装软件包使用到的命令
  • 语法:yum+选项+软件包名
  • 选项:
    • install:安装
    • search:搜索软件包
    • list:列出软件包
    • remove:卸载软件包
    • update:更新
    • info:查看软件包的信息
    • provides:查询软件包的文件
    • grouplist:查看组包
    • clean:清楚缓存
#直接安装vsftpd
[root@Test0 ~]# yum -y install vs ftpd#查询组包
[root@Test0 ~]# yum grouplist  | more#直接安装图形界面-->这里使用中文安装不成功
[root@Test0 ~]# yum -y install "GNOME 桌面"#卸载操作
[root@Test0 ~]# yum remove vsftpd#查询命令由哪个软件包组成
[root@Test0 ~]# yum provides rz

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...