# [gelöst] update Problem

## oliver2104

Hallo,

möchte ein system update machen.

als erstes auf der Liste steht update: net-misc/wget 1.20.1 auf net-misc/wget 1.20.3

OK, Also:

```
>>> Emerging (1 of 1) net-misc/wget-1.20.3::gentoo

 * wget-1.20.3.tar.gz BLAKE2B SHA512 size ;-) ...                                                                                                                   [ ok ]

>>> Unpacking source...

>>> Unpacking wget-1.20.3.tar.gz to /var/tmp/portage/net-misc/wget-1.20.3/work

>>> Source unpacked in /var/tmp/portage/net-misc/wget-1.20.3/work

>>> Preparing source in /var/tmp/portage/net-misc/wget-1.20.3/work/wget-1.20.3 ...
```

usw..., kurz darauf erhalte ich die Fehlermeldung:

```
 checking whether the C compiler works... no

configure: error: in `/var/tmp/portage/net-misc/wget-1.20.3/work/wget-1.20.3':

configure: error: C compiler cannot create executables

See `config.log' for more details

!!! Please attach the following file when seeking support:

!!! /var/tmp/portage/net-misc/wget-1.20.3/work/wget-1.20.3/config.log
```

aber diese Datei existiert bei mir nicht.

es gibt nicht einmal das Verzeichnis /var/tmp/portage/net-misc

```
# ls -la /var/tmp/portage

total 20

drwxrwxr-x 5 portage portage 4096 12. Apr 13:28 .

drwxrwxrwt 6 root    root    4096 10. Apr 12:19 ..

drwxrwxr-x 2 portage portage 4096 12. Apr 13:02 ._unmerge_

drwxrwxr-x 3 portage portage 4096  7. Apr 10:50 dev-libs

drwxrwxr-x 3 portage portage 4096  6. Apr 13:53 kde-frameworks
```

Wohin wird der Source Code jetzt wirklich entpackt ?

Bitte um HilfeLast edited by oliver2104 on Tue Apr 16, 2019 9:13 am; edited 1 time in total

----------

## LuxJux

Was sagt denn dein syslog ?

----------

## oliver2104

Danke, aber ich hab anscheinend ein noch größeres Problem:

```
# gcc

bash: gcc: command not found
```

Ich vermute das hat was mit dem gcc Upgrade auf gcc-8.2.0-r6 zu tun.

```
# gcc-config --list-profiles

 [1] x86_64-pc-linux-gnu-8.2.0 *
```

 Möglicherweise passt auch meine /etc/portage/make.conf CHOST-Variable nicht mehr:

```
CHOST="x86_64-pc-linux-gnu"
```

könnte das schuld sein ?

----------

## mike155

Wenn gcc nicht mehr funktioniert, solltest Du dieses Problem zuerst lösen. Der Fehler beim Installieren von 'wget' ist ein Folgefehler.

Dein CHOST sieht gut aus. Warum sollte der Wert "x86_64-pc-linux-gnu" nicht in Ordnung sein?

Führe bitte folgende Anweisung aus:

```
eselect gcc list
```

Und setze den C-Compiler noch einmal explizit auf GCC 8.2:

```
eselect gcc set 1
```

Es müsste dann folgende Meldung erscheinen:

```
* Switching native-compiler to x86_64-pc-linux-gnu-8.2.0 ... 
```

Dann logge Dich aus und wieder an. Funktioniert gcc jetzt?

Was gibt folgende Anweisung aus?

```
equery k gcc
```

----------

## oliver2104

Wie immer Danke für die Antwort !

Das mit der CHOST-Variable war nur so eine Idee.

Problem ist wirklich gcc und das schaut böse aus.

```
# eselect gcc list

 [1] x86_64-pc-linux-gnu-8.2.0 *
```

```
# eselect gcc set 1

 * Switching native-compiler to x86_64-pc-linux-gnu-8.2.0 ...

/usr/bin/gcc-config: line 215: cd: //usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0: No such file or directory
```

