`
sbiigu
  • 浏览: 163920 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

emerge 的用法(简明笔记)

阅读更多
转载:http://blog.chinaunix.net/u/26370/showart_233061.html
鉴于很多新手对在gentoo下安装软件问题的理解比较模糊,我把www.gentoo.org上portage帮助整理精简一下给大家参考。当您看了此文以后对gentoo的包管理还兴趣的话,可以去http://www.gentoo.org/doc/tw/handbook查看详细的文档。
----------------------------------------------------------------------------------
安装软件在gentoo中有两种方法:
1.安装预编译的二进制包,好处不用自己编译,编译大的套件很花时间。预编译软件在/usr/portage/packages/All中。
2.下载源文件自动编译安装,慢但是根据自己的机器优化,这种时候就会受USE参数的影响,下载的源码在/usr/portage/distfiles中。

----------------------------------------------------------------------------------
以下都以mozilla为例,括号内为参数的缩写
1.想要编译安装软件:emerge mozilla
2.查看软件依赖哪些别的软件,实际并不编译安装:emerge --pretend mozilla (-p)
3.先下载软件,并不编译:emerge --fetchonly mozilla
4.查看要从哪里下载源码:emerge --pretend -fetchonly mozilla (-pf)如果你本地没有上网条件可以用它记下要下载的东西,去别处下载后带回来,把源码cp到正确的路径下再emerge
5.想安装一个特定版本的软件:emerge "<mozilla-1.4"将会安装比1.4老的版本
emerge ">mozilla-1.4" 将会安装比1.4新的版本
emerge "=mozilla-1.4"将会安装1.4版
6.安装预编译版本:emerge --usepkg mozilla (-k)
7.安装预编译软件,不在乎版本:emerge --usepkgonly mozilla (-K)
8.本地系统上没有预编译软件,可以从网上下载:在/etc/make.conf中用PORTAGE_BINHOST指定提供预编译好的二进制包的地址,然后emerge --getbinpkg mozilla (-g),这将会下载此软件和它依赖的二进制包并安装。要查看哪些依赖的软件将会被安装:
emerge --getbinpkg --pretend mozilla
9.本地系统有此软件的预编译包,但是就是想下载网上的预编译包来安装:
emerge --getbinpkgonly mozilla (-G)
10.指定预编译包版本:emerge --usepkg "<mozilla-1.4"
">mozila-1.4"
"=mozilla-1.4"
11.显示所有mozilla依赖的包:emerge --emptytree --pretend mozilla
12.不管依赖条件,尝试强行编译安装包:emerge --nodeps mozilla(可能会失败)
13.删除以安装的包:emerge unmerge mozilla 也可以用emerge -C mozilla
14.假装删除软件看看会删除什么依赖的包:emerge --pretend unmerge mozilla
15.安装被mask掉的软件:#ACCEPT_KETWORDS="~86" emerge mozilla
一個套件會被封鎖註有兩個原因:

你如果正在使用 ARCH,而這個套件是 ~ARCH
這個套件是被刻意鎖住的
如果是这个原因,而你 非常 想要安裝它,你可以暫時的接受 ~ARCH 套件:

Code Listing 34UNDEFINED STRING: 暫時性的接受 ~ARCH 套件

# ACCEPT_KEYWORDS="~x86" emerge gnumeric

一個套件會被刻意鎖住將會被放在 /usr/portage/profiles/protage.mask。如果你查看這個檔案,你將會看到這個套件會被刻意鎖住的原因(常常是加入為註解)。如果你不管其他原因要安裝這個套件(有可能會造成系統極度不穩),你將需要建立一個 /etc/portage/package.unmask 檔案然後按照 /usr/portage/profiles/portage.mask 的格式放入你想要安裝的套件。

請 不要 更改 /usr/portage/profiles/package.mask 檔案,這個檔案會在下次更新 Portage tree 時被?驮H绻阈枰怄i一個套件,建立 /etc/portage/package.mask 然後按照以上?似的格式填入。
每个条目下列的两条指令是等效的,我通常用短的。
options都可以组合使用。

(第一条回楼上同学的问题)
避免升级覆盖掉版本更高的软件

emerge -uU world
emerge --update --upgradeonly world

查找名称包含mozilla的包

emerge -s mozilla
emerge search mozilla

查找描述包含mozilla

emerge -S mozilla
emerge --searchdesc mozilla

使用本地编好的包,没有就下源码(尽量避免编译)

emerge -k mozilla
emerge --usepkg mozilla

只使用本地编好的,否则不安装(绝对不编译,所有依赖的包都有binary才装)

emerge -K mozilla
emerge --usepkgonly mozilla

卸载
emerge -C mozilla
emerge unmerge mozilla

升级portage树

emerge sync

下载snapshot包来完成sync
emerge-webrsync

查看已安装包的changelog

emerge -pl mozilla
emerge --pretend --changelog mozilla

查看依赖关系(这个包还没装)
(--pretend保证这一次操作实际上不做任何事情,可以跟任何options组合)
emerge -p mozilla
emerge --pretend mozilla

只下载某个软件的源码(以及它所依赖的)

emerge -f mozilla
emerge --fetchonly mozilla

查看从哪下的源码

emerge -fp mozilla

安装指定版本号的

emerge "<mozilla-1.6"
emerge "=..........."
.......">..........."

emerge -k "<mozilla-1.6".....


从网上下binary包来装

emerge -g mozilla
emerge --getbinpkg mozilla
(注意,实际上没有任何binary包存在于官方的mirror中
所以这个基本上是无用,在manpage也没有出现。除非自
己用livecd来setup一个这样的站点。不知道以后会不会
出现这样的mirror。gentoo.org论坛上似乎也有讨论这个。)

查看binary包依赖

emerge -gp mozilla
emrege --getbinpkg --pretend mozilla


查看依赖关系(这个包已经装了)

emerge -ep opera
emerge --emptytree --pretend opera
(不用pretend会重新编译这所有依赖的包,glibc因为安全关系没有列出)

不使用依赖关系安装软件

emerge -O opera
emerge --nodeps opera

只安装其依赖的软件
emerge -o opera
emerge --onlydeps opera

升级软件
emerge -u opera
emerge --update opera

升级系统软件

emerge -u system

升级整个系统

emerge -u world

避免升级覆盖掉版本更高的软件

emerge -uU world
emerge --update --upgradeonly world
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics