gentoo:emerge如何使用USE安裝額外的包擴展,vim如何安裝lua支持?php
ubuntu的apt-get,arch的pacman,繼承自redhat的yum前端
經過配置源均可以從國內外鏡像上得到軟件包,而且交給這些包管理器來處理依賴,下載依賴等等python
在使用mac os x那段時間,我通常是用brew和apple store來管理包和程序的shell
後來有段時間我使用windows,堅持使用360,雖然你們都說他流氓,可是十多年的感情了!從奇虎到如今,我發現他的「包管理器」:軟件管家,仍是不錯的(滑稽)!數據庫
反正我已經習慣了使用在線包管理器的方式,節省大量的時間去寫本身的程序ubuntu
安裝完gentoo以後也迅速開始學習它的包管理器:emerge!vim
Gentoo 的包管理工具稱爲portage(相似於 yum 和 apt). 而 emerge (相似於Debian的apt-get,Redhat 的yum 和 Suse的zypper命令)是做爲portage的前端使用 portage 的命令。windows
portage下的「小數據庫」ruby
/usr/portage下是Portage樹是ebuilds文件的集合,這些文件包含了Portage管理工具維護軟件(安裝,搜索,查詢,編譯 ...)時所須要的全部信息,當運行emerge命令時參考此數據庫app
在/usr/portage中咱們看到全部emerge可用與管理的包,cd進去還能看到裏面的包
使用emerge安裝軟件的時候:
emerge app-editors/vim
emerge後面緊跟的第一層也就是這個目錄中第一層可用包,第二層對應了包下一層軟件包
make.conf
cd /etc/portage cat ./make.conf
此文件記錄了編譯時用到的參數,CFLAGS,CXXFLAGS,MAKEOPTS等參數,通常不須要修改。
但有一個USE的變量很經常使用
USE
一個軟件不止是程序,還有文檔,插件擴展,UI支持等等,而use就是能夠添加刪除這些額外福利的變量。
兩種方式使用USE:
例:
vim須要使用neocomplete插件,就要lua支持,此時咱們若是手動編譯vim須要加上--with-lua。
從新來安裝vim,emerge使用USE添加一些支持,lua,ruby等
查看可用USE可用擴展包
emerge -pv app-editors/vim
能夠看到USE:
紅色表示會安裝的,藍色並帶有「-」號表示不會安裝的,
安裝vim,添加lua,ruby,cscope,python,perl經常使用支持:
USE="cscope lua ruby python perl" emerge --ask app-editors/vim
看到剛剛藍色的使用USE已經添加進去並變成紅色了,表示會被一塊兒安裝進去
並且,留意多出一個依賴包cscope須要下載下來,而他的USE="-emacs",表示去掉對emacs的支持,那是留給emacs黨用的,vim黨不須要(滑稽
這樣vim能使用neocomplete了!
卸載軟件
emerge -C vim
移除不影響系統功能的軟件(清理系統)
emerge --clean emerge -c
卸載能夠移除的依賴(深度清理)
emerge --depclean
安裝特定版本的軟件
emerge "=python-3.2" emerge "<python-3.2"
升級軟件
emerge -u opera emerge --update opera
升級系統軟件
emerge -u system
升級整個系統
emerge -u world
world 來自 /var/lib/portage/world
固然,能夠加個 p (再加個v就完美了),看看看是否是本身想要的:
emerge -pvu world
避免升級覆蓋掉版本更高的軟件
emerge -uU world emerge --update --upgradeonly world
安裝了masked 軟件包,升級時可能會降級處理的
查看某軟件包可用的USE參數
emerge -pv php
這個就很是有用了
臨時設置USE 並以臨時的USE 變量emerge 軟件包
USE="-minimal" emerge -1 xinit
注意:添加不須要「+」號
若是想以某種規則(USE)永久性的安裝某軟件包,那麼在 /etc/portage/package.use 文件裏添加以下一行內容:
echo x11-apps/xinit -minimal >> /etc/portage/package.use
添加後,就會 以 USE="-minimal" 安裝 xinit 了, 並且是永久性的(除非刪掉此行) 不存在 /etc/portage/ 目錄的話,手動建立