Linux下软件安装
一:YUM
1、什么是YUM
在CentOS系统中,软件管理方式通常有三种方式:rpm安装、yum安装以及编译安装。
编译安装,从过程上来讲比较麻烦,包需要用户自行下载,下载的是源码包,需要进行编译操作,编译好了才能进行安装,这个过程对于刚接触Linux的人来说比较麻烦,而且还容易出错。
好处在于是源码包,对于有需要自定义模块的用户来说非常方便。
==难度:编译安装>rpm安装>yum安装(有网络+yum源支持)。==
Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
基于rpm包管理,能够从指定的服务器(yum源)自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
==应用商店== ==谷歌商店:默认的==
案例:想象一下,你在超市购物,YUM就像是一个购物助手,它会帮你找到所有需要的商品(软件包),并且确保你买到的商品是可以一起使用的(解决依赖关系)。
2、YUM的基本用法
(1)搜索软件包
使用 yum search
命令可以搜索软件包。
yum search 软件名称的关键词
案例:搜索阿里云仓库中的vim软件。
yum search vim
(2)为什么需要换源?
在使用YUM时,默认的YUM源可能会因为网络问题、速度慢或不稳定而导致安装和更新软件包的过程变得缓慢。换源就是将默认的YUM源替换为更快、更稳定的源。
形象解释:想象一下,你在一个城市的超市购物,超市的货物供应不稳定,常常缺货,导致你无法顺利购买到所需的商品。换源就像是你换到了一个更大的超市,这个超市的货物供应充足,价格合理,购物体验更好。
在中国,阿里云的YUM源通常比默认源更快,因此很多用户会选择将YUM源换成阿里云的镜像源。
(3)YUM源配置
YUM源配置文件所在路径 => /etc/yum.repos.d 文件夹。这个文件夹中包含了系统中所有的YUM源配置文件,每个文件都定义了一个或多个软件包源。
以下是一些常见的YUM源配置文件及其说明:
-
CentOS-Base.repo:这是默认的YUM源配置文件,包含了CentOS的主要软件包源。它提供了大多数用户所需的基本软件包。
-rw-r--r--. 1 root root 1664 11月 23 2020 CentOS-Base.repo
-
CentOS-CR.repo:这个文件包含了CentOS的持续更新(CR,Continuous Release)源。它提供了最新的更新和修复,适合希望获得最新软件包的用户。
-rw-r--r--. 1 root root 1309 11月 23 2020 CentOS-CR.repo
-
CentOS-Debuginfo.repo:这个文件包含了调试信息的源,主要用于开发和调试目的。它提供了软件包的调试信息,帮助开发者在调试时使用。
-rw-r--r--. 1 root root 649 11月 23 2020 CentOS-Debuginfo.repo
-
CentOS-fasttrack.repo:这个文件包含了快速通道的源,提供了一些快速更新的软件包,适合需要快速获取更新的用户。
-rw-r--r--. 1 root root 314 11月 23 2020 CentOS-fasttrack.repo
-
CentOS-Media.repo:这个文件用于配置本地媒体源,通常用于从光盘或USB驱动器安装软件包。
-rw-r--r--. 1 root root 630 11月 23 2020 CentOS-Media.repo
-
CentOS-Sources.repo:这个文件包含了源代码的YUM源,适合需要编译软件包的用户。
-rw-r--r--. 1 root root 1331 11月 23 2020 CentOS-Sources.repo
-
CentOS-Vault.repo:这个文件包含了旧版本的YUM源,适合需要访问旧版本软件包的用户。
-rw-r--r--. 1 root root 8515 11月 23 2020 CentOS-Vault.repo
-
CentOS-x86_64-kernel.repo:这个文件包含了针对x86_64架构的内核源,适合需要特定内核版本的用户。
-rw-r--r--. 1 root root 616 11月 23 2020 CentOS-x86_64-kernel.repo
通过这些配置文件,YUM能够从不同的源获取软件包,用户可以根据需要选择合适的源进行安装和更新。
==在YUM镜像源中添加阿里云镜像源。==
在更换YUM源之前,你需要了解两个常用的命令行工具:curl
和 wget
。
-
curl:
curl
是一个用于在命令行中与服务器进行数据传输的工具。它支持多种协议,包括HTTP、HTTPS、FTP等。使用curl
可以方便地下载文件或与API进行交互。 -
wget:
wget
是一个用于从网络上下载文件的命令行工具。它支持HTTP、HTTPS和FTP协议,能够在下载过程中自动处理重定向和断点续传。
接下来,你可以使用以下步骤将YUM源更换为阿里云的镜像源:
第一步:备份Centos-Base.repo这个源(更改后缀名.repo=>.repo.bak)
mv CentOS-Base.repo CentOS-Base.repo.bak
第二步:使用wget命令下载阿里云的镜像文件
wget -O /etc/yum.repos.d/Centos-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
选项说明:
-O:指定文件下载的位置以及名称
第三步:清理YUM缓存
yum clean all
第四步:重新建立缓存(让新YUM源生效)
yum makecache
(4)安装软件包
使用 yum install
命令可以安装软件包。
基本语法:
yum install 软件名称[选项]
选项:
-y:yes缩写,确认安装,不提示。
案例:使用yum命令安装vim编辑器。yum install vim -y
(5)卸载软件包
使用 yum remove
命令可以卸载软件包。
yum remove 软件名称[选项]
选项:
-y :yes缩写,确认卸载,不提示。
案例:把firefox火狐浏览器进行卸载操作。
yum remove firefox -y
(6)更新软件包
使用 yum update
命令可以更新软件包。
基本语法:
yum update 软件名称[选项]
选项:
-y :yes缩写,确认更新,不提示。
案例:把vim编辑器进行更新操作。
yum update vim -y
(7)查看已安装软件包
使用 yum list installed
命令可以查看已安装的软件包。
yum list installed
(8)清理缓存
使用 yum clean
命令可以清理缓存,释放空间。
yum clean all
二:源码安装的配置过程
http://jaist.dl.sourceforge.net/project/cmatrix/cmatrix/1.2a/cmatrix-1.2a.tar.gz
在Linux系统中,源码安装一共分为三步
第一步:配置过程(配置软件的安装路径)
第二步:编译过程(把软件由源代码编译成可以安装的程序)
第三步:安装过程(把编译后的程序进行安装)
./configure && make && make install
yum install gcc
yum install openssl-devel
(1)、配置过程(定制)
# cd 软件源码包
# ./configure [选项]
# ./configure --help
--prefix=... Directories to put files in [/usr/local] 软件家目录
--bindir=... $prefix/bin 命令的目录
--etcdir=... $prefix/etc 配置文件的目录 也可能安装到系统/etc目录下 (httpd => /etc/httpd/httpd.conf)
--mandir=... $prefix/share/man man 文档路径
--locale=... $prefix/share/locale 语言编码
----------
./configure --prefix=/opt/cmatrix
(2)、编译过程
make
目录中可以看到很多 .c .h 结尾的文件,这个意味着这些文件底层是基于c/c++语言开发,这些源代码编译就需要gcc。
在Linux操作系统中,make主要功能就是将其他语言的源代码打包成Linux可以识别安装的程序。
编译过程需要一个gcc软件(开发工具)的支持!
(3)、安装过程
make install
将axel软件安装到/opt/axel目录下(下载软件,类似wget命令)
类似于windows中的迅雷等等软件,支持多线程下载
三:axel源码安装
第一步:获取axel多线程下载软件
第二步:上传axel软件包到Linux系统中
第三步:安装axel软件(源码安装三步走 --> 配置+编译+安装)
(1)、对软件进行解压缩操作
#tar -zxf axel-2.4.tar.gz
或
#tar -xf axel-2.4.tar.gz
tar -jxvf xx.tar.bz2
(2)、使用cd命令切换到axel目录中
# cd axe1-2.4
(3)、对axel软件进行配置
./configure --help
设置axel软件的安装路径为/opt/axel./configure --prefix=/opt/axel
(4)、对axel软件进行编译与安装
make
make install
或
make && make install
&&:逻辑与,如果make编译成功会立即执行右边的makeinstall安装程序,如果make编译失败,则以上程序会停止执行,然后抛出错误。
(5)、测试与使用
axel xx
bash: axel: 未找到命令...
出现以上问题的主要原因在于:我们没有采用默认的安装方式,所以导致当我们执行axel命令时,其找不到对应的软件。
which axel /usr/bin/which: no axel in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
四:解决命令无法访问问题
第一种方式:采用软链接形式(类似windows中的快捷方式) 第二种方式:使用环境变量(重要,Linux中的环境变量)
(1)、使用软链接解决
cd /opt/axel/bin
解决方案:给/opt/axel/bin/axel创建一个快捷方式到/usr/local/bin
基本语法:
ln -s 源文件路径 软链接路径
ln -s /opt/axel/bin/axel /usr/local/bin/axel
axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-Cent0S-7
(2)使用环境变量解决
终端 => 命令 => 系统的环境变量(PATH=>/etc/profile)=> 一些命令的存放路径
axel多线程下载软件,通过源码的方式安装成功后,由于没有使用默认的安装路径,导致axel这个命令没有出现在系统的环境变量中,所以其会出现command not found。
查询当前系统的环境变量
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/rbot/bin
把axel所在目录添加到环境变量
使用vim编辑/etc/profile文件,追加到最后一行
vim /etc/profile
export PATH=$PATH:/opt/axel/bin
source /etc/profile => 代表让以上配置立即生效
使用echo命令向/etc/profile文件中追加一行
echo 'export PATH=$PATH:/opt/axel/bin' >> /etc/profile
source /etc/profile
测试axel命令是否可以使用
axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-Cent0S-7
(3)、卸载源码安装的软件
第一步:进入到源码的安装包中
cd axel-2.4
make uninstall => 安装软件的安装包等程序
make distclean => 卸载编译与配置过程
第二步:删除软件的目录
rm -rf /opt/axel
五:本地YUM配置
使用光盘镜像作为YUM源仓库
下载很多软件,使用软件包作为YUM源仓库
使用光盘镜像作为YUM源仓库
第一步:在VMware系统中装在CentOS7.6系统的光盘镜像
第二步:把光盘挂载到某个目录下
cd ~
rm -rf /mnt/*
mount -o ro /dev/sr0 /mnt
选项说明:
-o:挂载方式ro代表以readonly=>只读的方式进行挂载rw代表以read/write=>读写的方式进行挂载#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part├─centos-root 253:0 0 17G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 9.6G 0 rom /mnt
卸载或解挂可以使用umount /mnt
第三步:把光盘挂载添加到开机启动文件中
chmod +x /etc/rc.localecho 'mount -o ro /dev/sr0 /mnt' >> /etc/rc.local
/etc/rc.local,属于系统的开机启动文件。系统启动后,会自动加载并执行这个文件
第四步:编写本地YUM仓库文件
cd /etc/yum.repos.d/
创建一个以*.repo结尾的文件,名称任意vim local.repo[local]
name=local yum
baseurl=file:///mnt
gpgcheck=0
enabled=1注:file://本地协议路径,后面跟仓库的具体路径yum clean allyum makecacheyum repolist all
yum仓库的标准格式
[仓库标识名称],名称任意,在一个文件中可以拥有多个标识
name=仓库名称
baseurl=仓库的路径,支持多种格式,file://本地路径,ftp://,http:// 或https://
gpgcheck=gpg密钥,值可以是0(代表不检测),1(代表检测,如果是1,下方还要定义一个gpgkey=密钥链接)
enabled=是否启动当前仓库,值可以0,也可以是1,默认为1,代表启动仓库
第五步:测试本地YUM仓库是否可用
yum install httpd -y
六:网络YUM源配置
1、网络YUM源的分类
使用比较知名平台的YUM源(阿里云、腾讯、清华)
有些特定软件(如Nginx、MySQL、Zabbix等等)需要根据官网文档自定义网络YUM源
2、使用知名平台的YUM源
阿里源:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
网易源:欢迎访问网易开源镜像站
搜狐源:Index of /
清华源:清华大学开源软件镜像站 | Tsinghua Open Source Mirror
腾讯源、华为源..
百度搜索 => 华为mirror镜像源
案例:配置阿里云的yum源
第一步:百度,搜索你想要的YUM源,进入官网,找到CentOS
阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
第二步:根据官网提示,配置阿里云的YUM源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
3、扩展:EPEL源配置
什么是EPEL源?
答:EPEL是对官网源的一个扩展。
CentOS-Base.repo文件 => 基础源(官方在带的YUM源)
epel.repo文件 => 扩展源,是对官方YUM源的一个补充
yum install epel-release -y
比如:会跑的小火车就是在epel源中
yum install sl -y
sl
4、特定软件的YUM源配置
比如特殊的几个软件,如Nginx、MySQL、Zabbix
Nginx: nginx nginx:Linux 软件包
MySQL: https://www.mysql.com/
Zabbix: Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution
找到官方文档,把YUM源配置,写入到一下文件中(repo文件)
#cd /etc/yum.repos.d
#vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/Sreleasever/Sbasearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
清理缓存:
yum clean all
yum makecache
安装Nginx:
yum install nginx -y