【Linux】技术上,Linux是内核。而术语上,我们通常说的Linux是完整的操作系统,其实称为"Linux发行版",是将Linux内核和应用系统打包,由不同的发行家族发行了不同版本。Linux发行版众多,主要有RedHat系列和Debian系列。
RedHat系列:RHEL,CentOS,Fedora等。
- 软件包扩展名.rpm
- 包管理工具:rpm。yum(解决rpm中依赖包的问题)。
Debian系列:Debian,Ubuntu等。
- 软件包扩展名.deb
- 包管理工具:dpkg,apt 或 apt-get (解决dpkg中依赖包的问题)。
RedHat系列的Linux系统一般有三种安装软件包的方式:rpm安装,yum安装,编译安装。
可以使用man查看某命令的说明文档,例如:man rpm。可使用--help查看某命令有哪些选项,例如:rpm --help。
(一)rpm安装
- rpm命令:Red-Hat Package Manager,RPM软件包管理工具。
- 几乎所有RPM包都可以使用rpm安装、卸载、管理。
- 若使用rpm安装,需手动下载RPM包。
- 存在问题:不能自动处理依赖性关系。需安装相关的依赖包,软件包才能安装成功。
rpm安装软件包:rpm -i 需安装的软件包
rpm安装软件包(显示进度条):rpm -ivh 需安装的软件包
rpm卸载软件包:rpm -e 需卸载的软件包
rpm升级软件包:rpm -U 需升级的软件包
rpm升级软件包(显示进度条):rpm -Uvh 需升级的软件包
rpm查询安装的所有软件包:rpm -qa
举例:rpm安装wget(先下载RPM软件包,再用rpm安装RPM包)
# 从网页下载wget软件包
curl -o wget.rpm http://mirrors.163.com/centos/7/os/x86_64/Packages/wget-1.14-18.el7_6.1.x86_64.rpm
# rpm安装wget
rpm -ivh wget.rpm
# rpm查看是否已安装wget
rpm -qa | grep wget
国内下载RPM包的镜像站(又称yum源,yum仓库):欢迎访问网易开源镜像站 (163.com)
网易163镜像站中centos7可安装的软件包:Index of /centos/7/os/x86_64/Packages/ (163.com)
还有其他比较好的镜像站,比如阿里云,中科大,清华等。
(二)yum安装
- yum命令:Yellow dog Updater, Modified。基于rpm。
- yum安装的都是RPM包,从指定服务器自动下载RPM包并安装。
- yum能够自动处理依赖性关系,一次安装软件包和相关的所有依赖包。
- 目前安装软件包,一般都是使用yum命令安装。
yum安装软件包:yum install 需安装的软件包 -y
yum卸载软件包:yum remove 需卸载的软件包 -y
yum升级软件包:yum update 需升级的软件包
举例:yum安装wget(直接安装)
# yum安装wget
yum install wget -y
# yum查看是否已安装wget
yum list installed | grep wget
yum源的配置文件:
/etc/yum.repos.d目录,存放yum源的配置文件。
这些配置文件的文件名以".repo"结尾,指定从哪个服务器下载以及如何安装和更新。
rpm和yum安装软件包的位置:
rpm安装已手动下载好的RPM包。yum基于rpm,从指定服务器自动下载并安装RPM包。
/etc | 存放软件包的配置文件 |
---|---|
/usr/bin | 存放软件包的可执行文件 |
/usr/lib | 存放可执行文件需要的库文件 |
/usr/share/doc | 存放软件包的说明文档 |
/usr/share/info | 存放软件包的帮助文档,不常用,被man代替 |
/usr/share/locale | 存放软件包的语言环境(地区、语言、字符集) |
/usr/share/man | 存放软件包的man帮助文档 |
查看是否已安装软件包(显示全称):rpm -qa | grep 软件包
查看软件包的安装位置:rpm -ql 软件包
(三)编译安装
使用yum命令可一次安装软件包和相关依赖包。但若想要更灵活的通过源代码安装,可以使用编译安装。
参考:技术|详解如何用源代码安装软件,以及如何卸载它 (linux.cn)
编译安装的一般步骤:
(1)下载源代码,并解压缩
(2)配置编译参数:./configure。配置要安装的软件,检测系统环境是否符合安装,构建Makefile。
(3)编译安装
- 编译:make。读取Makefile,去构建程序,编译后在objects目录下生成很多编译后的文件(.o结尾)。
- 安装:make install。安装程序。/usr/local目录是系统管理员本地安装软件时使用。自己手动安装的软件可以安装在/opt目录下,使用软链接即可,方便跟踪和卸载。
(4)运行(即运行可执行文件)
- 注意:运行(使用完整路径。若直接使用,尝试软链接或将文件复制到指定位置或添加环境变量)
/usr/bin | 存放各软件的可执行文件 |
/usr/lib | 存放各软件的库文件 |
/usr/local | 存放各软件的安装目录 |
/usr/local/src | 存放各软件的源代码 |
举例:centos7编译安装ncurses6.5:(本次安装目录存放在/opt目录下,并使用软链接到指定位置)
① 下载源代码: 网址Index of /pub/gnu/ncurses
# 下载压缩包,本次选择版本8.4(x86_64)
wget https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.5.tar.gz
# 解压缩到/opt目录下
tar -zxvf ncurses/ncurses-6.5.tar.gz -C /opt
# 切换到安装目录
cd /opt/ncurses-6.5
# 查看安装目录下的文件(有configure)
ls
② 编译安装:(先配置编译参数,再编译和安装)
# 配置编译参数,本次安装在/opt/ncurses目录下,ncurses目录会自动创建。
./configure --prefix=/opt/ncurses
# 编译,若要加速编译,可以使用make -j
make
# 安装
make install
③ 运行:(使用完整路径运行。为了直接运行,本次使用软链接)
# 查看ncurses版本,使用完整路径运行
/opt/ncurses/bin/ncursesw6-config --version
# 可执行文件创建软链接(并取别名),可在任意目录直接运行可执行文件
ln -s /opt/ncurses/bin/ncursesw6-config /usr/bin/ncurses
# 再次查看ncurses版本(使用别名)
ncurses --version
# 安装目录创建软链接
ln -s /opt/ncurses /usr/local/ncurses
目前很多官网下载的压缩包,已经是编译安装好之后打包的文件,解压缩后即安装好,使用完整路径就可以运行可执行文件。若直接使用,可添加环境变量或由chkconfig管理。
举例:centos7安装mysql(从mysql官网下载的压缩包,解压缩后即已是编译安装后的)
mysql网址(选择系统和版本):MySQL :: Download MySQL Community Server
① 需要根据相应的系统版本下载源代码,因此,先查看系统环境。
# 查看内核和系统信息
uname -a
# 查看centos系统版本
cat /etc/centos-release
② centos7默认安装mariadb(mysql替代品), 或者安装过旧的mysql,为避免冲突,可以清除相关旧的库和文件。
# 若默认已安装mariadb,则卸载:
查看是否已安装mariadb:rpm -qa | grep -i mariadb
查看mariadb状态:systemctl status mariadb
关闭mariadb:systemctl stop mariadb
卸载mariadb(忽略依赖包):rpm -e mariadb --nodeps
# 若安装过旧的mysql,则卸载:
查看是否已安装mysql:rpm -qa | grep -i mysql
查看mysql状态:systemctl status mysql
关闭mysql:systemctl stop mysql
卸载mysql(忽略依赖包):rpm -e mysql --nodeps
# 若存在mysql相关的文件,则删除:
查看是否有mysql相关的文件:find / -name mysql
查看/etc目录下,是否有my.cnf文件:find /etc -name my.cnf
删除文件:rm -rf 文件名
③ 下载源代码,并解压缩。可以直接复制解压缩到指定位置,也可以创建软链接到指定位置。
(本次安装目录存放在/opt目录下,并使用软链接到指定位置)
# 下载压缩包,本次选择版本8.4(x86_64)
wget https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz
# 解压缩到/opt目录下(z:用gzip处理,j:使用bzip2处理,J:使用xz处理)
tar -Jxvf mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz -C /opt
# 安装目录名重命名
mv /opt/mysql-8.4.0-linux-glibc2.28-x86_64 /opt/mysql-8.4
# 切换到安装目录
cd /opt/mysql-8.4
# 查看安装目录下的文件(没有configure)
ls
# 查看安装目录下的bin目录(有mysql和mysqld)
ls bin
# 查看安装目录下的support-files目录(有mysql.server)
ls support-files
# 查看myql版本
/opt/mysql-8.4/bin/mysql --version
# 创建软链接(-s:软链接,-v:显示执行过程)
ln -sv /opt/mysql-8.4/bin/mysql /usr/bin/mysql
ln -sv /opt/mysql-8.4 /usr/local/mysql
# 再次查看myql版本
mysql --version
# 查看/usr/local目录下的mysql相关的
ll /usr/local | grep mysql
# 查看/usr/bin目录下的mysql相关的
ll /usr/bin | grep mysql
注意:查看myql版本时可能报错(libncurses.so.6:cannot open shared object file)。
原因:ncurses版本低,下载更高版本(网址Index of /pub/gnu/ncurses)。
注:本文只涉及安装软件包。mysql后期涉及的创建用户和组、配置文件、初始化、添加服务、设置开机自启等,此处忽略。
补充:
1、查找命令的相关文件路径你
whereis 命令名 | 查找命令相关的二进制文件、源代码、帮助手册的路径 |
---|---|
which 命令名 | 查找执行的命令所在路径 |
2、yum安装mysql
centos7默认的yum源(yum仓库,镜像站)没有提供mysql,需手动下载mysql的yum源。
① mysql的yum源下载网址:MySQL :: Download MySQL Yum Repository
② 下载安装步骤:从网页下载RPM包(mysql的yum源),yum安装mysql的yum源,yum再从mysql的yum源去下载安装mysql-server。
# 从网页下载RPM包(mysql的yum源)
wget https://dev.mysql.com/get/mysql84-community-release-el7-1.noarch.rpm
# yum安装mysql的yum源
yum install -y mysql84-community-release-el7-1.noarch.rpm
# 查看yum源(yum仓库,镜像站),-1(数字1):一行显示一个文件
ls -1 /etc/yum.repos.d/
# yum安装mysql-server
yum install -y mysql-community-server
# 查看是否已安装mysql
rpm -qa | grep -i mysql
注意:yum安装的mysql自动创建mysql用户和mysql组,自动添加服务。
3、Debian系列的软件包管理器(说明文档)
Debian 软件包管理器:dpkg、apt 和 Aptitude 解释 (linux-console.net)