```
# equery k gcc

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/gcc-ranlib does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/gfortran does not exist

!!! /etc/env.d/gcc/x86_64-pc-linux-gnu-8.2.0 has incorrect MD5sum

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/cpp does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/x86_64-pc-linux-gnu-gcc does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/x86_64-pc-linux-gnu-gcc-8.2.0 does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/gcc does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/x86_64-pc-linux-gnu-gcc-nm does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/x86_64-pc-linux-gnu-gcc-ranlib does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/gcov does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/x86_64-pc-linux-gnu-g++ does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/gcc-ar does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/gcov-dump does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/c++ does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/x86_64-pc-linux-gnu-cpp does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/x86_64-pc-linux-gnu-gcov does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/x86_64-pc-linux-gnu-c++ does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/g++ does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/gcov-tool does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/gcc-nm does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/x86_64-pc-linux-gnu-gfortran does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0/x86_64-pc-linux-gnu-gcc-ar does not exist

!!! /usr/x86_64-pc-linux-gnu/gcc-bin/8.2.0 does not exist

* Checking sys-devel/gcc-8.2.0-r6 ...

   1624 out of 1648 files passed
```

Das Verzeichnis /usr/x86_64-pc-linux-gnu gibt es, aber da findet sich inkl. Unterverzeichnisse

nur eine einzige (Link)Datei, 

```
/usr/x86_64-pc-linux-gnu/binutils-bin/lib/bfd-plugins/liblto_plugin.so -> /usr/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/liblto_plugin.so
```

andere Verzeichnisse unter /usr/x86_64-pc-linux-gnu/  gibts gar nicht.

Es scheint als hätte ich gar keinen gcc mehr auf meinem System

----------

## mike155

Das sieht nicht so gut aus... Bei jedem anderen Paket würde ich sagen: neu mit emerge durchcompilieren und installieren. Aber ohne C-Compiler geht das nicht...  :Sad: 

Wie bist Du in diese Situation gekommen? Ist beim letzten Update etwas schief gelaufen? Ist eine Platte vollgelaufen oder gab es fsck-Probleme? Hast Du mit ccache o.ä. experimentiert? 

Hast Du einen zweiten Gentoo Rechner mit gleichem oder ähnlichem Prozessor und USE flags? Dann könntest Du dort mit quickpkg ein gcc Binärpaket erstellen und dann auf dem Problem-Rechner installieren. Danach würde ich gcc auf dem Problem-Rechner noch einmal neu durchcompilieren und installieren.

----------

## oliver2104

 *Quote:*   

> Wie bist Du in diese Situation gekommen? 

 

begonnen hat alles mit einem Kernelupdate auf 4.19.27-gentoo-r1

nach mehreren Versuchen mit verschiedenen Kernel-Optionen,

konnte ich mir endlich einen passenden Kernel erstellen.

Dieser hat gut funktioniert und Update system bzw. world gingen ohne Probleme.

Habe dann ein temporäres Verzeichnis gelöscht, ich glaube es war /usr/tmp 

Dachte das sei ein Überbleibsel vom Kernelupdate.

Auch nachher funktionierte alles wie gewohnt.

bis zum ( erfolgreichen ) update auf sys-libs/glibc-2.28-r6

Ab dann ging nichts mehr was mit dem gcc zu tun hat.

Sonst ist alles in Ordnung, kann aber nichts upgraden oder neu installieren

Einen zweiten Rechner habe ich nicht, aber auf meinem PC gibt es

auf /dev/sdb2 eine ca. 180GB große freie Partition.

Lässt sich damit was machen ?

Oder kann da eine gentoo-live DVD helfen ?

----------

## mike155

Wenn Du eine ähnliche CPU hast wie ich, könnte ich Dir ein GCC Binary Package geben. Ich habe aber nur amd64 ohne multilib. Wenn Du multilib hast, brauchst Du ein Paket von jemand anderem. Das Paket ist knapp 100 MB groß.

Bitte poste die Ausgabe von 'lscpu' und von 'emerge --info'.

Früher gab es eine Tinderbox, von der man sich Pakete laden konnte. Siehe https://forums.gentoo.org/viewtopic-t-801985.html. Ich weiß aber nicht, ob das heute noch funktioniert...

----------

## Josef.95

 *mike155 wrote:*   

> Früher gab es eine Tinderbox [...]

 

Ja, es gibt für solcherlei Notfälle von einem Gentoo-Dev noch einen BinHost mit den wichtigsten Basispaketen.

Da unter /usr/x86_64-pc-linux-gnu/ auch Dateien von binutils liegen, würde ich vorschlagen auch gleich das ebenso wichtige binutils binary mit zu installieren.

```
PORTAGE_BINHOST="http://packages.gentooexperimental.org/packages/amd64-stable/" emerge -av --oneshot --getbinpkgonly binutils gcc
```

 sollte fein funktionieren.

