自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(内置)
一、自有服务概述
服务是一些特定的进程,自有服务就是系统开机后就自动运行的一些进程,一旦客户发出请求,这些进程就自动为他们提供服务,windows系统中,把这些自动运行的进程,称为"服务"
举例:当我们使用SSH客户端软件连接linux的时候,我们的服务器为什么会对连接做出响应?是因为SSH服务开机就自动运行了。
所谓自有服务,简单来说,可以理解为Linux系统开机自动运行的服务(程序)。
我们如何管理这些自有服务呢?
二、systemctl管理服务命令
在Centos7之前,通过service 和 chkconfig两个命令来管理服务
- service: 负责启动,停止服务,显示服务状态
- chkconfig: 指定服务是否开机启动
从Centos7开始,统一使用systemctl来管理服务, systemctl同时具有service和chkconfig命令的功能。
1、显示服务
命令:systemctl
作用:管理服务
语法:#systemctl [选项]
选项:list-units --type service --all:列出所有服务(包含启动的和没启动的)
list-units --type service:列出所有启动的服务
用法一:systemctl list-units --type service --all 不加具体服务名
示例代码:
#systemctl list-units --type service --all
含义:列出所有服务,包括已运行的和没有运行的
空格可以翻页,q退出
用法二:systemctl list-units --type service 不加具体服务名
示例代码:
#systemctl list-units --type service
含义:列出已运行的服务
空格可以翻页,q退出
2、查看启动和停止服务
命令:systemctl
作用:管理服务
语法:#systemctl [选项] 服务名
选项: status:检查指定服务的运行状况
start:启动指定服务
stop:停止指定服务
restart:重启指定服务
reload:重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart)
用法三:systemctl 选项 服务名
示例代码:
#systemctl status crond
含义:查看crond服务的状态
Active:active(running) 表示当前crond服务是运行状态。
用法四:systemctl 选项 服务名
示例代码:
#systemctl stop crond
含义:停止crond服务
Inactive,表示crond服务当前是停止状态
用法五:systemctl 选项 服务名
示例代码:
#systemctl start crond
含义:启动crond服务
用法六:systemctl 选项 服务名
示例代码:
#systemctl restart crond
含义:重启crond服务
#systemctl reload crond
含义:重新加载crond服务配置文件
3、服务持久化
所谓服务持久化,就是服务在开机的时候,是否自动启动。
命令:systemctl
作用:管理服务
语法:#systemctl [选项] 服务名
选项: enable:指定服务开机自动启动
disable:取消服务开机自动启动
用法七:systemctl 选项 服务名
示例代码:
#systemctl disable crond
含义:取消crond服务开机启动
用法八:systemctl 选项 服务名
示例代码:
#systemctl disable crond
含义:指定crond服务开机启动
systemctl参数总结
参数 | 含义 |
---|---|
list-units --type service --all | 列出所有服务 |
list-units --type service | 列出所有启动的服务 |
start | 启动指定服务 |
stop | 停止指定服务 |
status | 检查指定服务的运行状况 |
restart | 重启指定服务 |
reload | 重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart) |
enable | 指定服务开机自动启动 |
disable | 取消服务开机自动启动 |
三、常用自有服务(ntp,firewalld,crond)
服务名 | 含义 |
---|---|
ntpd | 用于同步计算机的系统时间的服务 |
firewalld | 防火墙服务 |
crond | 计划任务服务 |
1、ntp时间同步服务
NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。
工作场景:
公司开发了一个电商网站,由于访问量很大,网站后端由100台服务器组成集群。50台负责接收订单,50台负责安排发货,接收订单的服务器需要记录用户下订单的具体时间,把数据传给负责发货的服务器,由于100台服务器时间各不相同,记录的时间经常不一致,甚至会出现下单时间是明天,发货时间是昨天的情况。
1)NTP同步服务器原理
标准时间是哪里来的?
现在的标准时间是由原子钟报时的国际标准时间UTC(Universal Time Coordinated,世界协调时),所以NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。
在NTP中,定义了时间按照服务器的等级传播,**Stratum层的总数限制在15以内**
工作中,通常我们会直接使用各个组织提供的,现成的NTP服务器
2)到哪里去找NTP服务器
NTP授时网站:
3)时间同步操作
同步服务器时间方式有2 个:一次性同步手动同步、通过服务自动同步。
手动同步
用法一:ntpdate 时间服务器IP
示例代码:
#ntpdate 120.25.108.11
含义:从服务器120.25.108.11同步标准网络时间到服务器(120.25.108.11服务器由阿里云提供,可以从http://www.ntp.org.cn/pool.php网站获取)
注意:从网络同步时间,要确保自己的服务器可以访问互联网
错误信息:no servers can be used
含义:服务器不可用,这里的服务器是指网络上的时间服务器,不可用,不代表是对方服务器有问题,也有可能是你自己的服务器网络不通,无法连接到网络上的时间服务器。
自动同步
用法二:启动ntpd服务,并配置为开机启动
示例代码:
#systemctl start ntpd
#systemctl enable ntpd
含义:启动ntpd服务,并配置为开机启动,服务启动后,系统会自动同步网络时间
注意:从网络同步时间,要确保自己的服务器可以访问互联网
问题1:启动ntpd服务后,是不是时间就自动同步了?
启动后就自动同步了
问题2:需不需要让ntpd服务,开机自动运行?
需要
ntpd服务配置文件位置 /etc/ntp.conf
2、firewalld防火墙
1)什么是防火墙
防火墙:防范一些网络攻击。有软件防火墙、硬件防火墙之分。
防火墙选择让正常请求通过,从而保证网络安全性。
Windows防火墙:
2)传统Linux防火墙
3、firewalld防火墙的概念
1)区域
CentOS6x中防火墙叫做iptables
CentOS7.x 中默认使用的防火墙是firewalld
firewalld增加了区域的概念,所谓区域是指,firewalld**预先准备了几套防火墙策略的集合**,类似于**策略的模板**,用户可以根据需求选择区域。
常见区域及相应策略规则
区域 | 默认策略 |
---|---|
trusted | 允许所有数据包 |
home | 拒绝流入的流量,除非与流出的流量相关,允许ssh,mdns,ippclient,amba-client,dhcpv6-client服务通过 |
internal | 等同于home |
work | 拒绝流入的流量,除非与流出的流量相关,允许ssh,ipp-client,dhcpv6-client服务通过 |
public | 拒绝流入的流量,除非与流出的流量相关,允许ssh,dhcpv6-client服务通过 |
external | 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过 |
dmz | 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过 |
block | 拒绝流入的流量,除非与流出的流量相关,非法流量采取拒绝操作 |
drop | 拒绝流入的流量,除非与流出的流量相关,非法流量采取丢弃操作 |
2)运行模式和永久模式
运行模式:此模式下,配置的防火墙策略立即生效,但是不写入配置文件
永久模式:此模式下,配置的防火墙策略写入配置文件,但是需要reload重新加载才能生效。
firewall默认采用运行模式
4、firewalld防火墙的配置
1)查看,开启和停止firewalld服务
命令:systemctl
作用:管理服务
语法:#systemctl [选项] firewalld
选项: status:检查指定服务的运行状况
start:启动指定服务
stop:停止指定服
restart:重启指定服务
reload:重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart)
**使用systemctl来管理firewalld的服务,具体命令前面已经讲过,只是服务名换成了firewalld,这里不再赘述**
2) 管理firewall配置
命令:firewall-cmd
作用:管理firewall具体配置
语法:#firewall-cmd [参数选项1] ....[参数选项n]
常用选项:
①查看默认使用的区域
用法一:firewall-cmd 选项
示例代码:
#firewall-cmd --get-default-zone
含义:查看默认使用区域,当前默认使用区域为public
②查看所有可用区域
用法二:firewall-cmd 选项
示例代码:
#firewall-cmd --get-zones
含义:查看所有可用区域
③列出当前使用区域配置
用法三:firewall-cmd 选项
示例代码:
#firewall-cmd --list-all
含义:查看所有可用区域
④列出所有区域的配置
用法四:firewall-cmd 选项
示例代码:
#firewall-cmd --list-all-zones
含义:查看所有可用区域
⑤添加允许通过的服务或端口
用法五:firewall-cmd 选项
示例代码:
#firewall-cmd --zone=public --add-port=1024/tcp
含义:在public区域,添加允许tcp协议的1024端口通过的规则
#firewall-cmd --zone=public --add-service=ftp
含义:在public区域,添加允许ftp服务通过的规则
⑥去掉允许通过的服务或端口
用法五:firewall-cmd 选项
示例代码:
#firewall-cmd --zone=public --remove-port=1024/tcp
含义:在public区域,去掉允许tcp协议的1024端口通过的规则
#firewall-cmd --zone=public --remove-service=ftp
含义:在public区域,去掉允许ftp服务通过的规则
⑦永久模式参数permaent
用法七:firewall-cmd 选项
示例代码:
#firewall-cmd --permanent --zone=public --add-port=1024/tcp
含义:在public区域,使用permanent参数,永久添加允许1024端口通过的规则
⑧重新加载配置reloa
用法七:firewall-cmd 选项
示例代码:
#firewall-cmd --reload
含义:重新加载配置
5、计划任务crontab
1)计划任务的作用
作用:操作系统不可能24 小时都有人在操作,有些时候想在指定的时间点去执行任务(例如:每天凌晨 2 点去重新启动Apache),此时不可能真有人每天夜里 2 点去执行命令,这就可以交给计划任务程序去执行操作了。
2)查看计划任务
语法:# crontab 选项
常用选项:
-l:list,列出指定用户的计划任务列表
-e:edit,编辑指定用户的计划任务列表,简单来说,计划任务就是一个文件
-u:user,指定的用户名,如果不指定,则表示当前用户
-r:remove,删除指定用户的计划任务列表
3)编辑计划任务(重点)
进入计划任务编辑文件
打开计划任务编辑文件后,可以在此文件中编写我们自定义的计划任务:
计划任务的规则语法格式,以行为单位,一行则为一个计划:
分 时 日 月 周 需要执行的命令
例如:0 0 * reboot,代表每天0时0分执行reboot指令。
取值范围(常识):
分:0~59
时:0~23
日:1~31
月:1~12
周:0~7,0 和 7 表示星期天
四个符号:
*:表示取值范围中的每一个数字
-:做连续区间表达式的,要想表示1~7,则可以写成:1-7
/:表示每多少个,例如:想每 10 分钟一次,则可以在分的位置写:*/10
,:表示多个取值,比如想在 1 点,2 点 6 点执行,则可以在时的位置写:1,2,6
特别补充:在Linux系统中,有些命令不能直接在计划任务中使用,使用后,其也不会生效。如useradd命令。如果想让其生效必须使用完整路径。
问题:如何查询一个命令的真实路径在哪个位置?
答:使用whereis 命令名称
4)几个小案例
问题1:每月1、10、22 日的4:45 重启network 服务
问题2:每周六、周日的1:10 重启network 服务
问题3:每天18:00 至23:00 之间每隔30 分钟重启network 服务
问题4:每隔两天的上午8 点到11 点的第3 和第15 分钟执行一次重启
分时日月周 命令或服务
问题1:45 4 1,10,22 service network restart
问题2:10 1 6,7 service network restart
问题3: /30 18-23 service network restart
问题4:3,15 8-11 /2 * reboot
案例:每1 分钟往 root 家目录中的 readme.txt 中输一个1,为了看到效果使用追加输出【输出使用echo 命令,语法:# echo 输出的内容】
在末行模式下输入:wq
保存并退出,使用tail -f查看readme.txt动态变化
注意:在计划任务中,默认最小单位就是分,不能再小了。如果需要做到秒级别则需要配合研发相关代码。
5)扩展
① crontab 权限问题
crontab是任何用户都可以创建的计划任务,但是超级管理员可以通过配置来设置某些用户不允许设置计划任务 。
黑名单配置文件位于:/etc/cron.deny
里面写用户名,一行只能写一个
保存退出,切换到cndws普通用户,执行crontab命令,如下图所示:
白名单还有一个配置文件
/etc/cron.allow (本身不存在,自己创建)
注意:白名单优先级高于黑名单,如果一个用户同时存在两个名单文件中,则会被默认允许创建计划任务。
② 查看计划任务文件保存路径
问题:计划任务文件具体保存在哪里呢?
答:/var/spool/cron/用户名文件中
,如果使用root用户编辑计划任务,则用户文件名为root
③ 查看计划任务日志信息
问题:在实际应用中,我们如何查看定时任务运行情况?
答:通过计划任务日志,日志文件位于/var/log/cron
四、Linux软件包
1、软件包概述
Linux下也有很多可以安装的软件,而这些软件的安装包可细分为两种,分别是**源码包**和**二进制包**。
1)源码包
源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。计算机只能识别机器语言,也就是二进制语言,所以源码包安装之前需要编译。
编译过程耗时较长
大多数用户不懂开发,编译过程中可能会有各种错误,用户无力解决。
为了解决使用源码包安装的问题,Linux 软件包的安装出现了使用二进制包的安装方式。
2)二进制包
二进制包,也就是源码包经过成功编译之后产生的包。
二进制包是 Linux 下默认的软件安装包,目前主要有以下 2 大主流的二进制包管理系统:
-
RPM 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,因此很多 Linux 发行版都默认使用此机制作为软件安装的管理方式,例如 Fedora、CentOS、SuSE 等。
-
DPKG 包管理系统:由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理,主要应用在 Debian 和 Ubuntu 中。
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写
作用:rpm 的作用类似于豌豆荚,华为应用市场,App Store,主要作用是对linux 服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装/更新。
2、如何获取rpm包
要想装软件,和windows 下一样,先得找到安装包:xxx.rpm
软件包的获得方式:
a. 去官网去下载(rpm.pbone.net);
b. 不介意老版本的话,可以从光盘(或者镜像文件)中读取;
3、从光盘获取
3.1 虚拟机中加载光盘
3.2 使用 # lsblk(list block devices)或者df -T 查看块状设备的信息
Name:名称
Size:设备大小
Type:类型
MountPoint:挂载点
此界面类似于Windows 下的磁盘管理界面:
3.3 进入/run/media/root/CentOS 7 x86_64/Packages目录
#/run/media/root/CentOS 7 x86_64/Packages
#ls
4、查询某个软件安装情况
语法:# rpm -qa | grep 软件名称
选项:
-q:查询,query
-a:全部,all
示例代码:查询firefox浏览器的安装情况,已安装
#rpm -qa |grep firefox
示例代码:查询qq软件的安装情况,未安装
#rpm -qa |grep qq
5、卸载某个软件
卸载某个软件
语法:# rpm -e 软件的名称(建议写完整的名称,通过-qa 查询)
案例:卸载火狐浏览器
#rpm -qa |grep firefox 首先查询firefox软件的完整名称 firefox-45.7.0-2.el6.centos.x86_64
#rpm -e firefox-45.7.0-2.el6.centos.x86_64
6、安装某个软件
命令:rpm
作用:管理rpm软件包
语法:# rpm -ivh 软件包完整路径名称
选项:
-i:install,安装
-v:显示进度条
-h:表示以"#"形式显示进度条
示例代码:将刚刚卸载的firefox火狐浏览器重新安装(在DVD光盘1中)
用法:rpm -ivh 软件包名称
示例代码:
#cd /run/media/root/CentOS 7 x86_64/Packages/
进入光盘Packages目录,里面存放了很多rpm的安装包
#ll |grep firefox
查看Packages目录下,包含firefox的安装包
#rpm -ivh firefox-60.2.2-1.el7.centos.x86_64.rpm
使用rpm命令,安装firefox软件包
#rpm -qa |grep firefox
查询是否安装完成
7、更新某个软件
语法:# rpm -Uvh 完整的安装包路径
选项:
-U:upgrade,升级
-v:表示显示进度条
-h:表示以#形式显示进度条
这里我会提供给大家firefox的高版本的安装包
firefox-60.8.0-1.el7.centos.x86_64.rpm 这个包是用来升级的
firefox-68.4.1-1.el7.centos.x86_64.rpm
用法:rpm -Uvh 软件包名称
示例代码:
#rpm -qa |grep firefox
查询当前firefox的版本
#ll
查看root目录下,我们刚刚拷到虚机上的RPM安装包的名称
#rpm -Uvh firefox-60.8.0-1.el7.centos.x86_64.rpm
使用rpm命令,安装60.8.0版本的软件包
#rpm -qa |grep firefox
查询升级后的firefox版本
8、rpm扩展
8.1依赖关系
一个软件必须先有其他软件才能运行,例如之前xmind启动过程中提示的缺少DLL,称之为依赖
WAMP(Windows + Apache + MySQL + PHP)安装前必须先安装VC++ 2014 x86_64,这种情况就称之为有依赖关系。
60.8.0的firefox可以更新成功
下面我们尝试更新到68.4.1的版本
用法:rpm -Uvh 软件包名称
#rpm -Uvh firefox-68.4.1-1.el7.centos.x86_64.rpm
使用rpm命令,安装68.4.1版本的软件包
错误提示:
error:Failed dependencies:
提示安装68版本的firefox需要依赖nspr4.21的版本,nss的3.44的版本,这就是我们说的依赖关系。
为了解决依赖关系的问题,有另外一个管理工具叫做yum,后面我们会讲到
8.2 查看文件所属的包名(实用)
语法:# rpm -qf 需要查询的文件路径
选项:
-f:查询文件所属包
示例代码:查询/etc/ntp.conf 属于哪个软件包?
8.3查询软件安装完成后,生成了哪些文件
语法:# rpm -ql 需要查询的软件包名称
#rpm -ql firefox
#rpm -ql openssh
特别说明:软件安装完成后,一共生成了以下几类文件
配置文件类:/etc目录
程序文件本身,二进制文件命令:/usr/sbin目录
文档手册:/usr/share/doc或man目录
9、扩展:光盘的挂载和解挂
① 解挂操作
命令:umount
语法:# umount 当前设备的挂载点(路径)
例如:
#umount /run/media/root/CentOS 7 x86_64/
② 挂载光盘
首先新建一个挂载点,然后使用mount命令进行挂在,挂载点可以理解为就是一个空目录
命令:mount
语法:# mount 设备文件原始地址(/dev目录) 要挂载的位置路径(盘符)
设备原始地址:地址统一都在/dev 下,然后根据大小确定具体name 值,拼凑在一起组成原
始地址,例如当前:"/dev/sr0"
用法:mount 设备 挂载点
示例代码:
#mkdir /mnt/dvd
新建一个目录作为挂载点
#mount /dev/sr0 /mnt/dvd
将光驱设备/dev/sr0 挂载到 /mnt/dvd这个挂载点
#df -T
可以看到已经成功挂载
一、Linux下软件包管理
㈠ 软件包类型
1 、 二进制包
什么是二进制包?有什么特点?
xlockmore-5.31-2.el6.x86_64.rpm
2、源码包
- 什么是源码包?有什么特点?
-
-
软件包名.tar.gz
软件包名.tar.bz2
软件包名.tar.xz
软件包名.zip
-
3、 二进制源码包(了解)
- 什么是二进制源码包?有什么特点?
rpmbuild
工具重建成真正的rpm
包或者重建成源码包才可安装使用-
-
- mysql-community-5.7.25-1.el6.==src.==rpm
- mysql-community-5.7.25-1.el7.src.rpm
-
㈡ 常见的二进制包
系统平台 | 包类型 | 工具 | 在线安装 |
---|---|---|---|
RedHat/Centos/Fedora/SUSE | rpm | rpm,rpmbuild | yum |
Ubuntu/Debian | deb | dpkg | apt |
㈢ 总结二进制包和源码包区别
软件包类型 | 是否编译 | 安装难易程度 | 可定制性 |
---|---|---|---|
二进制包 | 否 | 易(直接安装) | 差 |
源码包 | 是 | 难(配置—>编译—>安装) | 好 |
二、Linux系统中软件包安装方式
㈠ 二进制包
1、rpm工具安装
- 首先,需要下载好rpm包到本地
- 然后,直接使用rpm工具安装
2、yum工具安装
- 首先,需要配置软件仓库(里面存放很多软件包,但不一定在本地)
- 然后,使用yum工具安装
㈡ 源码包
1、根据需求配置
功能的定制
2、编译
使用编译器编译成二进制的软件包
3、安装
将软件包安装到指定位置
4、源码包安装优点
三、二进制rpm包如何管理(重点)
㈠ 如何获取rpm包
Linux只是内核,Linux发行版本:GNU/Linux
-
- www.rpmfind.net
- rpm.pbone.net
-
- www.mysql.com
- nginx.org/packages/
㈡ 如何选择合适的rpm包
-
- 找不到适合的,才去尝试别的系统版本号
- el6兼容el5;el5无法安装 el6
-
- x86_64包,只能安装在64位的系统上
- i386,i586,i686的软件包可以安装在32和64位系统上
- noarch表示这个软件包与硬件构架无关,可以通用
- 32位系统不能安装64位包
建议: 建议不要跨大版本号去安装软件包,尽量使用当前系统版本自带软件包安装
㈢ 如何管理rpm包
1、rpm工具管理
① rpm工具安装rpm包
# rpm -ivh 软件包
# rpm -ivh xlockmore-5.31-2.el6.x86_64.rpm
注意:软件包的名字必须写全,xxx.rpm
② rpm工具卸载rpm包
# rpm -e 软件包名字
# rpm -e xlockmore
注意:卸载软件只需要跟软件包名字即可
③ rpm包的升级rpm包
# rpm -Uvh 软件包
或者
# rpm -Fvh 软件包
选项说明:
-v:输出详细信息
-h:打印散列标记,一般和-v一起使用
-U:升级软件包,如果该软件包没安装,会自动帮你安装
-F:升级软件包,如果该软件包没安装,不会自动帮你安装
④ 查看rpm包相关信息
查看已经安装的软件的文件列表
rpm -ql 软件包名
查看未安装的rpm包里的文件列表
rpm -qlp 软件包(xxx.rpm)
查看已经安装的所有rpm包
rpm -qa 软件包名
查看已经安装软件的文档列表
rpm -qd 软件包名
查看已经安装软件的配置文件
rpm -qc 软件包名
查看已经安装软件的详细信息
rpm -qi 软件包名
查看指定文件来自哪个rpm包
rpm -qf 文件名
⑤ rpm工具其他安装选项
--force 表示强制
rpm -ivh 软件包 --force 强制安装软件包
rpm -e 软件包名 --force 强制卸载软件包
--nodeps 忽略依赖关系
rpm -ivh 软件包 --nodeps 忽略依赖关系安装
rpm -e 软件包 --nodeps 忽略依赖关系卸载
其他了解:
rpm --import key_file 导入公钥用于检查rpm文件的签名
rpm --checksig package.rpm 检查rpm包的签名
2、yum工具管理
**核心:**需要有一个软件仓库,软件仓库指的是来存放软件包和软件包之间的依赖关系地方。
① yum工具安装rpm包
# yum -y install 软件包名
# yum -y groupinstall "包组名"
注意:
1.其中,-y选项表示取消交互
2.包组里面包含很多的软件包。
② yum工具卸载rpm包
# yum -y remove 软件包名
# yum -y groupremove "包组名"
③ yum工具升级rpm包
# yum update 软件包名
④ yum工具其他相关选项
# yum list 列出仓库里的软件包
# yum repolist 列出可用仓库
# yum clean all 清空yum缓存
# yum makecache 创建yum缓存
四、源码安装
㈠ 根据需求配置
--prefix=... Directories to put files in /usr/local 软件家目录
--bindir=... $prefix/bin 命令的目录
--etcdir=... $prefix/etc 配置文件的目录
--mandir=... $prefix/share/man man 文档路径
--locale=... $prefix/share/locale 语言编码
...
㈡ 编译
make (使用gcc编译器进行编译)
㈢ 安装
make install 类似 rpm -ivh
㈣ 源码安装示例
1、 安装需求
2、安装步骤
① 下载软件并解压
[root@localhost soft]# tar xf axel-1.0a.tar.gz
[root@localhost soft]# ls
axel-1.0a axel-1.0a.tar.gz
② 进入到解压目录进行安装
[root@localhost soft]# cd axel-1.0a
[root@localhost axel-1.0a]# ls
1)根据需求配置
[root@localhost axel-1.0a]# ./configure --prefix=/opt/axel
2)编译
[root@localhost axel-1.0a]# make
3)安装
[root@localhost axel-1.0a]# make install
确认成功安装:
[root@localhost axel-1.0a]# ls /opt/axel/
bin etc share
[root@localhost axel-1.0a]# ls /opt/axel/bin/
axel
3、测试使用
使用axel下载文件:
[root@localhost axel]# axel http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6
-bash: axel: command not found
- 分析错误产生的可能原因
- 解决问题
查看当前系统默认的环境变量:
[root@localhost axel-1.0a]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
将axel命令临时添加到环境变量中:
[root@localhost axel-1.0a]# export PATH=$PATH:/opt/axel/bin
[root@localhost axel-1.0a]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/opt/axel/bin
永久添加到环境变量:
[root@localhost axel-1.0a]# vi /etc/profile
在文件最后增加如下内容:
export PATH=$PATH:/opt/axel/bin
重新读取配置文件:
[root@localhost axel-1.0a]# source /etc/profile
- 再次测试使用
再次下载——>成功
[root@localhost axel-1.0a]# axel http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6
Initializing download: http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6
File size: 1706 bytes
Opening output file RPM-GPG-KEY-CentOS-6
Starting download
- man手册后续配置(可选)
查看axel更详细的帮助:
[root@localhost axel]# man axel
No manual entry for axel
原因:找不到指定的man文档
解决:
[root@localhost axel]# vim /etc/man.config
...
增加如下内容:
MANPATH /opt/axel/share/man
4、源码卸载软件
进入到解压包目录里:
[root@localhost axel-1.0a]# make uninstall //卸载安装
rm -f /opt/axel/bin/axel
rm -f /opt/axel/etc/axelrc
rm -f /opt/axel/share/man/man1/axel.1
[root@localhost axel-1.0a]# make distclean //卸载编译和配置过程
rm -f *.o axel search core *.mo
rm -f Makefile.settings config.h