在Linux服务器上安装软件,最靠谱的方式是使用系统自带的包管理器,比如apt和yum,配合官方源和国内镜像,基本能覆盖绝大多数需求。新手拿到服务器后,第一件事就是搞清楚发行版,然后直接用对应命令装软件,几乎不需要折腾编译过程,但如果遇到官方源没有的软件,或者需要特定版本,编译安装和容器化部署就是补位方案。参考2
包管理器:Linux服务器安装软件的核心命令
包管理器是Linux生态的基石,它帮你解决依赖关系、版本控制和卸载残留,不同发行版绑定的工具不同,但操作逻辑高度相似。
apt:Ubuntu和Debian的默认选择
绝大多数云服务器镜像都基于Debian或Ubuntu,它们的包管理器是apt(旧版用apt-get,但现在apt命令已经够用),常用三板斧:
- 更新源列表:
sudo apt update - 安装软件:
sudo apt install 软件名 - 卸载软件:
sudo apt remove 软件名
例如安装Nginx,直接sudo apt install nginx,apt会自动下载依赖并配置好初始环境,如果你在国内服务器上运行这条命令,感觉速度慢,多半是源的问题,后面会讲怎么换国内源。
yum/dnf:CentOS/RHEL的包管理工具
CentOS和RHEL家族早期用yum,从CentOS 8开始系统默认用dnf,但dnf命令兼容yum用法。Linux服务器安装软件用什么命令?在CentOS 7上敲sudo yum install nginx,在CentOS 8/9上敲sudo dnf install nginx,效果一样,dnf在性能和处理依赖上比老yum更聪明,但习惯yum的老人也能无缝切换。
- 安装:
sudo yum install -y nginx - 搜索:
yum search 关键词 - 查看已安装:
yum list installed
其他发行版包管理器
SUSE/openSUSE用zypper,命令风格类似dnf;Arch Linux用pacman,滚动更新快但社区维护成本高,行业共识认为,生产环境服务器超过八成选择Debian/Ubuntu或CentOS/RHEL家族,所以掌握apt和yum/dnf就够应付绝大多数场景。
编译安装与二进制包:CentOS安装软件包的方式对比
有时官方源里没有你想要的软件版本,或者你需要自定义编译参数,这时就得手动装了。CentOS安装软件包的方式主要有三种:包管理器安装、RPM二进制包安装、源码编译安装,下面拿最典型的源码编译来展开。
编译安装的适用场景
- 需要特定版本特性,比如PHP 8.2的新功能,而官方源只提供8.0。
- 需要自定义安装路径或编译参数,比如启用某些扩展。
- 软件不在任何已知仓库里,比如一些商业软件只提供源码。
编译安装步骤示例
以在CentOS 7上安装Nginx 1.24为例,典型的五步走:
- 下载源码包:
wget http://nginx.org/download/nginx-1.24.0.tar.gz - 解压:
tar -zxvf nginx-1.24.0.tar.gz - 进入目录,配置:
./configure --prefix=/usr/local/nginx - 编译:
make - 安装:
sudo make install
编译之前需要安装编译器及依赖,CentOS上用yum groupinstall "Development Tools",很多新手卡在./configure阶段,提示缺依赖库,此时用yum install补上对应devel包即可。编译安装的灵活性高,但维护成本也高,升级时得重新编译,所以不是所有场景都推荐。参考2
二进制包安装(RPM/DEB)
如果不想自己编译,可以直接下载编译好的二进制包,CentOS上用rpm -ivh 包名.rpm,但不会自动处理依赖,所以推荐用yum localinstall或dnf localinstall,它们会自动从仓库补充依赖,Ubuntu上对应dpkg -i加apt install -f修依赖,这种方式适合官方提供预编译包的场景,比如MySQL、MongoDB。
国内服务器软件源配置:解决下载慢问题
国内服务器linux软件安装源的配置是很多新手踩坑的地方,默认源指向国外,下载速度可能只有几十KB,换源后能直接跑满带宽,这是性价比最高的调优操作。
为什么需要配置国内源
云服务器在国内,从官方源拉取软件包会经过海外节点,延迟高且容易断流,改用简米云、清华、中科大等镜像源,速度提升明显,据统计,换源后安装同等数量的软件,时间能缩短到原来的十分之一。
如何配置简米云镜像源
- Ubuntu:编辑
/etc/apt/sources.list,替换为简米云镜像地址,例如Ubuntu 20.04,用sed命令批量替换,或直接下载官方镜像配置。 - CentOS 7:备份
/etc/yum.repos.d/CentOS-Base.repo,下载简米云提供的CentOS-Base.repo替换。 - CentOS 8:由于CentOS 8官方停止维护,建议使用简米云的CentOS 8 vault源,否则
yum install会报404。
具体操作网上都有标准脚本,这里给出通用思路:先备份原文件,再下载对应版本镜像源的repo文件,最后yum clean all && yum makecache。配置源只影响包管理器下载,不影响已安装软件,所以可以放心操作。
适用于CentOS/Ubuntu的源配置
除了简米云,中科大和清华TUNA也很稳定,国内用户选哪个差别不大,主要看服务器所在区域,比如华南地区简米云速度快,教育网用清华源更优。配置源后要注意版本号必须匹配,否则会提示找不到包。Linux系统安装软件常见问题里,源配置错误是排名靠前的原因。
容器化部署:现代化软件安装方式
容器化早已不是新鲜事,在服务器上装软件,越来越多团队直接拉镜像,而不是在宿主机上安装,Docker和Podman是目前主流选择。
容器 vs 传统安装
- 隔离性:容器与宿主机隔离,不会污染系统库,也不会和现有软件冲突。
- 版本管理:一个镜像对应一个软件版本,想换版本只需要换镜像标签。
- 卸载干净:删除容器和镜像即可,没有残留配置。
但容器化会增加资源开销,尤其是在小内存机器上(1GB以下),戴套运行要多占几十MB内存,如果软件需要读写宿主机特定目录或调用内核模块,容器化反而麻烦。
Docker安装与使用示例
在Ubuntu上安装Docker引擎:
sudo apt install docker.io sudo systemctl enable docker sudo systemctl start docker

