1 |
chiguire 11/11/01 12:46:20 |
2 |
|
3 |
Added: gcc-upgrading-upto-4.1.xml |
4 |
Log: |
5 |
old version of doc |
6 |
|
7 |
Revision Changes Path |
8 |
1.1 xml/htdocs/doc/es/gcc-upgrading-upto-4.1.xml |
9 |
|
10 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/es/gcc-upgrading-upto-4.1.xml?rev=1.1&view=markup |
11 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/es/gcc-upgrading-upto-4.1.xml?rev=1.1&content-type=text/plain |
12 |
|
13 |
Index: gcc-upgrading-upto-4.1.xml |
14 |
=================================================================== |
15 |
<?xml version='1.0' encoding="UTF-8"?> |
16 |
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/es/gcc-upgrading-upto-4.1.xml,v 1.1 2011/11/01 12:46:20 chiguire Exp $ --> |
17 |
|
18 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
19 |
|
20 |
<guide lang="es"> |
21 |
<title>Guía Gentoo de actualización del GCC hasta versión 4.1</title> |
22 |
|
23 |
<author title="Autor"> |
24 |
<mail link="amne@g.o">Wernfried Haas</mail> |
25 |
</author> |
26 |
<author title="Autor"> |
27 |
<mail link="jkt@g.o">Jan Kundrát</mail> |
28 |
</author> |
29 |
<author title="Editor"> |
30 |
<mail link="halcy0n"/> |
31 |
</author> |
32 |
<author title="Editor"> |
33 |
<mail link="nightmorph"/> |
34 |
</author> |
35 |
<author title="Traductor"> |
36 |
<mail link="chiguire"/> |
37 |
</author> |
38 |
<author title="Traductor"> |
39 |
<mail link="anpereir@g.o">Andrés Pereira</mail> |
40 |
</author> |
41 |
<author title="Traductor"> |
42 |
<mail link="srinclan@×××××.com">Sergio D. Rodríguez Inclan</mail> |
43 |
</author> |
44 |
|
45 |
<abstract> |
46 |
Este documento guiará al usuario en el proceso de actualización de GCC. |
47 |
</abstract> |
48 |
|
49 |
<!-- The content of this document is licensed under the CC-BY-SA license --> |
50 |
<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
51 |
<license/> |
52 |
|
53 |
<version>23</version> |
54 |
<date>2008-07-19</date> |
55 |
|
56 |
<chapter id="intro"> |
57 |
<title>Introducción</title> |
58 |
<section> |
59 |
<title>Actualización de GCC</title> |
60 |
<body> |
61 |
|
62 |
<p> |
63 |
¿Por que debería actualizar? Bueno, GCC es muy similar a cualquier |
64 |
otro paquete en su sistema, pero un poco más crítico. Debería |
65 |
actualizar GCC en caso de que una nueva versión corrija algún bug que |
66 |
le moleste, se añada una nueva funcionalidad que necesita o si quiere |
67 |
mantener su sistema al día. Si ninguno de los casos mencionados le |
68 |
afecta, puede postergar con seguridad la actualización mientras que su |
69 |
versión de GCC esté soportada por los desarrolladores de Gentoo. |
70 |
</p> |
71 |
|
72 |
<p> |
73 |
Si instala una nueva versión de GCC (como de 3.3.6 a 3.4.5), el |
74 |
sistema no hará uso de ella automáticamente. Tiene que pedir |
75 |
explícitamente el cambio porque el proceso de migración puede que tome |
76 |
algunos pasos adicionales. Si decide no realizar el cambio, Portage |
77 |
continuará usando la versión antigua de su compilador hasta que cambie |
78 |
de parecer o borre el compilador antiguo del sistema. Las |
79 |
actualizaciones no críticas del gcc se hará automáticamente (por |
80 |
ejemplo de 3.4.5 a 3.4.6). |
81 |
</p> |
82 |
|
83 |
<p> |
84 |
Esta guía documentará los pasos necesarios para llevar a cabo una |
85 |
actualización sin contratiempos del compilador usado por su sistema |
86 |
Gentoo. Se dedica una sección específica a la <uri |
87 |
link="#upgrade-3.3-to-3.4">actualización de GCC 3.3 a la versión 3.4 o |
88 |
versiones superiores</uri> y problemas con <c>libstdc++</c>. Hay una |
89 |
segunda sección específica destinada a los usuarios que <uri |
90 |
link="#first-install">instalan Gentoo por primera vez</uri> a partir |
91 |
de stage3 tras haberse liberado una nueva versión principal o no de |
92 |
GCC. |
93 |
</p> |
94 |
|
95 |
<warn> |
96 |
Note que actualizar desde GCC-3.4 a GCC-4.1 o superior todavía requiere |
97 |
que siga las instrucciones generales de actualización pues GCC-3.4 y GCC-4.1 |
98 |
usan ABIs (Interfaz de Aplicación Binaria) ligeramente diferentes |
99 |
</warn> |
100 |
</body> |
101 |
</section> |
102 |
</chapter> |
103 |
|
104 |
<chapter id="upgrade-general"> |
105 |
<title>Instrucciones generales de actualización</title> |
106 |
<section> |
107 |
<title>Introducción</title> |
108 |
<body> |
109 |
|
110 |
<impo> |
111 |
Si está buscando instrucciones específicas para actualizaciones de |
112 |
GCC-3.3 a GCC-3.4 o superior, por favor consulte la <uri |
113 |
link="#upgrade-3.3-to-3.4">sección dedicada</uri>. |
114 |
</impo> |
115 |
|
116 |
<impo> |
117 |
Si está buscando instrucciones específicas para actualizar GCC en |
118 |
instalaciones nuevas, por favor consulte la <uri link="#first-install"> |
119 |
sección dedicada</uri>. |
120 |
</impo> |
121 |
|
122 |
<p> |
123 |
Generalmente hablando, las actualizaciones a <e>versiones que incluyen |
124 |
correcciones de bugs</e>, como de la 3.3.5 a la 3.3.6, deberían ser |
125 |
bien seguras -- tan solo instale la nueva versión, haga que su sistema |
126 |
la use y recompile el único paquete que se ve afectado, |
127 |
<c>libtool</c>. Sin embargo, algunas actualizaciones de GCC hacen que |
128 |
se corrompa la compatibilidad binaria, en tales casos puede que se |
129 |
necesite una recompilación de los paquetes afectados (o incluso todo |
130 |
el conjunto de herramientas y paquetes centrales (system)). |
131 |
</p> |
132 |
|
133 |
<p> |
134 |
Cuando hablábamos acerca de la necesidad de cambiar su compilador a una |
135 |
versión nueva, dijimos que no sucedería automáticamente. No obstante, |
136 |
hay una excepción -- las actualizaciones a versiones que corrigen bugs, como |
137 |
de la 3.3.5 a la 3.3.6, en cuyo caso no utiliza la característica de "multislot" |
138 |
que les permite coexistir en el mismo sistema. Multislot está desactivado por |
139 |
defecto ya que la mayoría de los usuarios no se beneficiará de este. |
140 |
</p> |
141 |
|
142 |
<pre caption="Actualizar GCC"> |
143 |
# <i>emerge -uav gcc</i> |
144 |
|
145 |
<comment>(Por favor reemplace "i686-pc-linux-gnu-4.1.1" con la versión de |
146 |
GCC y configuraciones del CHOST a las que se ha actualizado:)</comment> |
147 |
# <i>gcc-config i686-pc-linux-gnu-4.1.1</i> |
148 |
# <i>source /etc/profile</i> |
149 |
|
150 |
<comment>Si ha actualizado de gcc 3 a 4 (por ejemplo, como acá de 3.4.6 a 4.1.1) tendrá que ejecutar fix_libtool_files.sh a mano</comment> |
151 |
<comment>(Reemplace $CHOST con su CHOST actual, ubicado en /etc/make.conf)</comment> |
152 |
<comment>(Reemplace <gcc-version> con su nueva versión de GCC actualizada)</comment> |
153 |
# <i>/usr/share/gcc-data/$CHOST/<gcc-version>/fix_libtool_files.sh 3.4.6</i> |
154 |
|
155 |
<comment>(Recompilando libtool)</comment> |
156 |
# <i>emerge --oneshot -av libtool</i> |
157 |
</pre> |
158 |
|
159 |
<p> |
160 |
Para estar completamente seguro que su sistema está en un estado |
161 |
seguro, <e>deberá</e> recompilar el toolchain y luego el sistema |
162 |
completo (world) para hacer uso del nuevo compilador. |
163 |
</p> |
164 |
|
165 |
<pre caption="Recompilar el sistema"> |
166 |
# <i>emerge -eav system</i> |
167 |
# <i>emerge -eav world</i> |
168 |
</pre> |
169 |
|
170 |
<p> |
171 |
Es seguro borrar la versión antigua de GCC en este momento. Si siente |
172 |
la necesidad, por favor ejecute el siguiente comando (como siempre, |
173 |
substituya <c>=sys-devel/gcc-3.4*</c> con la versión de GCC que quiere |
174 |
desinstalar): |
175 |
</p> |
176 |
|
177 |
<pre caption="Borrar versiones viejas de GCC"> |
178 |
# <i>emerge -aC =sys-devel/gcc-3.3*</i> |
179 |
</pre> |
180 |
|
181 |
<impo> |
182 |
Por favor note que el GCC 4.1 y versiones nuevas solo pueden compilar |
183 |
núcleos más recientes que 2.4.34. No borre su gcc viejo si desea usar un |
184 |
núcleo viejo. |
185 |
</impo> |
186 |
|
187 |
<impo> <!-- FIXME: do we really want to keep it here? --> |
188 |
En caso de estar actualizando de GCC-3.3, debería ejecutar |
189 |
<c>emerge --oneshot sys-libs/libstdc++-v3</c> para proporcionar |
190 |
compatibilidad con aplicaciones binarias más viejas en C++. |
191 |
</impo> |
192 |
</body> |
193 |
</section> |
194 |
</chapter> |
195 |
|
196 |
<chapter id="upgrade-3.3-to-3.4"> |
197 |
<title>Actualizando GCC-3.3 al 3.4</title> |
198 |
<section> |
199 |
<title>Introducción</title> |
200 |
<body> |
201 |
|
202 |
<p> |
203 |
La actualización de GCC/3.3 al 3.4 no es tan perfecta como uno |
204 |
quisiera puesto que la ABI (Interfaz de Aplicación Binaria) de C++ |
205 |
cambió entre ambas versiones. Existe un problema con la biblioteca |
206 |
<c>libstdc++</c> de la que también tendremos que ocuparnos. |
207 |
</p> |
208 |
</body> |
209 |
</section> |
210 |
|
211 |
<section id="upgrade-3.3-to-3.4-choices"> |
212 |
<title>Las opciones</title> |
213 |
<body> |
214 |
|
215 |
<impo> |
216 |
Si actualiza del gcc 3.4 al 4.1, por favor consulte las <uri |
217 |
link="#upgrade-general">Instrucciones Generales de Actualización</uri>. |
218 |
</impo> |
219 |
|
220 |
<impo> |
221 |
Si está haciendo la actualización en una máquina SPARC, tendrá que |
222 |
hacer la <uri link="#upgrade-3.3-to-3.4-emerge-e">recompilación |
223 |
completa del sistema</uri> debido a ciertos <uri |
224 |
link="http://gcc.gnu.org/gcc-3.4/sparc-abi.html"> cambios internos de |
225 |
la ABI</uri> en el paso de parámetros de GCC. |
226 |
</impo> |
227 |
|
228 |
<p> |
229 |
Si actualiza del gcc 3.3 al 3.4, tiene dos posibilidades para |
230 |
actualizar su sistema. El <uri |
231 |
link="#upgrade-3.3-to-3.4-revdep-rebuild">primer método</uri> es más |
232 |
rápido y requiere del uso de la herramienta <c>revdep-rebuild</c> que |
233 |
es parte del paquete <c>gentoolkit</c> mientras que el <uri |
234 |
link="#upgrade-3.3-to-3.4-emerge-e">segundo método</uri> recompila su |
235 |
sistema por completo de forma de hacer uso de las nuevas |
236 |
características de GCC. Es su decisión escoger cuál de los métodos va |
237 |
a seguir. En la mayoría de los casos, el primer método es suficiente. |
238 |
</p> |
239 |
|
240 |
<p> |
241 |
Si actualiza del gcc 3.3 al 4.1, no utilice el método basado en |
242 |
revdep-rebuild, sino una <uri |
243 |
link="#upgrade-3.3-to-3.4-emerge-e">reconstrucción completa del |
244 |
sistema</uri>. |
245 |
</p> |
246 |
</body> |
247 |
</section> |
248 |
|
249 |
<section id="upgrade-3.3-to-3.4-revdep-rebuild"> |
250 |
<title>Usando revdep-rebuild</title> |
251 |
<body> |
252 |
|
253 |
<p> |
254 |
Este método necesita que primero instale <c>gentoolkit</c> si es que ya no lo |
255 |
ha hecho. Luego actualizaremos GCC y cambiaremos al nuevo compilador. También |
256 |
recompilaremos el paquete <c>libtool</c> para asegurarnos que el toolchain se |
257 |
encuentre en un estado saludable. |
258 |
</p> |
259 |
|
260 |
<pre caption="Instalar gentoolkit y actualizar GCC"> |
261 |
# <i>emerge -an gentoolkit</i> |
262 |
# <i>emerge -uav gcc</i> |
263 |
<comment>(Por favor reemplace "i686-pc-linux-gnu-3.4.5" con la versión de GCC |
264 |
GCC y configuraciones del CHOST a las que se ha actualizado:)</comment> |
265 |
# <i>gcc-config i686-pc-linux-gnu-3.4.5</i> |
266 |
# <i>source /etc/profile</i> |
267 |
|
268 |
<comment>(Recompilando libtool)</comment> |
269 |
# <i>emerge --oneshot -av libtool</i> |
270 |
</pre> |
271 |
|
272 |
<p> |
273 |
Ahora queremos ver qué paquetes revdep-rebuild querrá |
274 |
reconstruir. Luego le diremos a revdep-rebuild que recompile dichos |
275 |
paquetes. Esto puede tomar algo de tiempo, así que tenga paciencia. |
276 |
</p> |
277 |
|
278 |
<pre caption="Usar revdep-rebuild"> |
279 |
# <i>revdep-rebuild --library libstdc++.so.5 -- -p -v</i> |
280 |
# <i>revdep-rebuild --library libstdc++.so.5</i> |
281 |
</pre> |
282 |
|
283 |
<note> |
284 |
Es posible que tenga problemas con versiones de paquetes inexistentes debido a |
285 |
que estén enmascarados o sean antiguos. Si este es el caso, tendrá que usar la |
286 |
opción <c>--package-names</c> de <c>revdep-rebuild</c>. Esto hace que los |
287 |
paquetes sean recompilados basados en su nombre en vez de la versión y nombre |
288 |
exacto. |
289 |
</note> |
290 |
|
291 |
<p> |
292 |
Para tener compatibilidad con aplicaciones binarias antiguas en C++ y |
293 |
cualquiera de los paquetes que revdep-rebuild puede haberse saltado, el paquete |
294 |
<c>sys-libs/libstdc++-v3</c> tiene que ser instalado antes de que desinstale |
295 |
GCC 3.3 de su sistema. |
296 |
</p> |
297 |
|
298 |
<pre caption="Instalar libstdc++-v3 y desinstalar GCC 3.3"> |
299 |
# <i>emerge --oneshot sys-libs/libstdc++-v3</i> |
300 |
# <i>emerge -aC =sys-devel/gcc-3.3*</i> |
301 |
</pre> |
302 |
</body> |
303 |
</section> |
304 |
|
305 |
<section id="upgrade-3.3-to-3.4-emerge-e"> |
306 |
<title>Usar emerge -e</title> |
307 |
<body> |
308 |
|
309 |
<p> |
310 |
Este método, aunque es mucho más lento, recompila todo su sistema para asegurar |
311 |
que todo se haya recompilado con su nuevo compilador, y por tanto, es más |
312 |
seguro. Primero, actualice GCC y libtool y cámbiese a su nuevo compilador. |
313 |
</p> |
314 |
|
315 |
<pre caption="Actualizar GCC"> |
316 |
# <i>emerge -uav gcc</i> |
317 |
<comment>(Por favor reemplace "i686-pc-linux-gnu-3.4.5" con la versión de GCC |
318 |
GCC y configuraciones del CHOST a las que se ha actualizado:)</comment> |
319 |
# <i>gcc-config i686-pc-linux-gnu-3.4.5</i> |
320 |
# <i>source /etc/profile</i> |
321 |
|
322 |
<comment>Si actualizó del gcc 3 al 4 (por ejemplo, del 3.3.6 al 4.1.1 en este caso) tendrá que ejecutar fix_libtool_files.sh manualmente</comment> |
323 |
<comment>(Reemplace $CHOST con su CHOST actual, ubicado en /etc/make.conf)</comment> |
324 |
<comment>(Reemplace <gcc-version> con su nueva versión de GCC actualizada)</comment> |
325 |
# <i>/usr/share/gcc-data/$CHOST/<gcc-version>/fix_libtool_files.sh 3.3.6</i> |
326 |
|
327 |
<comment>(Recompilando libtool)</comment> |
328 |
# <i>emerge --oneshot -av libtool</i> |
329 |
</pre> |
330 |
|
331 |
<p> |
332 |
Para tener compatibilidad con aplicaciones binarias antiguas en C++ el paquete |
333 |
<c>sys-libs/libstdc++-v3</c> tiene que ser instalado en su sistema. |
334 |
</p> |
335 |
|
336 |
<pre caption="Instalar libstdc++-v3"> |
337 |
# <i>emerge --oneshot sys-libs/libstdc++-v3</i> |
338 |
</pre> |
339 |
|
340 |
<p> |
341 |
Ahora primero recompilaremos los paquetes centrales (system) y luego el sistema |
342 |
completo (world). Esto va a tomar mucho tiempo dependiendo del número de |
343 |
paquetes que tenga instalado, pues recompilará el toolchain entero y los |
344 |
archivos de apoyo del sistema, seguido de cada paquete existente en su sistema. |
345 |
Esto es necesario para asegurar que todos los paquetes hayan sido compilados con |
346 |
el nuevo toolchain, incluyendo el propio toolchain también. |
347 |
</p> |
348 |
|
349 |
<pre caption="Recompilar system y world"> |
350 |
# <i>emerge -e system</i> |
351 |
# <i>emerge -e world</i> |
352 |
</pre> |
353 |
|
354 |
<p> |
355 |
También es seguro borrar las versiones antiguas de GCC en este momento. |
356 |
</p> |
357 |
|
358 |
<pre caption="Limpiar el sistema"> |
359 |
# <i>emerge -aC =sys-devel/gcc-3.3*</i> |
360 |
</pre> |
361 |
</body> |
362 |
</section> |
363 |
</chapter> |
364 |
|
365 |
<chapter id="first-install"> |
366 |
<title>Actualizar GCC en una primera instalación</title> |
367 |
<section> |
368 |
<title>Introducción</title> |
369 |
<body> |
370 |
|
371 |
<p> |
372 |
La actualización de GCC tras haber instalado un sistema a partir de |
373 |
stage3 es un asunto sencillo. Una de las ventajas que tienen los |
374 |
usuarios de instalaciones nuevas es que no tienen una gran cantidad de |
375 |
software instalado que enlace contra la versión antigua de GCC. El |
376 |
siguiente ejemplo es para una actualización de GCC-3.3 a 3.4. Ciertas |
377 |
partes serán diferentes si actualiza desde otras versiones de GCC. Por |
378 |
ejemplo, los nombres de las bibliotecas usados más abajo por |
379 |
<c>revdep-rebuild</c> son específicas a GCC-3.3, así como la necesidad |
380 |
de instalar <c>libstdc++-v3</c>. |
381 |
</p> |
382 |
|
383 |
<p> |
384 |
Si no ha hecho personalizaciones a su sistema, entonces hay que seguir unos |
385 |
pocos pasos para que este quede actualizado a la nueva versión de GCC. Tal como |
386 |
con la actualización de GCC-3.3 a 3.4, hay dos opciones posibles. No obstante, |
387 |
a diferencia de la actualización de GCC-3.3 a 3.4, esta es menos complicada ya |
388 |
que hay pocas diferencias entre ambos métodos. El <uri |
389 |
link="#first-install-revdep-rebuild">primer método</uri> es más rápido y hace |
390 |
uso de la herramienta <c>revdep-rebuild</c> que es parte de <c>gentoolkit</c>, |
391 |
similar al procedimiento descrito arriba. Usar revdep-rebuild hace que |
392 |
se recompilen solamente los paquetes que realmente están enlazados contra las |
393 |
bibliotecas de GCC, mientras que el <uri link="#first-install-emerge-e"> |
394 |
segundo método</uri> hace que su nueva instalación se recompile por completo |
395 |
usando la nueva versión de GCC y por tanto, toma mucho más tiempo. Este segundo |
396 |
método nunca se necesita y está documentado solo por completitud. |
397 |
</p> |
398 |
|
399 |
<p> |
400 |
Los primeros pasos son comunes a ambos métodos, y deberían ser llevados a cabo |
401 |
por todos los usuarios. |
402 |
</p> |
403 |
|
404 |
<pre caption="Actualizar GCC"> |
405 |
# <i>emerge -uav gcc</i> |
406 |
<comment>(Por favor reemplace "i686-pc-linux-gnu-3.4.5" con la versión de GCC |
407 |
GCC y configuraciones del CHOST a las que se ha actualizado:)</comment> |
408 |
# <i>gcc-config i686-pc-linux-gnu-3.4.5</i> |
409 |
# <i>source /etc/profile</i> |
410 |
|
411 |
<comment>(Recompilar libtool)</comment> |
412 |
# <i>emerge --oneshot -av libtool</i> |
413 |
</pre> |
414 |
|
415 |
<p> |
416 |
Para tener compatibilidad con aplicaciones binarias antiguas en C++ el paquete |
417 |
<c>sys-libs/libstdc++-v3</c> tiene que ser instalado en su sistema. |
418 |
</p> |
419 |
|
420 |
<pre caption="Instalar libstdc++-v3"> |
421 |
# <i>emerge --oneshot sys-libs/libstdc++-v3</i> |
422 |
</pre> |
423 |
</body> |
424 |
</section> |
425 |
|
426 |
<section id="first-install-revdep-rebuild"> |
427 |
<title>Usar revdep-rebuild</title> |
428 |
<body> |
429 |
|
430 |
<p> |
431 |
Este método necesita que primero instale <c>gentoolkit</c> si es que ya no lo |
432 |
ha hecho. Ejecutaremos <c>revdep-rebuild</c> para revisar los paquetes |
433 |
instalados y así ver aquellos que necesitamos recompilar, luego los |
434 |
recompilaremos. |
435 |
</p> |
436 |
|
437 |
<pre caption="Instalar gentoolkit y ejecutar revdep-rebuild"> |
438 |
# <i>emerge -an gentoolkit</i> |
439 |
# <i>revdep-rebuild --library libstdc++.so.5 -- -p -v</i> |
440 |
# <i>revdep-rebuild --library libstdc++.so.5</i> |
441 |
</pre> |
442 |
|
443 |
<note> |
444 |
Es posible que tenga problemas con versiones de paquetes inexistentes debido |
445 |
a que están desactualizados o enmascarados. Si este es el caso, tendrá que usar |
446 |
la opción <c>--package-names</c> de <c>revdep-rebuild</c>. Esto provoca que |
447 |
los paquetes sean recompilados de acuerdo al nombre en vez de su nombre y |
448 |
versión exactos. |
449 |
</note> |
450 |
</body> |
451 |
</section> |
452 |
|
453 |
<section id="first-install-emerge-e"> |
454 |
<title>Usar emerge -e</title> |
455 |
<body> |
456 |
|
457 |
<p> |
458 |
Este método, aunque es mucho más lento, recompila todo el sistema para asegurar |
459 |
que todo se haya recompilado con su nuevo compilador. Esto no es necesario, |
460 |
pero es válido si también está haciendo cambios a sus CFLAGS u otras variables |
461 |
del fichero make.conf que causarán efecto en la compilación del sistema. |
462 |
</p> |
463 |
|
464 |
<p> |
465 |
Debido a que estamos llevando a cabo esas acciones después de una instalación |
466 |
inicial, no hay necesidad de recompilar todo el sistema (<c>world</c>) tal como |
467 |
lo haríamos en una actualización de un sistema ya en funcionamiento. Sin |
468 |
embargo, puede hacer una actualización completa en vez de actualizar los |
469 |
paquetes centrales (system), para asegurarse que todos los paquetes están |
470 |
actualizados. |
471 |
</p> |
472 |
|
473 |
<pre caption="Recompilar los paquetes centrales (system)"> |
474 |
# <i>emerge -e system</i> |
475 |
</pre> |
476 |
</body> |
477 |
</section> |
478 |
|
479 |
<section id="first-install-cleaning-up"> |
480 |
<title>Limpiando el sistema</title> |
481 |
<body> |
482 |
|
483 |
<p> |
484 |
También es seguro quitar las versiones antiguas de GCC en este paso. Por favor, |
485 |
substituya <c>SU-NUEVA-VERSION-DE-GCC</c> con la versión real a la cual se |
486 |
actualizó: |
487 |
</p> |
488 |
|
489 |
<pre caption="Limpiar"> |
490 |
# <i>emerge -aC "<sys-devel/gcc-SU-NUEVA-VERSION-DE-GCC"</i> |
491 |
</pre> |
492 |
</body> |
493 |
</section> |
494 |
</chapter> |
495 |
|
496 |
<chapter id="common-pitfalls"> |
497 |
<title>Errores comunes</title> |
498 |
<section> |
499 |
<body> |
500 |
|
501 |
<p> |
502 |
Es importante que desactive <c>distcc</c> durante la actualización. Mezclar |
503 |
versiones de compiladores en sus nodos <e>provocará</e> dificultades. Este no |
504 |
se necesita para ccache pues los objetos de éste serán invalidados de |
505 |
cualquier modo. |
506 |
</p> |
507 |
|
508 |
<p> |
509 |
Siempre use la misma versión de GCC para su núcleo y módulos adicionales |
510 |
de este. Una vez que recompile su sistema completo (world) con el nuevo GCC, |
511 |
los módulos externos (como <c>app-emulation/qemu-softmmu</c>) no funcionarán |
512 |
al cargarse. Por favor, recompile su núcleo con el nuevo GCC para corregir |
513 |
aquello. |
514 |
</p> |
515 |
|
516 |
<p> |
517 |
Si está actualizando en una máquina SPARC, asegúrese de ejecutar <c>silo -f</c> |
518 |
luego de haber completado la actualización completa del sistema (world) para |
519 |
evitar posibles problemas. |
520 |
</p> |
521 |
</body> |
522 |
</section> |
523 |
|
524 |
<section> |
525 |
<title>Mensajes de error frecuentes</title> |
526 |
<body> |
527 |
|
528 |
<p> |
529 |
Si su sistema se queja de algo como: <e>libtool: link: |
530 |
`/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/libstdc++.la' is not a valid libtool |
531 |
archive</e>, por favor ejecute |
532 |
<c>/usr/share/gcc-data/$CHOST/<gcc-version>/fix_libtool_files.sh 3.3.6</c> |
533 |
(substituya "3.3.6" con el número de versión que sale en el mensaje de |
534 |
error también $CHOST y <gcc-version> con sus versiones actuales de CHOST |
535 |
y GCC). |
536 |
</p> |
537 |
|
538 |
<p> |
539 |
Si observa <e>error: /usr/bin/gcc-config: line 632: |
540 |
/etc/env.d/gcc/i686-pc-linux-gnu-3.3.5: No such file or directory</e>, entonces |
541 |
intente borrar <path>/etc/env.d/gcc/config-i686-pc-linux-gnu</path> y ejecute |
542 |
<c>gcc-config</c> nuevamente, seguido por <c>source /etc/profile</c>. |
543 |
Solamente haga esto si no tiene configurado algún compilador cruzado. |
544 |
</p> |
545 |
|
546 |
<p> |
547 |
Si un paquete falla durante <c>emerge -e system</c> o <c>emerge -e world </c>, |
548 |
puede reanudar la operación con <c>emerge --resume</c>. Si un paquete falla |
549 |
repetidamente, sáltelo con <c>emerge --resume --skipfirst</c>. No ejecute otras |
550 |
instancias de emerge entre medio o perderá toda la información para reanudar. |
551 |
</p> |
552 |
|
553 |
<p> |
554 |
Si obtiene el mensaje de error <e>spec failure: unrecognized spec option</e> |
555 |
mientras actualiza su compilador, intente volver a su compilador por defecto, |
556 |
deshabilite la variable de entorno <c>GCC_SPECS</c> y actualice |
557 |
nuevamente GCC: |
558 |
</p> |
559 |
|
560 |
<pre caption="Recuperar las specs principales"> |
561 |
# <i>gcc-config 1</i> |
562 |
# <i>source /etc/profile</i> |
563 |
# <i>unset GCC_SPECS</i> |
564 |
# <i>emerge -uav gcc</i> |
565 |
</pre> |
566 |
</body> |
567 |
</section> |
568 |
</chapter> |
569 |
</guide> |