參考:https://blog.csdn.net/wang_shen_tao/article/details/78676560#%E5%9C%A8ubuntu%E4%B8%8A%E6%9B%B4%E6%8D%A2%E6%B8%85%E5%8D%8E%E6%BA%90
Linux兩大主流 RPM 和 DPKG 介紹
Linux 開發商先在固定的硬件平台與操作系統平台上面將需要安裝或升級的軟件編譯好, 然后將這個軟件的所有相關文件打包成為一個特殊格式的文件,
在這個軟件文件內還包含了預先偵測系統與相依軟件的腳本, 並提供記載該軟件提供的所有文件資訊等。最終將這個軟件文件釋出。
用戶端取得這個文件后,只要透過特定的命令來安裝, 那么該軟件文件就會依照內部的腳本來偵測相依的前驅軟件是否存在,
若安裝的環境符合需求,那就會開始安裝, 安裝完成后還會將該軟件的資訊寫入軟件管理機制中,以達成未來可以進行升級、移除等動作。
目前在 Linux 界軟件安裝方式最常見的有2種,分別是:
- DPKG:
這個機制最早由 Debian Linux 社群所開發出來的,透過 dpkg 的機制, Debian 提供的軟件就能夠簡單的安裝起來,同時還能提供安裝后的軟件資訊,實在非常不錯。
只要是衍生於 Debian 的其他 Linux distributions 大多使用 dpkg 這個機制來管理軟件的, 包括 B2D, Ubuntu 等等。
- RPM:
這個機制最早是由 Red Hat 這家公司開發出來的,后來實在很好用,因此很多 distributions 就使用這個機制來作為軟件安裝的管理方式。
包括 Fedora, CentOS, SuSE 等等知名的開發商都是用這。
目前新的 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換源
因為在線安裝需要在服務器上下載需要軟件和依賴關系文件,所以下載的速度很影響使用體驗。
一般來說,Linux默認的源安裝和更新速度很慢,所以安裝好系統一般會選擇換源。
個人常用的源:
下面分別舉例在 Ubuntu16.04 和 Centos7 上如何換源:
1、在 Ubuntu16.04 上更換清華源
Ubuntu 16.04的軟件源配置文件是 /etc/apt/sources.list。
將系統自帶的該文件做個備份,將該文件替換為下面內容,即可使用 TUNA 的軟件源鏡像。(其他版本sourcelist 參看 網頁)
先備份在編輯
1 mv /etc/apt/sources.list /etc/apt/sources.list.bakup 2 sudo vim /etc/apt/sources.list
1 # 默認注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋 2 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse 3 # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse 4 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse 5 # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse 6 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse 7 # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse 8 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse 9 # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse 10 11 # 預發布軟件源,不建議啟用 12 # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse 13 # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
訪問源列表里的每個網址,並讀取軟件列表,然后保存在本地電腦。使用update命令更新。
1 sudo apt-get update
2、在 Centos7 上更換 163 源(網易雲源)
Centos7的源文件是/etc/yum.repos.d/CentOS-Base.repo。同理先備份,然后再替換文件即可。
首先備份
1 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
再下載Centos,並且將其改成默認源文件
1 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo 2 mv CentOS7-Base-163.repo /etc/yum.repos.d/CentOS-Base.repo
運行命令先清除緩存,再生成緩存
1 yum clean all 2 yum makecache
3、在 Centos7 上更換阿里源
備份操作同上
下載適合當前系統的 Centos-Base.repo 到 /etc/yum.repos.d/
1 CentOS 5 2 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo 3 或者 4 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo 5 CentOS 6 6 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 7 或者 8 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 9 CentOS 7 10 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 11 或者 12 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
之后操作同上
關於update和upgrade
1、Ubuntu下
sudo apt-get update
這個命令,會訪問源列表里的每個網址,並讀取軟件列表,然后保存在本地電腦。
我們在新立得軟件包管理器里看到的軟件列表,都是通過update命令更新的。
sudo apt-get upgrade
這個命令,會把本地已安裝的軟件,與剛下載的軟件列表里對應軟件進行對比,如果發現已安裝的軟件版本太低,就會提示你更新。
如果源里面有系統更新,直接給你把系統升級。有網友表示會導致原來軟件無法使用。
2、Centos下
yum makecache
等同於 sudo apt-get update
yum -y update
升級所有包,改變軟件設置和系統設置,系統版本內核都升級。
yum -y upgrade
升級所有包,不改變軟件設置和系統設置,系統版本升級,內核不改變。