----------

## mike155

 *Josef.95 wrote:*   

> Ja, es gibt für solcherlei Notfälle von einem Gentoo-Dev noch einen BinHost mit den wichtigsten Basispaketen.
> 
> Da unter /usr/x86_64-pc-linux-gnu/ auch Dateien von binutils liegen, würde ich vorschlagen auch gleich das ebenso wichtige binutils binary mit zu installieren.
> 
> ```
> ...

 

Dieser Trick ist Gold wert!

Vielen Dank, josef.95 !!!

----------

## oliver2104

Ein Wunder, es hat auf Anhieb geklappt.

```
PORTAGE_BINHOST="http://packages.gentooexperimental.org/packages/amd64-stable/" emerge -av --oneshot --getbinpkgonly binutils gcc
```

anschließend gcc und binutils neu durchcompiliert.

dann noch ein system- sowie world-update und alles ist gut.

Vielen Dank an mike155 für den Beistand und natürlich an Josef.95 für diese sehr elegante Lösung !!!!

----------

## mike155

Es gibt offenbar noch mehr Fälle, bei denen  der GCC nach einem emerge von glibc nicht mehr funktioniert: https://forums.gentoo.org/viewtopic-t-1095618-highlight-.html

Es scheint ein Bug zu sein. Und zumindest in dem anderen Fall hat eine Neuinstallation von GCC nur bedingt geholfen. Der GCC lief dann, aber nach einem erneuten emerge von glibc war er wieder unbrauchbar...   :Sad: 

----------

## mike155

oliver2104: 

Bitte erstelle ein Binärpaket vom GCC

```
quickpkg gcc
```

und emerge dann die glibc erneut:

```
emerge --oneshot glibc
```

Laut dem anderen Thread tritt der Fehler dann erneut auf. Falls er erneut auftritt, wüssten wir, dass an der glibc etwas nicht stimmt. In diesem Fall könntest Du als Recovery einfach das erstellte GCC Binärpaket wieder installieren.

----------

## oliver2104

OK

```
# quickpkg gcc            

 * Building package for sys-devel/gcc-8.2.0-r6 ...                       [ ok ]

 * Packages now in '/usr/portage/packages':

 * sys-devel/gcc-8.2.0-r6: 150M
```

```
# emerge --oneshot glibc
```

nacher hab ich im Wurzelverzeichnis ein neues tmp mit Inhalt:

```
# ls -la /tmp

total 32

drwxrwxrwt  7 root root 4096 17. Apr 12:59 .

drwxr-xr-x 26 root root 4096 17. Apr 12:55 ..

drwxrwxrwt  2 root root 4096 17. Apr 12:26 .ICE-unix

-r--r--r--  1 root root   11 17. Apr 12:26 .X0-lock

drwxrwxrwt  2 root root 4096 17. Apr 12:26 .X11-unix

drwx------  2 root root 4096 17. Apr 12:27 Temp-8c6c21ed-0d13-482e-ab0e-839389c9db8b

drwx------  2 root root 4096 17. Apr 12:48 mc-root

drwx------  2 root root 4096 17. Apr 12:27 runtime-root
```

nach

```
 # emerge --depclean && revdep-rebuild
```

sieht dieses tpm so aus:

```
 # ls -la /tmp

total 28

drwxrwxrwt  6 root root 4096 17. Apr 13:12 .

drwxr-xr-x 26 root root 4096 17. Apr 12:55 ..

drwxrwxrwt  2 root root 4096 17. Apr 13:10 .ICE-unix

-r--r--r--  1 root root   11 17. Apr 13:11 .X0-lock

drwxrwxrwt  2 root root 4096 17. Apr 13:11 .X11-unix

drwx------  2 root root 4096 17. Apr 13:11 mc-root

drwx------  2 root root 4096 17. Apr 13:12 runtime-root
```

konnte dieses tpm Verzeichnis auch löschen bzw. woanders hin verschieben.

Nach einem Neustart scheint aber alles gut zu funktionieren.

```
# gcc --version

gcc (Gentoo 8.2.0-r6 p1.7) 8.2.0

Copyright (C) 2018 Free Software Foundation, Inc.
```

----------

## mike155

Danke, dass Du 'emerge --oneshot glibc' noch einmal getestet hast! 

Es ist gut, dass der GCC diesmal nicht zerstört wurde und dass Dein System wieder läuft!   :Smile: 

----------

