Linux 开发商先在固定的硬件平台与操作系统平台上面将需要安装或升级的软件编译好, 然后将这个软件的所有相关文件打包成为一个特殊格式的文件,在这个软件文件内还包含了预先侦测系统与相依软件的脚本, 并提供记载该软件提供的所有文件资讯等。最终将这个软件文件释出。用户端取得这个文件后,只要透过特定的命令来安装, 那么该软件文件就会依照内部的脚本来侦测相依的前驱软件是否存在,若安装的环境符合需求,那就会开始安装, 安装完成后还会将该软件的资讯写入软件管理机制中,以达成未来可以进行升级、移除等动作。
目前在 Linux 界软件安装方式最常见的有两种,分别是:
目前新的 Linux 开发商都有提供『线上升级』机制,透过这个机制, 原版光盘就只有第一次安装时需要用到而已,其他时候只要有网络,你就能够取得原本开发商所提供的任何软件了呢! 在 dpkg 管理机制上就开发出 APT 的线上升级机制,RPM 则依开发商的不同,有 Red Hat 系统的 yum , SuSE 系统的 Yast Online Update (YOU)。
distribution 代表
软件管理机制
使用命令
线上升级机制(命令)
Red Hat/Fedora
RPM
rpm, rpmbuild
YUM (yum)
Debian/Ubuntu
DPKG
dpkg
APT (apt-get)
因为在线安装需要在服务器上下载需要软件和依赖关系文件,所以下载的速度很影响使用体验。一般来说,Linux默认的源安装和更新速度很慢,所以安装好系统一般会选择换源。
个人常用的源:
举例在Ubuntu16.04和Centos7上如何换源
Ubuntu 16.04的软件源配置文件是 /etc/apt/sources.list
。将系统自带的该文件做个备份,将该文件替换为下面内容,即可使用 TUNA 的软件源镜像。(其他版本sourcelist 参看 网页)
先备份在编辑
mv /etc/apt/sources.list /etc/apt/sources.list.bakup
sudo vim /etc/apt/sources.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。使用update命令更新。
sudo apt-get update
Centos7的源文件是/etc/yum.repos.d/CentOS-Base.repo。同理先备份,然后再替换文件即可。
首先备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
再下载Centos,并且将其改成默认源文件。
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo /etc/yum.repos.d/CentOS-Base.repo
运行命令生成缓存
yum clean all
yum makecache
在Ubuntu下
sudo apt-get update
这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软件包管理器里看到的软件列表,都是通过update命令更新的。
sudo apt-get upgrade
这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。如果源里面有系统更新,直接给你把系统升级。有网友表示会导致原来软件无法使用。
在Centos下
yum makecache
等同于 sudo apt-get update
yum -y update
升级所有包,改变软件设置和系统设置,系统版本内核都升级。
yum -y upgrade
升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变。
参考: