Gentoo Archives: gentoo-commits

From: "Le Zhang (r0bertz)" <r0bertz@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/proj/zh_cn/portage/doc: manually-fixing-portage.xml
Date: Sun, 30 Mar 2008 20:28:12
Message-Id: E1Jg48O-0007q1-4S@stork.gentoo.org
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