零基础学习Linux系统的软件管理

零基础学习Linux系统的软件管理记录

软件类型

源码包
源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。没有经过编译
源码包的优点是:
	•开源,如果有足够的能力,可以修改源代码
	•可以自由选择所需的功能
	•软件是编译安装,所以更加适合自己的系统
	•更加稳定也效率更高
	•卸载方便

源码包的缺点:
	•安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
	•编译过程时间较长,安装比二进制安装时间长
	•因为是编译安装,安装过程中一旦报错新手很难解决

源码包示例:nginx-1.8.1.tar.gz
	nginx:包名
	1.8.1:版本号
	tar.gz:打包压缩格式
二进制包
二进制包,也就是源码包经过成功编译之后产生的包。

二进制包是 Linux 下默认的软件安装包,因此二进制包又被称为默认安装软件包。目前主要有以下 2 大主流的二进制包管理系统:
	RPM 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,因此很多 Linux 发行版都默认使用此机制作为软件安装的管理方式,
	例如 Fedora、CentOS、SuSE 等。
	DPKG 包管理系统:由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理,
	主要应用在 Debian 和 Ubuntu 中。

RPM二进制包的优点:
	•包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
	•安装速度比源码包安装快的多

二进制包缺点:
	•经过编译,不再可以看到源代码
	•功能选择不如源码包灵活
	•依赖性

rpm包示例:zip-3.0.11.el7.x86_64.rpm
	zip:包名
	3.0.11:版本号
	el7:发行版本
	x86_64:系统平台
	rpm:文件后缀

RPM包管理

yum工具(推荐)
简介:
	1.是一个Fedor和RedHat以及CentOS中的shell前端软件包管理器
	2.基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装
	3.可以自动处理依赖关系,并且一次安装所有的依赖的软件包,无须繁琐地一次次下载、安装

语法格式:yum [参数] 软件包
参数:
	-h	显示帮助信息
	-y	对所有的提问都回答“yes”
	-c	指定配置文件
	-q	安静模式
	-v	详细模式
	-t	检查外部错误
	-d	设置调试等级(0-10)
	-e	设置错误等级(0-10)
	-R	设置yum处理一个命令的最大等待时间
	-C	完全从缓存中运行,而不去下载或者更新任何头文件
	install	安装rpm软件包
	update	更新rpm软件包
	check-update	检查是否有可用的更新rpm软件包
	remove	删除指定的rpm软件包
	list	显示软件包的信息
	search	检查软件包的信息
	info	显示指定的rpm软件包的描述信息和概要信息
	clean	清理yum过期的缓存
	shell	进入yum的shell提示符
	resolvedep	显示rpm软件包的依赖关系
	localinstall	安装本地的rpm软件包
	localupdate	显示本地rpm软件包进行更新
	deplist	显示rpm软件包的所有依赖关系

清理原有的软件仓库信息缓存

