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/ 目录的话,手动建立