Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Wie compiliert man Software auf einer Distri so, daß sie auch auf einer anderen läuft

  1. #1
    Banned Avatar von Catonga
    Registriert seit
    Nov 1999
    Beiträge
    2.389

    Question Wie compiliert man Software auf einer Distri so, daß sie auch auf einer anderen läuft

    Hallo,


    Ich habe folgendes Problem.

    Ich möchte auf meinem alten 486, auf dem Slackware 7.1 und Kernel 2.2.19 läuft OpenSSH installieren.
    Leider habe ich keinen C Compiler und Entwicklungslibrarys auf diesem Rechner installiert.
    Ganz zu schweigen davon, das das compilieren auf dem Rechner (nur 8 MB Ram) ne Ewigkeit braucht.

    Daher möchte ich OpenSSH auf meinem Client Rechner, Atlhon 500 128 MB compilieren
    und dann die Binarys auf dem 486 installieren.

    Leider habe ich aber auf dem Client Rechner
    Slackware 8.0 installiert, d.h. dort ist eine andere Glibc Version drauf als auf dem 486, ein anderer kernel 2.4.7 und ansonsten hat die sontige Software alle andere Versionsnummern.


    Ist es nun möglich, dennoch fertige Binarys auf dieser Slackware 8.0 Distribution zu erstellen, so daß diese, also die Binarys dann trotzdem auf meinem 486 mit Slackware 7.1 laufen?


    Wie sieht das mit static Librarys anstatt sharded Librays aus, würde es damit gehen?

    Wenn ja, wie gehts das, wie compiliere ich Progamme die static librarys verwenden, was muß ich beachten, wie sieht das mit den Librarys aus, müssen die dann auch auf dem Zielrechner extra installiert werden.
    (openssh benötigt z.b. zlib und openssl)


    Leider habe ich sowas noch nie gemacht,
    wer gut wenn mir jemand darüber mehr
    erzählen könnte.

    Gruß
    Catonga


    PS: Leider gibt auf dem Slackware Server keine OpenSSH pakete für Slackware 7.1 und von linuxmavia und CO möchte ich keine fertig compilierten Binarys aus Sicherheitsgründen nehmen.
    Sollte also schon selber von dem Sourcecode bei www.openssh.org erstellt sein.

    [ 28. Juli 2001: Beitrag editiert von: Catonga ]

  2. #2
    Registrierter Benutzer
    Registriert seit
    Apr 2001
    Ort
    Muenchen
    Beiträge
    88

    Post

    also:

    ja, du kannst statisch gelinkte versionen erstellen.

    ich weiss net genau, wie das mit openssl aussieht, aber ich bin der meinung, wenn du es nur fuer dein openssh brauchst, kannst openssh auf dem athlon statisch linken, dann sollte zlib- sowie openssl-support drin sein, und du die libs nicht extra auf dem 486er brauchen.

    beim kompilieren ist folgendes zu beachten:

    du musst dem athlon sagen, dass er fuer einen 486 code erstellen soll:

    export CFLAGS="-mcpu=i486 -march=i486"
    export CXXFLAGS=$CFLAGS

    dann

    configure --enable-static --disable-shared && make && make install.

    (ja, ich weiss, march und mcpu sind redundant, aber doppelt gemoppelt haelt besser, und schaden tut es nicht ;-)

    die fertige openssh-binary solltest du dann auf den 486er kpopieren koennen. natuerlich musst auch entsprechende config-files (/etc/ssh, oder wo immer du sie hingepackt hast => ./configure --help verraet mehr ueber die optionen) mit kopieren.

    dev0

    [ 29. Juli 2001: Beitrag editiert von: dev0 ]
    Linux is a wigwam - no windows, no gates, apache inside :-)

  3. #3
    OSS Hacker Avatar von Trillian
    Registriert seit
    Apr 2001
    Ort
    Das Fleischhaus
    Beiträge
    1.987

    Post

    Damit hat er aber noch nicht das glibc-Problem überwunden... Und das würde mich auch mal interessieren wie man sowas macht.

  4. #4
    Banned Avatar von Catonga
    Registriert seit
    Nov 1999
    Beiträge
    2.389

    Unhappy

    So, ich habe das jetzt endlich mal testen können, danke erstmal für die Hilfe.

    Leider hat es nicht funktioniert.

    Jetzt bekomme ich wie Trillian gesagt hat ein Problem mit der glibc Version 2.2, welche ja nicht vorhanden ist, bzw, nur in Version 2.1.x vorliegt.


    Desweiteren ist mir noch etwas aufgefallen, und zwar wenn ich
    $ ldd ssh
    eingebe, dann listet der mir einige Librarys auf.

    Wenn das ein statisch gelinktest Programm ist, also ohne shared librarys, warum zeigt mir ldd dann noch solche librarys an?


    Außerdem habe ich noch einen Fehler gefunden , und zwar wenn man das mit ldd macht, dann fehlt ihm eine library namens libcrypto.so.


    Und wenn ich ./configure --help eingebe, finde ich nurgends die Option --enable-static oder --disable-shared bei openssh.
    Kann es sein, das das configure Script von openssh gar keine statischen Librarys vorsieht?

    Und das der Grund ist warum ne library fehlt und ssh nicht läuft?
    Wenn es statisch wäre, so müßte ja alles wie du gesagt hast ins binary gepackt worden sein, was leider net so danach aussieht.


    Gibt es noch andere Möglichkeiten, eine statik Library zu erstellen, oder liegt da irgendwo anders das Problem.

    Und was mach ich mit der Glibc ?
    Ist das ne gute idee, die alte glibc 2.1 Datei einfach mit der neuen meines Athlon rechners zu überschreiben?
    Oder müssen da andere Programme auch noch upgedated werden.
    Die glibc ist doch hoffentlich abwärtskompatibel, oder etwa nicht?

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •