如果 container
內
沒有你需要的工具怎麼辦?
那就會需要用到
套件管理系統
啦!
一般來說 Linux 目前就分兩個主流,
一種是
debian
類的(deb),另一種是
Redhat
類的(rpm)。
Deb 系列的
Distribution
大概有:
Debian, Ubuntu, Xandros, Linspire…等
Rpm 系列的
Distribution
大概有:
Fedora, CentOS, Red Hat Enterprise Linux, OpenSUSE …等
在
早期
還沒有套件管理系統的時候,
大部份的工具都要從
原始碼編譯
,
也不是說這樣有什麼不好…只不過有工具整合畢竟是
比較方便
,也比較不會出什麼錯誤。
而這樣的套件管理系統也是有分
高階跟低階
。
所謂高階就是像 debian 的
apt-get
,或是 CentOS 的
yum
,而低階就是直接安裝 *
.deb
檔 或是 *
.rpm
檔。
兩者的差異就在於, 高階 的會自動幫你將 相依的套件 找出來,一併安裝,而低階的則要自行留意囉。
高階的使用方式大概有以下幾種:
特別留意 如果要最新的軟體版本,最好先下完 update 再下 install,才不會發生找不到套件或是裝到太舊的版本的問題。
低階
的部份也是有
安裝
:
dpkg --install *.deb
rpm -i *.rpm
不過比較
有用
的應該是可以看到
目前已經裝了多少套件
的指令:
dpkg --list
rpm -qa
可是…有時候你會遇到 Base Image 不包含 以上兩種套件工具,比方說 alpine 系列的,就會要使用到它特有的 apk( Alpine package kit ) 了,比方說沒有 curl 的時候就可以 apk add curl … 其餘的再自行參考 apk 的 help 囉。
還有一種狀況是 image 本身就有提供一個很多工具的軟體叫 busybox ,那就可以 不用安裝套件 ,直接透過它含有的功能來達到你想執行的程式囉。