Linux基础之软件包实战

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 417 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.zip
 extracting: /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`	#然后关闭pid
	sleep 1
	test -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

你可能感兴趣的:(Linux-随笔,linux,服务器,centos)