一、编译安装
1. 相关知识概述
编译安装是从软件的源代码开始,通过编译过程生成可执行文件,然后安装这些可执行文件到系统中。
- 源码包:所有源代码文件的集合。
- 程序:未执行的代码。
- 进程:正在执行的代码。
- 线程:进程中实际运行的单位,每条线程并行执行不同的任务。
2. 软件安装过程
以在Ubuntu系统上安装Nginx为例
-
关闭系统的防火墙开机自启动,以免其他网络无法访问相关程序。非必要步骤。
ufw disable -
安装程序的依赖环境。
apt -y install libpcre3-dev zlib1g-dev libssl-dev build-essential-
libpcre3-dev:这是 Perl 兼容正则表达式库(PCRE)的开发包。提供了开发库和头文件,用于在其他程序中使用 PCRE 库。
-
zlib1g-dev:这是 zlib 库的开发包。提供了开发库和头文件,用于在其他程序中使用 zlib 进行数据压缩和解压缩。
-
libssl-dev:这是 OpenSSL 库的开发包。提供了开发库和头文件,用于在其他程序中使用 OpenSSL 进行安全通信。
-
build-essential:这是一个元包,它自动安装编译 C 和 C++ 程序所需的基本工具和库,包括 gcc(GNU 编译器集合)、g++(GNU C++ 编译器)、make(构建工具)等。
-
-
创建程序的执行用户。
useradd -M -s /sbin/nologin nginx- -M:不创建用户的家目录。
- -s:设置用户的登录 shell。/sbin/nologin是一个特殊的shell,禁止用户登录。通常用于不需要交互式登录,只用于运行特定服务的用户。
- nginx:创建的用户名。
-
软件包解压缩。
tar -xf nginx-1.22.0.tar.gz -
进入软件源码包,执行configure文件,配置程序的安装路径和执行用户。
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx -
编译并安装。
make && make install -
创建软链接,便于直接使用nginx命令来调用Nginx程序。
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ -
在安装目录下创建一个run目录,用于存放Nginx程序的PID文件。并修改安装目录的所有者和所有组。
mkdir /usr/local/nginx/run chown -R nginx.nginx /usr/local/nginx -
进入Nginx程序安装目录下的配置目录conf,修改配置文件nginx.conf,设置Nginx程序PID文件的位置。
pid /usr/local/nginx/run/nginx.pid;保存退出后,执行下面的命令,查看配置是否存在问题。
nginx -t -
编写Nginx程序的系统服务。
vim /lib/systemd/system/nginx.service在文件中写入以下内容:
[Unit] Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/usr/local/nginx/run/nginx.pid #注意文件位置,如果不对 启动不了 ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #注意启动文件位置 ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target -
启动Nginx服务。
# 配置完服务文件后,重新加载系统服务 systemctl daemon-reload # 设置Nginx服务开机自启动 systemctl enable nginx # 启动Nginx服务 systemctl start nginx # restart是重启 -
查看Nginx程序的PID。
netstat -anutp | grep nginx -
在本机浏览器中访问虚拟机的Nginx服务,IP为虚拟机的IP地址,端口为80,可不写。还可以编辑Nginx安装目录下html目录中的index.html文件,自定义页面显示内容。
3. 编译安装的优缺点
优点:
- 开源,用户可以根据需求修改源代码,自定义模块和功能。
缺点:
- 耗时费力,过程复杂,并且不易于后续的维护。对新手不友好。
二、RPM安装和DPKG安装
1. RPM安装
RPM安装是用于CentOS系统的安装方式,软件包都是以.rpm结尾。使用rpm命令来实现RPM包的安装。
rpm命令来自英文词组redhat package manager的缩写,功能是在Linux系统下对软件包进行安装、卸载、查询、验证、升级等工作,常见的主流系统(如RHEL、CentOS、Fedora等)。安装软件固定搭配“rpm-ivh 软件包名”,而卸载软件则用固定搭配“rpm -evh 软件包名”。
rpm 选项 软件包
常见的选项:
| 选项 | 功能 |
|---|---|
| -e | 卸载软件包 |
| -h | 以#显示安装进度 |
| -i | 安装软件包 |
| -q | 查看指定软件包是否安装 |
| -v | 显示过程 |
2. DPKG安装
DPKG是Ubuntu系统的安装方式,软件包都是以.dpkg结尾。使用dpkg命令来实现软件包的安装。
dpkg命令来自英文词组Debian package的缩写,功能是管理软件安装包,是在Debian系Linux系统中最常用的软件安装、管理、卸载的实用工具。
dpkg 选项 软件包
常见的选项:
| 选项 | 功能 |
|---|---|
| -i | 安装软件包 |
| -l | 显示软件包是否已安装 |
| -P | 完全清除软件包(不推荐) |
| -r | 卸载软件包 |
三、Yum安装和Apt安装
1. Yum安装
1.1 yum命令
Yum是一个基于RPM的软件包管理器,可以自动解决依赖关系,也就是说安装一个软件包时,它会自动安装所有必需的依赖项;可以轻松地更新和升级系统中的所有软件包;允许用户配置和管理多个软件仓库,以便从不同的软件源安装软件。Yum安装使用的是yum命令。
yum命令来自英文词组yellow dog updater modified的缩写,功能是在Linux系统中基于RPM技术进行软件包的管理工作。
yum 选项 [软件包]
常见的选项:
| 选项 | 功能 |
|---|---|
| install | 安装软件包 |
| update | 更新软件包 |
| remove | 清除软件包 |
| search | 搜索软件包 |
| clean | 清除过期缓存 |
| makecache | 更新元数据缓存 |
1.2 配置本地Yum源
配置本地Yum源是指将Yum软件包管理器配置为从本地服务器或本地目录获取软件包,而不是从远程服务器下载。这样可以提高安装和更新软件的速度、减少对外部网络的依赖、以及在没有互联网连接的情况下管理软件包。
-
查看虚拟机的光盘镜像。
ls /dev | grep cdrom -
挂载光盘镜像。
mount /dev/sr0 /mnt使用mount命令挂载是临时挂载,要永久挂载就需要配置/dev/fstab来实现自动挂载。
挂载准则:一个设备只能挂载一个目录;挂载点就是Linux的目录,而且最好是空目录。
-
编写Yum源文件,文件必须在/etc/yum.repo.d目录下,而且源文件以.repo结尾。
编写一个名为local.repo的源文件。
[local] # 源名称,和文件名一致 # 源描述 name=local # 源路径,也就是镜像挂载点 baseurl=file:///mnt # 1表示启用当前yum源 enabled=1 # 0表示不检查公钥 gpgcheck=0 -
在/etc/yum.repo.d目录下创建一个backup目录,将系统自带的yum源文件移动到该文件。
cd /etc/yum.repos.d mkdir backup mv C* backup/ -
清除yum缓存信息,并更新元数据缓存。
yum clean all && yum makecache
1.3 配置阿里云Yum源
-
下载阿里云Yum文件。
wget -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 或者 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo -
清除yum缓存信息,并更新元数据缓存。
yum clean all && yum makecache
2. Apt安装
2.1 apt命令
Apt是一个基于dpkg的软件包管理器,与Yum类似,也能够实现自动解决软件包的依赖关系。Apt安装使用的是apt-get命令或apt命令,apt命令被视作是apt-get的替代。
apt命令来自英文词组advanced package tool的缩写,功能是在Linux系统中基于DPKG技术进行软件包的管理工作。
apt 选项 [软件包]
常用的选项:
| 选项 | 功能 |
|---|---|
| update | 更新软件包列表 |
| upgrade | 更新软件包 |
| install | 安装软件包 |
| remove | 卸载软件包 |
2.2 配置阿里云Apt源
-
进入/etc/apt目录下的源配置文件sources.lists,在文件末尾加入以下内容。
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted deb http://mirrors.aliyun.com/ubuntu/ jammy universe deb-src http://mirrors.aliyun.com/ubuntu/ jammy universe deb http://mirrors.aliyun.com/ubuntu/ jammy-updates universe deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates universe deb http://mirrors.aliyun.com/ubuntu/ jammy multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-updates multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu jammy-security main restricted deb-src http://mirrors.aliyun.com/ubuntu jammy-security main restricted deb http://mirrors.aliyun.com/ubuntu jammy-security universe deb-src http://mirrors.aliyun.com/ubuntu jammy-security universe deb http://mirrors.aliyun.com/ubuntu jammy-security multiverse deb-src http://mirrors.aliyun.com/ubuntu jammy-security multiverse -
保存文件后,执行下面命令,更新软件包列表并升级软件包。
apt update && apt upgrade
3. 安装位置
通过yum和apt安装的应用程序,相关文件位置都比较分散,下面是各种文件的默认具体位置:
- 可执行文件:/usr/bin
- 库文件:/usr/lib
- 配置文件:/etc
- 其他支持文件:/usr/share

1万+

被折叠的 条评论
为什么被折叠?



