1 |
r0bertz 08/03/30 20:28:08 |
2 |
|
3 |
Added: manually-fixing-portage.xml |
4 |
Log: |
5 |
added portage/doc/manually-fixing-portage.xml |
6 |
|
7 |
Revision Changes Path |
8 |
1.1 xml/htdocs/proj/zh_cn/portage/doc/manually-fixing-portage.xml |
9 |
|
10 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/zh_cn/portage/doc/manually-fixing-portage.xml?rev=1.1&view=markup |
11 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/zh_cn/portage/doc/manually-fixing-portage.xml?rev=1.1&content-type=text/plain |
12 |
|
13 |
Index: manually-fixing-portage.xml |
14 |
=================================================================== |
15 |
<?xml version='1.0' encoding="utf-8"?> |
16 |
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/zh_cn/portage/doc/manually-fixing-portage.xml,v 1.1 2008/03/30 20:28:07 r0bertz Exp $ --> |
17 |
<!-- English CVS version: 1.11 --> |
18 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
19 |
|
20 |
<guide link="/proj/zh_cn/portage/doc/manually-fixing-portage.xml" lang="zh_cn"> |
21 |
|
22 |
<title>手动修复破损的portage安装</title> |
23 |
|
24 |
<author> |
25 |
<mail link="genone@g.o">Marius Mauch</mail> |
26 |
</author> |
27 |
<author title="译者"> |
28 |
<mail link="jjj3112007@×××××.com">Zezhou Jiang</mail> |
29 |
</author> |
30 |
<author title="审校"> |
31 |
<mail link="robert.zhangle@×××××.com">张乐</mail> |
32 |
</author> |
33 |
|
34 |
<abstract> |
35 |
希望这个文档可以帮助到那些想要手动修复破损的sys-apps/portage的安装的人。 |
36 |
</abstract> |
37 |
|
38 |
<!-- The content of this document is licensed under the CC-BY-SA license --> |
39 |
<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
40 |
<license/> |
41 |
|
42 |
<version>0.3</version> |
43 |
<date>2007-05-31</date> |
44 |
|
45 |
<chapter> |
46 |
<title>手动修复portage</title> |
47 |
<section> |
48 |
<title>目的</title> |
49 |
<body> |
50 |
|
51 |
<p> |
52 |
这个部分将会告诉你如何在无法运行<c>emerge sys-apps/portage</c>的时候手动升级或修复你的portage安装。虽然这并不难,但你仍然需要很小心地来完成,所以请一步一步跟着以下的指南(在必要的时候用一下常识)。 |
53 |
</p> |
54 |
|
55 |
</body> |
56 |
</section> |
57 |
<section> |
58 |
<title>下载portage压缩包</title> |
59 |
<body> |
60 |
|
61 |
<p> |
62 |
第一步是获取一个最新版本portage的压缩包。在以下的文章中我们使用<e>portage-2.1.1</e>作为一个例子(因为这是在写这篇文章的时候最新的稳定版本),如果可能的话请用软件包树里最新的版本来替换。 |
63 |
</p> |
64 |
|
65 |
<warn> |
66 |
如果你当前安装的python的版本小于2.4的话(你可以使用<c>python -V</c>来查看版本),那么你必须选择一个与之相兼容的portage版本。如果你有一个大于2.3版本的python就使用<e>portage-2.1.1.tar.bz2</e>,如果你有一个2.2版本的python就使用<e>portage-2.0.51.22.tar.bz2</e>。 |
67 |
</warn> |
68 |
|
69 |
<p> |
70 |
在一些特定的情况下,portage虽然损坏但可能还可以为你下载压缩包,所以请先试着运行<c>emerge --fetchonly sys-apps/portage</c>,只有当这个方法行不通的时候,你才必须手动下载压缩包: |
71 |
</p> |
72 |
|
73 |
<pre caption="使用wget下载portage压缩包"> |
74 |
# <i>wget -P /usr/portage/distfiles http://distfiles.gentoo.org/distfiles/portage-2.1.1.tar.bz2</i> |
75 |
</pre> |
76 |
|
77 |
<p> |
78 |
在下载完以后,你应该能在像<path>/usr/portage/distfiles/portage-2.1.1.tar.bz2</path>这样的地方找到portage的压缩包。 |
79 |
</p> |
80 |
|
81 |
</body> |
82 |
</section> |
83 |
<section> |
84 |
<title>替换已安装的版本</title> |
85 |
<body> |
86 |
|
87 |
<p> |
88 |
下一步是下载来的压缩包解压缩到一个临时的位置,如果使用<path>/root/portage-recover</path>这个目录作为一个例子,那么完成这个步骤的命令就是: |
89 |
</p> |
90 |
|
91 |
<pre caption="解压缩portage的压缩包"> |
92 |
# <i>cd /root</i> |
93 |
# <i>mkdir portage-recover</i> |
94 |
# <i>cd portage-recover</i> |
95 |
# <i>tar xfj /usr/portage/distfiles/portage-2.1.1.tar.bz2</i> |
96 |
</pre> |
97 |
|
98 |
<p> |
99 |
在解压缩完以后,你就只要用压缩包里的python和bash文件替换掉已安装版本的文件就行了(不管怎样在大多数情况下是这样的)。请运行: |
100 |
</p> |
101 |
|
102 |
<pre caption="替换已经安装的文件"> |
103 |
# <i>cd /root/portage-recover/portage-2.1.1</i> |
104 |
# <i>cp -R pym bin /usr/lib/portage/</i> |
105 |
</pre> |
106 |
|
107 |
<p> |
108 |
如果你不是在FreeBSD上使用Gentoo,那么你就要移除sed wrapper脚本,因为我们已经不再需要它了,而且已知它和老版本的bash一起使用会造成许多问题: |
109 |
</p> |
110 |
|
111 |
<pre caption="移除sed wrapper脚本"> |
112 |
# <i>rm -f /usr/lib/portage/bin/sed</i> |
113 |
</pre> |
114 |
|
115 |
<note> |
116 |
如果你之前不小心unmerge了portage或者因为其他原因丢失了<path>/etc/make.globals</path>,你也应该复制<path>cnf/make.globals</path>到<path>/etc</path>目录里,否则portage可能会有一些很奇怪的错误。 |
117 |
</note> |
118 |
|
119 |
<note> |
120 |
如果前一个版本的portage是低于2.1的,那么你就需要在继续下一步之前运行<c>emerge --metadata</c>。这是必要的,因为它会把ebuild的metadata转换成portage2.1或以上版本所使用的新格式。如果你不确定上一个版本的poratge版本号,你运行这个命令也没有什么大碍。 |
121 |
</note> |
122 |
|
123 |
<p> |
124 |
现在你应该又有了一个能运行的portage。为了确定现在你的系统是处于一个稳定的状态,你需要立刻再次运行<c>emerge sys-apps/portage</c>。 |
125 |
</p> |
126 |
|
127 |
<p> |
128 |
当你试着运行<c>emerge</c>命令的时候,如果你得到一个<e>command not found</e>的错误信息,你必须重新创建链接: |
129 |
</p> |
130 |
|
131 |
<pre caption="重新创建emerge的链接"> |
132 |
# <i>ln -s ../lib/portage/bin/emerge /usr/bin/emerge</i> |
133 |
</pre> |
134 |
|
135 |
<p> |
136 |
如果这些步骤对你的问题(比如说不是一个破损的portage安装而是其他的在这个文档范围之外的问题)不起作用的话。请重新查看<uri link="/proj/en/portage/doc/common-problems.xml">常见问题列表</uri>,你还可以查看<uri link="http://bugs.gentoo.org">bugzilla</uri>,这里可能有一些Bug的报告。 |
137 |
</p> |
138 |
|
139 |
</body> |
140 |
</section> |
141 |
</chapter> |
142 |
</guide> |
143 |
|
144 |
|
145 |
|
146 |
-- |
147 |
gentoo-commits@l.g.o mailing list |