# 32Bit Anwendung (CoD2) funktioniert plötzlich auf 64Bit nich

## KaterGonzo

Hallo,

ich habe vor ca. 2-3 Jahren ein Gentoo 64-Bit Root-Server für jemanden aufgesetzt. Da es Call Of Duty 2 nur als 32 Bit gibt, hat er damals die 32 Bit Binaries installliert, was funktionierte. Seit dem letzten emerge -uND world starten die Dienste plötzlich nicht mehr. Fehlermeldung:

 *Quote:*   

> # ./cod2_lnxded
> 
> bash: ./cod2_lnxded: No such file or directory

 

Die Dateien sind definitiv physikalisch vorhanden, also sucht er wahrscheinlich nach den 32-Bit Libraries, welche "plötzlich" nicht mehr da zu sein scheinen. Ich habe mir schon die Gentoo 32Bit Chroot-Anleitung durchgelesen und ausprobiert, finde diese Lösung aber irgendwie nicht ganz so toll (komischer Gedanke, zwei Systeme in einem...). Außerdem gab es dort auch Fehlermeldung beim Starten (# ./cod2_lnxded ./cod2_lnxded: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory)

Woran kann das liegen, dass es auf einmal nicht mehr funktioniert? Was konnte durch das letzte Update geändert worden sein? Wie kann ich das Problem lösen? Oder doch lieber eine 32 Bit Installation durchführen?

Hier ein paar Infos:

 *Quote:*   

> # emerge --info                        
> 
> Portage 2.1.6.7 (default/linux/x86/2008.0, gcc-4.1.2, glibc-2.8_p20080602-r1, 2.6.22-gentoo-r9 x86_64)
> 
> =================================================================                                     
> ...

 

 *Quote:*   

> # uname -a
> 
> Linux srv-001 2.6.22-gentoo-r9 #2 SMP Sun Dec 2 12:29:09 GMT 2007 x86_64 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
> 
> 

 

Danke im voraus!!!Last edited by KaterGonzo on Thu May 21, 2009 6:01 pm; edited 1 time in total

----------

## firefly

 *schmidtsmikey wrote:*   

>  *Quote:*   # ./cod2_lnxded
> 
> bash: ./cod2_lnxded: No such file or directory 

 

laut dieser Fehlermeldung findet er die datei cod2_lnxded nicht. Würde eine lib fehlen wäre die Fehlermeldung eine andere.

----------

## KaterGonzo

Diese Datei existiert aber, definitiv. Habe Sie sogar vom Original nochmals in den Pfad hinkopiert.

----------

## Josef.95

Hm.., irgendwie passt da laut deiner "emerge --info" Ausgabe einiges nicht zusammen

Einerseits

2.6.22-gentoo-r9 x86_64)

also ein 64 Bit System

aber mit

CFLAGS="-O2 -march=i686 -pipe"

CHOST="i686-pc-linux-gnu" 

=32 Bit

??

Oder bring ich hier jetzt was durcheinander?

----------

## KaterGonzo

Hmm...ich weiß nicht, was ich da oben gepostet habe, aber habe nochmal emerge --info ausgeführt und den obigen Post korrigiert.

----------

## firefly

 *schmidtsmikey wrote:*   

> Diese Datei existiert aber, definitiv. Habe Sie sogar vom Original nochmals in den Pfad hinkopiert.

 

da sagt die Fehlermeldung etwas anders  :Wink: . Bist du dir sicher, dass du dich nicht verschrieben hast oder dich im richtigen Verzeichnis befindest?

----------

## KaterGonzo

ja, ich bin mir sicher. Siehe folgendes:

 *Quote:*   

> # cd /home/rd/gameserver/COD2b/
> 
> srv COD2b # ls -l
> 
> total 9010
> ...

 

----------

## franzf

Bringt dich auch nicht weiter, aber das ist auch nicht dolle:

```
ACCEPT_KEYWORDS="x86 ~amd64" 
```

Brauchst du sicher auch x86?!?

ACCEPT_KEYWORDS="~amd64" allein ist schon - naja. Löst man besser (vor allem auf nem Server!) mit /etc/portage/package.keywords.