[root@study ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: base epel extras updates
Cleaning up list of fastest mirrors

建立最新的软件仓库信息缓存

[root@study ~]# yum makecache
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
epel/x86_64/metalink                                                                   | 6.9 kB  00:00:00     
 * base: mirrors.ustc.edu.cn
 * epel: mirrors.bfsu.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
base                                                                                   | 3.6 kB  00:00:00     
epel                                                                                   | 4.7 kB  00:00:00     
extras                                                                                 | 2.9 kB  00:00:00     
updates                                                                                | 2.9 kB  00:00:00     
(1/16): base/7/x86_64/group_gz                                                         | 153 kB  00:00:00     
(2/16): base/7/x86_64/filelists_db                                                     | 7.2 MB  00:00:00     
(3/16): base/7/x86_64/other_db                                                         | 2.6 MB  00:00:00     
(4/16): base/7/x86_64/primary_db                                                       | 6.1 MB  00:00:00     
(5/16): epel/x86_64/group_gz                                                           |  98 kB  00:00:00     
(6/16): epel/x86_64/filelists_db                                                       |  12 MB  00:00:00     
(7/16): epel/x86_64/updateinfo                                                         | 1.0 MB  00:00:00     
(8/16): epel/x86_64/prestodelta                                                        |  339 B  00:00:00     
(9/16): epel/x86_64/primary_db                                                         | 7.0 MB  00:00:00     
(10/16): epel/x86_64/other_db                                                          | 3.4 MB  00:00:00     
(11/16): extras/7/x86_64/primary_db                                                    | 249 kB  00:00:00     
(12/16): extras/7/x86_64/filelists_db                                                  | 276 kB  00:00:00     
(13/16): extras/7/x86_64/other_db                                                      | 149 kB  00:00:00     
(14/16): updates/7/x86_64/primary_db                                                   |  18 MB  00:00:00     
(15/16): updates/7/x86_64/other_db                                                     | 1.2 MB  00:00:00     
(16/16): updates/7/x86_64/filelists_db                                                 |  10 MB  00:00:00     
元数据缓存已建立

安装指定的服务及相关软件包

[root@study ~]# yum -y install httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * epel: mirrors.bfsu.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-97.el7.centos.5 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-97.el7.centos.5,它被软件包 httpd-2.4.6-97.el7.centos.5.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-97.el7.centos.5.x86_64 需要
--> 正在检查事务
---> 软件包 httpd-tools.x86_64.0.2.4.6-97.el7.centos.5 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

==============================================================================================================
 Package                  架构                版本                                 源                    大小
==============================================================================================================
正在安装:
 httpd                    x86_64              2.4.6-97.el7.centos.5                updates              2.7 M
为依赖而安装:
 httpd-tools              x86_64              2.4.6-97.el7.centos.5                updates               94 k
 mailcap                  noarch              2.1.41-2.el7                         base                  31 k
………………省略部分输出信息………………

更新指定的服务及相关软件包

[root@study ~]# yum -y update httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * epel: mirrors.bfsu.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
No packages marked for update

显示指定服务的软件信息

[root@study ~]# yum info httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * epel: mirrors.bfsu.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
已安装的软件包
名称    :httpd
架构    :x86_64
版本    :2.4.6
发布    :97.el7.centos.5
大小    :9.4 M
源    :installed
来自源:updates
简介    : Apache HTTP Server
网址    :http://httpd.apache.org/
协议    : ASL 2.0
描述    : The Apache HTTP Server is a powerful, efficient, and extensible
         : web server.

卸载指定的服务及相关软件包

[root@study ~]# yum -y remove httpd
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-97.el7.centos.5 将被 删除
--> 解决依赖关系完成

依赖关系解决

==============================================================================================================
 Package             架构                 版本                                   源                      大小
==============================================================================================================
正在删除:
 httpd               x86_64               2.4.6-97.el7.centos.5                  @updates               9.4 M

事务概要
==============================================================================================================
移除  1 软件包
………………省略部分输出信息………………

显示可安装的软件包组列表

[root@study ~]# yum grouplist
已加载插件:fastestmirror, langpacks
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * epel: mirrors.bfsu.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
………………省略部分输出信息………………
RPM工具
rpm命令来自于英文词组”RedHat Package Manager“的缩写,中文译为红帽软件包管理器,
其功能是用于在Linux系统下对软件包进行安装、卸载、查询、验证、升级等工作。

语法格式:rpm [参数] 软件包
参数:
	-a	查询所有的软件包
	-b或-t	设置包装套件的完成阶段,并指定套件档的文件名称;
	-c	只列出组态配置文件,本参数需配合”-l”参数使用
	-d	只列出文本文件,本参数需配合”-l”参数使用
	-e	卸载软件包
	-f	查询文件或命令属于哪个软件包
	-h	安装软件包时列出标记
	-i	安装软件包
	-l	显示软件包的文件列表
	-p	查询指定的rpm软件包
	-q	查询软件包
	-R	显示软件包的依赖关系
	-s	显示文件状态,本参数需配合”-l”参数使用
	-U	升级软件包
	-v	显示命令执行过程
	-vv	详细显示指令执行过程

正常安装软件包

[root@study ~]# rpm -ivh wget-1.14-18.el7.x86_64.rpm
准备中...                          ################################# [100%]
        软件包 wget-1.14-18.el7.x86_64 已经安装

查询某个软件的安装路径

[root@study ~]# rpm -ql wget
/etc/wgetrc
/usr/bin/wget
………………省略部分输出信息………………

卸载某个通过RPM软件包安装的服务

[root@study ~]# rpm -evh wget
准备中...                          ################################# [100%]
正在清理/删除...
   1:wget-1.14-18.el7                 ################################# [100%]
源码包管理
获取源码包:在各源码官网进行获取,例如:
	Apache:www.apache.org
	Nginx:www.nginx.org
	Tengine:tengine.taobao.org

实例:
安装Tengine
准备编译环境

[root@study ~]# yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                                                               | 6.1 kB  00:00:00     
 * base: mirrors.ustc.edu.cn
 * epel: mirror.nju.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
base   
………………省略部分输出信息………………                                     

创建一个用户

[root@study software]# useradd www

解压压缩包

[root@study software]# tar xvf tengine-2.3.2.tar.gz 
tengine-2.3.2/
tengine-2.3.2/.github/
tengine-2.3.2/.github/ISSUE_TEMPLATE/
tengine-2.3.2/.github/ISSUE_TEMPLATE/bug_report.md
tengine-2.3.2/.github/ISSUE_TEMPLATE/feature_request.md
tengine-2.3.2/.github/ISSUE_TEMPLATE/question-about-tengine.md
tengine-2.3.2/.gitignore
tengine-2.3.2/.travis.yml
………………省略部分输出信息………………           

进行相关的配置

[root@study tengine-2.3.2]# ./configure --user=www --group=www --prefix=/usr/local/tengine
checking for OS
 + Linux 3.10.0-957.el7.x86_64 x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
checking for gcc -pipe switch ... found
………………省略部分输出信息………………           

编译

[root@study tengine-2.3.2]# make
make -f objs/Makefile
make[1]: 进入目录“/opt/tengine/software/tengine-2.3.2”
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I src/proc -I objs \
        -o objs/src/core/nginx.o \
        src/core/nginx.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I src/proc -I objs \
        -o objs/src/core/ngx_log.o \
        src/core/ngx_log.c
………………省略部分输出信息………………     

安装程序

[root@study tengine-2.3.2]# make install
make -f objs/Makefile install
make[1]: 进入目录“/opt/tengine/software/tengine-2.3.2”
test -d '/usr/local/tengine' || mkdir -p '/usr/local/tengine'
test -d '/usr/local/tengine/sbin' \
        || mkdir -p '/usr/local/tengine/sbin'
test ! -f '/usr/local/tengine/sbin/nginx' \
        || mv '/usr/local/tengine/sbin/nginx' \
                '/usr/local/tengine/sbin/nginx.old'
cp objs/nginx '/usr/local/tengine/sbin/nginx'
test -d '/usr/local/tengine/conf' \
        || mkdir -p '/usr/local/tengine/conf'
cp conf/koi-win '/usr/local/tengine/conf'

启动服务

[root@study ~]# /usr/local/tengine/sbin/nginx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值