在 Linux 系统里,软件安装和管理是很重要的技能,接下来就给大家详细讲讲这方面的知识,让初学者也能轻松上手。
一、什么是软件仓库
软件仓库就像是一个存放软件的大仓库,它可以是一台服务器,也可以是一个网站。里面有各种各样的软件包,还有索引文件,这些索引文件就像仓库里的目录,能帮我们快速找到想要的软件。在 Linux 系统里,我们通过包管理工具,就能很方便地安装、卸载和更新软件。这就好比安卓系统里的应用商店,或者 iOS 系统里的 App Store,都是用来管理软件的地方,只不过在 Linux 系统里叫软件仓库。
二、包管理工具
不同的 Linux 系统版本,用的包管理工具也不一样,下面给大家介绍几种常见的。
适用于 Ubuntu 和 Debian 系统
dpkg:这个工具可以用来安装后缀是.deb 的软件包。比如,我们要安装一个叫 package.deb 的软件包,就在命令行里输入 “dpkg -i package.deb”。要是不想用这个软件了,想卸载它,就输入 “dpkg -r package”。
apt:也是 Ubuntu 和 Debian 系统常用的。安装软件时,在命令行输入 “apt-get install package”,这里的 package 就是你要安装的软件名字。卸载软件的话,输入 “apt-get remove package” 就行。
适用于 RHEL、CentOS 系统
rpm:在 RHEL 和 CentOS 系统里,它可以安装后缀是.rpm 的软件包。安装时输入 “rpm -ivh package.rpm”,卸载软件就输入 “rpm -e package”。
yum:CentOS 6 - 8 版本常用这个工具。安装软件用 “yum install package”,卸载软件用 “yum remove package”。
dnf:适用于 RHEL 8、CentOS 8。安装软件输入 “dnf install package”,卸载软件输入 “dnf remove package”。
三、Linux 系统软件安装实例(以 Ubuntu 24.10 为例)
安装软件:假如我们想安装 vim 这个软件,可以在命令行输入 “sudo apt install nginx”,系统会提示你确认是否安装,输入 “y” 确认就行。要是不想每次都确认,也可以直接输入 “sudo apt install vim -y” ,系统就会自动确认安装。
sudo apt install nginx -y查看已安装软件:如果想知道系统里都安装了哪些软件,在命令行输入 “sudo apt list --installed”,这样就能看到所有已经安装的软件包了。
sudo apt list --installed查看安装好的nginx
sudo apt list --installed|grep nginx卸载软件:要是不想用 nginx软件了,想把它卸载掉,执行以下步骤进行卸载。
sudo systemctl stop nginxsudo systemctl disable nginx.service删除 Nginx 软件包:
仅删除软件包,保留配置文件:若后续可能重新安装 Nginx,希望保留配置文件,执行sudo apt-get remove nginx nginx-common ,此命令会删除 Nginx 及其相关的通用软件包,但配置文件会保留在/etc/nginx/目录中。
sudo apt-get remove nginx nginx-common删除软件包及配置文件:若确定不再使用 Nginx,也不需要保留配置文件,执行sudo apt-get purge nginx nginx-common ,它会彻底删除 Nginx 软件包以及相关配置文件 ,/etc/nginx/目录也会被删除。
sudo apt-get purge nginx nginx-common检索软件包, 查找nginx软件包相关的信息:
apt search nginx四、软件仓库原理(以 Ubuntu 系统为例)
在 Ubuntu 系统里,软件仓库是软件的 “大仓库”,里面存放着各种各样的软件包。它的原理就像是你去图书馆借书,图书馆有图书目录帮你找书,软件仓库也有索引文件帮系统找软件。
当你在 Ubuntu 系统中使用包管理工具(如 apt)安装软件时,系统会按照特定流程来操作。首先,系统会在本地的软件包缓存中查找你要安装的软件。这个缓存就像是你家里存放常用书籍的小书架,存放着之前从软件仓库获取的软件包信息和部分软件包。如果在本地缓存中找到了你要安装的软件,并且该软件所依赖的其他软件也都存在(就像一本书需要配套的书签、笔记等附属物品,软件也可能需要其他软件配合才能正常运行,这些就是依赖),系统就会直接从本地进行安装。
要是本地缓存里没有你要安装的软件,系统就会去查看软件源配置文件(通常在/etc/apt/sources.list和/etc/apt/sources.list.d/目录下的相关文件)。这些配置文件就像是图书馆的索引目录,记录着不同软件仓库的地址信息。系统会根据这些信息,去对应的软件仓库(可以是官方软件仓库,也可以是像阿里云这样的镜像源仓库)查找软件。
当系统在软件仓库中找到你要安装的软件后,它会检查这个软件所依赖的其他软件是否齐全。如果依赖的软件都能在软件仓库中找到,系统就会把你要安装的软件以及它所依赖的所有软件都下载到本地缓存,然后再进行安装。这就好比你要借一套书,图书馆会把这套书的所有分册都找齐后一起借给你。
在这个过程中,软件仓库的索引文件起着关键作用。它就像图书馆目录的更新记录,会定期更新,记录着软件仓库中软件包的版本、依赖关系等重要信息。系统在查找软件时,会参考这些索引文件,确保找到的软件是最新的、可用的。而且,为了提高查找和下载的效率,系统还会对软件包和索引文件进行缓存管理,避免重复下载相同的内容。
五、镜像源相关知识
镜像源是什么:镜像源其实就是软件仓库的一个 “副本”。因为有时候官方的软件仓库可能在国外,下载软件会很慢,所以我们可以用国内的镜像源,它们和官方软件仓库的内容是一样的,但下载速度会快很多。
Ubuntu 配置阿里云镜像源:
- 访问阿里云镜像站,找到ubuntu (noble)的配置:
https://developer.aliyun.com/mirror/ubuntu- 在对软件源进行更改前,备份原文件是个好习惯,以防后续出现问题时能恢复原状。打开终端,输入以下命令:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak切换root用户
sudo -icat << EOF > /etc/apt/sources.list
deb https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
EOF3.更新软件仓库列表
sudo apt update推出root用户
exit