Wenn es das letzte update war, zeig doch mal, was da installiert wurde.

Da gibt es auch oft configs in /etc zu aktualisieren (etc-update, dispatch-conf). Hast du da vllt. Mist gebaut?

Trotzdem bleibt die Fehlermeldung myteriös, denn das File existiert ja, und ist ausführbar...

was sagt ein ldd cod2_lnxded?

----------

## KaterGonzo

Konfig-Files update ich immer.

 *Quote:*   

> # etc-update
> 
> Scanning Configuration files...
> 
> Exiting: Nothing left to do; exiting. 

 

Das ist ja schon etwas komisch...

 *Quote:*   

> # ldd cod2_lnxded
> 
>         not a dynamic executable

 

Das macht der mit allen ausführbaren Dateien

 *Quote:*   

> # ldd cod2cust.sh
> 
>         not a dynamic executable

 

Aber 

 *Quote:*   

> # ls -lsh
> 
> total 44K
> 
>    0 drwxrwxrwx 5 thorn admin  320 Mar  3 20:11 COD2a
> ...

 

----------

## Mr. Anderson

oder sogar noch etwas direkter:

```
strace ./cod2_lnxded
```

bzw. wenn Du die Ausgabe nicht nur für Dich behalten willst:

```
strace ./cod2_lnxded 2>trace
```

und die Datei trace dann hochladen und hier verlinken

----------

## KaterGonzo

Was ist das? Auf einmal kann ich die Dienste auch nicht mehr starten:

 *Quote:*   

> # /etc/init.d/mysql start
> 
> * ERROR: mysql has been started by something else
> 
> websrv-fingerling gameserver # /etc/init.d/mysql restart
> ...

 

 *Quote:*   

>  # /etc/init.d/ntp-client start
> 
> * ERROR: ntp-client has been started by something else
> 
> 

 

----------

## franzf

Entweder

1) Bash aktualisiert und Bug in Bash/Mist in Config

2) Durch "x86"-Keyword und/oder ~amd64 ist dir ein "schlechter" build untergerutscht

z.B. 17 May 2009; Mike Frysinger (vapier) +bash-4.0_p24.ebuild:

3) Du lässt deinen Server immer als root laufen, hängst am Netz und hast dir nen Virus geholt.

Ich tippe auf 1a.

//

 *Quote:*   

> # ldd cod2cust.sh
> 
>         not a dynamic executable

 

Dan schau dir das mal mit $editor an, vllt ist es ein shellscript.

Zeig uns mal, was da beim letzten update installiert wurde...

----------

## Hollowman

Hi

Guck doch ma in dein emerge log file und poste das hier. Dann weiß man was bei dem Update dabei war. Kernel selber gebaut oder genkernel genommen?

Guckst du auch in die config files rein die du updatest?

Und ich würde dir dringen raten auf nem Server der zuverlässig sein muss, dass AceptKeywords weg zu machen und nur stabile Packete zu nehmen. Wenn man dann was unbedingt neueres braucht kann man das immer noch in die package.keywords schreiben

Sebastian

----------

## BlueSkyDriver

 *schmidtsmikey wrote:*   

> Seit dem letzten emerge -uND world starten die Dienste plötzlich nicht mehr. Fehlermeldung:
> 
> 

 

Ein "etc-update" hast Du gemacht?

saludos

andreas

----------

## Max Steel

Zeig uns doch mal die make.conf

Denn wie du opben gezeigt hast ist die CHOST x86, und der Kernel und alles andere x86_64 (AMD64) Das passtz überhaupt nicht zusammen.

Also bevor du irgendwas emergst erstmal diese zeigen.

Hattest du damals zum aufsetzen die richtige stage genutzt für x86_64 (was du anscheinend wolltest), oder hast du die x86 stage genommen.

----------

## ChrisJumper

Was mir grade noch aufgefallen ist, dein Profil zeigt noch auf ein x86-Profil am besten wechselst du auf ein amd64....

```
# ln -snf  /usr/portage/profiles/default/linux/amd64/2008.0 /etc/make.profile

# source /etc/profile

```

----------