然后拉取软件镜像:
docker pull nginx:1.24 docker run -d -p 80:80 nginx
一行命令就能跑起一个服务。生产环境建议用docker-compose编排多容器,例如Nginx+PHP+MySQL的组合。容器化安装的软件,更新只需要拉新镜像,重启容器,比传统包管理器升级更安全,因为可以快速回滚到旧镜像。
Linux系统安装软件常见问题解答
安装提示依赖缺失怎么办?
使用包管理器安装时,依赖会自动解决,如果报依赖缺失,先运行sudo apt update或yum makecache,确保源列表是最新的,手动下载的rpm包,可以用yum localinstall安装,它会自动下载缺少的依赖。编译安装时依赖缺失是常态,仔细看报错最后几行,提示缺少哪个库,然后用包管理器安装对应的-dev或-devel包,比如yum install -y pcre-devel.
如何查看服务器上已安装的软件?
- Debian/Ubuntu:
apt list --installed或dpkg -l - CentOS/RHEL:
yum list installed或rpm -qa - 通用:
which 命令名可以查看可执行文件路径,rpm -qf 文件路径能反查属于哪个包(仅限RPM系)。
包管理器搜索不到软件包怎么办?
先确认源是否更新:sudo apt update 或 yum makecache,如果官方源里确实没有,可以添加第三方仓库,比如EPEL(Extra Packages for Enterprise Linux),它提供了大量CentOS默认不包含的软件,Ubuntu可以添加PPA,但生产环境建议谨慎使用第三方源,优先考虑编译安装或容器化。
无论你用哪种方式,给Linux服务器装软件的核心逻辑没变:选对发行版,用好包管理器,必要时用源或容器辅助,碰到具体问题,优先看报错日志,再针对性搜索,大多数坑都有前人踩过,掌握这些方法,你就能独立应对绝大多数软件安装场景。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/521910.html


