+ -
当前位置:首页 → 问答吧 → emerge 的用法(简明笔记)

emerge 的用法(简明笔记)

时间:2004-03-16

来源:互联网

鉴于很多新手对在gentoo下安装软件问题的理解比较模糊,我把http://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
-------------------------------------------------------------------------------
看了这些相信你对如何emerge一个软件有简单的了解,建议抽一两个晚上去http://www.gentoo.org/doc/tw/handbook耐心翻看getoo官方手册,相信会使你有所收获。

作者: klstg   发布时间: 2004-03-16


一個套件會被封鎖註有兩個原因:

你如果正在使用 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 然後按照以上?似的格式填入。

作者: dreamrise   发布时间: 2004-03-16

#emerge --pretend umerge packagename时以下的依赖包注意不要删除:

* /var/db/pkg
* baselayout
* bash
* binutils
* gcc
* glibc
* python
欢迎补充指正!

作者: klstg   发布时间: 2004-03-17

我的xfree是4.3.99.902-r2,为什么 emerge -u world 时,它会把这个版本
降成xfree-4.3.0-r5 版本?

作者: 565285   发布时间: 2004-03-18

我需要查看我emerge的一个包具体安装了什么文件,或者想要看某一个文件属于哪一个包以方便我卸载,这要怎么做?
我看帮助也没搞定啊。

作者: 樱家冢   发布时间: 2004-03-24

如果要看一个包安装了哪些文件,可以去/var/db/pkg/***/CONTENTS看
如果要看一个文件在哪个包里,用qpkg -f /path/to/file

作者: patientgentoo   发布时间: 2004-03-25

从我的笔记里摘出来,作为对楼主的补充:

每个条目下列的两条指令是等效的,我通常用短的。
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

作者: voovolo   发布时间: 2004-03-26

查看包装了什么文件:

qpkg -l freetype|less

引用:
最初由 樱家冢 发表
我需要查看我emerge的一个包具体安装了什么文件,或者想要看某一个文件属于哪一个包以方便我卸载,这要怎么做?
我看帮助也没搞定啊。

作者: voovolo   发布时间: 2004-03-26

引用:
最初由 voovolo 发表
查看包装了什么文件:

qpkg -l freetype|less
qpkg没有这个文件!

作者: 小锁   发布时间: 2004-05-06

代码:
emerge app-portage/gentookit

作者: maxzhongcn   发布时间: 2004-05-06

谢谢了,又学到东东了

作者: liulijun01   发布时间: 2005-03-22

最新版的2005中怎么没有emerge我把主机网络调完了轮到装软件了emerge提示找不到

作者: dragonchina   发布时间: 2005-06-30

肯定你自己出错

作者: xiaosir   发布时间: 2005-06-30