持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情
Hi~,我是一碗周,如果写的文章有幸可以得到你的青睐,万分有幸~
🍇 写在前面
先来介绍一下新开的这个专栏:《前端&运维那点事儿》将会从前端的角度,依次学习Linux→Nginx→Docker→持续集成→k8s,从而打造一个属于站在前端角度的运维专栏。
在这篇文章中我们继续学习Linux,这篇文章我们来介绍Linux中的软件安装,这里我以CentOS为例来介绍Linux中的软件安装的几种方式:
-
rpm
命令安装软件 -
yum
命令(apt-get
、apt
)安装软件 -
源代码安装
-
发布包安装
-
脚本安装
这里仅仅介绍5种常见的安装方式。
🍈 前置内容
在开始之前我们先来了解一下Linux有关软件的相关内容。
🥝 软件包的分类
在Linux中软件安装包无非就分为两种:
-
源码包:源码包实际上就是源代码,我们都知道操作系统是无法直接运行源代码的,所以安装源码包中间存在一个编译的过程,这个过程比较复杂且问题较多,一旦报错难以排查;不过使用源码包安装的优点是开源免费、灵活度高、卸载方便等等。
-
二进制包:这里的二进制包是个泛指,它包括真正的二进制文件、PRM包、DEB包以及系统默认的安装包;使用这种方式的优点是安装软件和卸载软件比较简单,安装速度快,缺点是无法看到源代码、不灵活、处理依赖比较麻烦。
值得一提的是PRM包和DEB包的区别:
-
前者是RedHat系列,代表操作系统是CentOs,安装命令
rpm
,包管理工具yum
; -
后者是Debian系列,代表系统Ubuntu ,安装工具
dpkg
,包管理工具apt-get
;
这里以PRM包作为示例。
🍓 查询当前系统的相关信息
可以使用uname
命令查看当前系统的相关信息,示例如下:
uname -a # 查看操作系统的全部信息
只有知道自己操作系统的信息才能找到对应的软件版本;
🍐 rpm命令安装
这里仅仅介绍一下rpm
命令,因为rpm
命令安装软件过于麻烦,需要解决RPM包的依赖问题,这里就简单一过。
首先一个RPM包的名称格式如下:
httpd-2.2.15-15.el6.centos.1.i686.rpm
-
httpd
软件包名 -
2.2.15
软件版本 -
15
软件发布的次数 -
el6.centos
适合的Linux系统 -
i686
适合的硬件平台 -
rpm
rpm包的扩展名
rpm
安装的命令如下:
rpm -ivh httpd-2.2.15-15.el6.centos.1.i686.rpm
# i 表示 install 安装
# v 表示 verbose 显示详细安装过程
# h 表示进度
rpm
更新的命令如下:
rpm -Uvh 包全名
rpm卸载命令如下:
rpm -e 包名
rpm命令还执行查询,具体如下表所示:
命令 | 参数 | 含义 |
---|---|---|
rpm -q 包名 | -q(query) 查询 | 查询包是否安装 |
rpm -qa 包名 | -a(all) 查询 | 查询所有已经安装的RPM包 |
rpm -qi 包名 | -i(information) | 查询软件信息 |
rpm -qip 包名 | -p(package) | 查询未安装包的信息 |
rpm -ql 包名 | -l(list) -p(package) | 查询安装包都安装了哪些文件 |
rpm -qf 文件名 | -f(file) | 查询某个文件属于哪个包 |
rpm -qR 包名 | -R(requires) -p(package) | 查询软件名的依赖性 |
🍒 yum命令安装软件
yum
命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更新与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum
提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
语法结构如下所示:
yum(选项)(参数)
yum
的命令常用选项如下:
-h:显示帮助信息;
-y:对所有的提问都回答“yes”;
-c:指定配置文件;
-q:安静模式;
-v:详细模式;
-d:设置调试等级(0-10);
-e:设置错误等级(0-10);
-R:设置yum处理一个命令的最大等待时间;
-C:完全从缓存中运行,而不去下载或者更新任何头文件。
yum
的命令常用如下:
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软件包的所有依赖关系。
部分常用的命令包括:
-
自动搜索最快镜像插件:
yum install yum-fastestmirror
-
安装yum图形窗口插件:
yum install yumex
-
查看可能批量安装的列表:
yum grouplist
安装软件
yum install #全部安装
yum install package1 #安装指定的安装包package1
yum groupinsall group1 #安装程序组group1
更新和升级
yum update #全部更新
yum update package1 #更新指定程序包package1
yum check-update #检查可更新的程序
yum upgrade package1 #升级指定程序包package1
yum groupupdate group1 #升级程序组group1
查找和显示
# 检查 MySQL 是否已安装
yum list installed | grep mysql
yum list installed mysql*
yum info package1 #显示安装包信息package1
yum list #显示所有已经安装和可以安装的程序包
yum list package1 #显示指定程序包安装情况package1
yum groupinfo group1 #显示程序组group1信息yum search string 根据关键字string查找安装包
删除程序
yum remove | erase package1 #删除程序包package1
yum groupremove group1 #删除程序组group1
yum deplist package1 #查看程序package1依赖情况
清除缓存
yum clean packages #清除缓存目录下的软件包
yum clean headers #清除缓存目录下的 headers
yum clean oldheaders #清除缓存目录下旧的 headers
🍏 通过源代码安装软件
-
确定源代码编译环境,需要
gcc
和make
rpm -qa gcc rpm -qa make
如果没有查找到上述两个软件需要先进行安装
-
下载软件包,可以通过wget命令。
-
使用tar命令进行解压
-
运行解压路径下的./configure脚本,用来设置安装目录、安装模块等选项
./configure --prefix=/usr/local/src # 设置软件安装目录
-
运行
make
命令进行编译,生产可执行二进制文件 -
运行
make install
命令进行安装,复制二进制文件到系统,配置应用环境 -
测试及应用、维护软件
🍎 发布包安装
这里我们来安装一下通过官方发布的安装包来安装一下软件,这里以Node为例;
-
进入官网,找到合适的版本,复制下载链接
-
通过
wget
命令下载安装包:cd /usr/local/src # 切换到想要安装的目录 wget https://nodejs.org/dist/v16.18.0/node-v16.18.0-linux-x64.tar.xz # 下载
-
解压缩
tar -xvJf node-v16.18.0-linux-x64.tar.xz
-
切换到指定目录,查看安装成果
cd node-v16.18.0-linux-x64/bin/ ./node --version
-
创建软连接,保证可以在全局使用命令
ln -s /usr/local/src/node-v16.18.0-linux-x64/bin/node /usr/local/bin/node ln -s /usr/local/src/node-v16.18.0-linux-x64/bin/npm /usr/local/bin/npm ln -s /usr/local/src/node-v16.18.0-linux-x64/bin/npx /usr/local/bin/npx
-
随便一个目录查看是否链接成果
node -v
🥭 脚本安装
脚本安装实际上就是将某个软件的安装编写成了Shell脚本,使得我们下载脚本后运行脚本就可以直接安装,省去了复杂的步骤。
例如下面这个命令就是安装n
这个node版本管理软件:
curl -L https://bit.ly/n-install | bash
🍍 写在最后
这篇文章文章介绍了Linux中软件安装的5种方式。
如果对本篇文章对你有所帮助,可以点赞收藏评论支持一下我;如果有所疑问,欢迎私信~
如果对这个专栏感兴趣可以点一个关注呦~