2017-10-02 4 views
1

Ich versuche glibc 2.23 Quellen zu downloaden und sie auf meinem Ubuntu System zu bauen. Ich brauche diese spezielle Version von Quellen für das Erhalten modifizierte Version von glibc für meine Forschung angepasst zu bauen, und es wird nur innerhalb meiner Forschung Anwendungen verwendet werden, um das Lader Umgebungsvariablen (zum Beispiel LD_PREDLOAD oder LD_LIBRARY_PATH).Wie glibc mit reduzierter Größe zu bauen?

Aber, wenn es wie folgt Bau, habe ich eine große Datei als Ausgang bekam (libc.so wiegt ca. 11 MB):

  • die Quellen zu einem lokalen Verzeichnis herunterladen (sagen wir mal/tmp/glibc/
  • < build-dir> $ ../configure prefix = < build-dir> :)
  • neues Verzeichnis für Build-Ergebnisse (/ tmp/glibc/build) configure von build dir
  • Lauf erstellen Als Ergebnis wird der Build-Prozess libc.so Datei un erzeugen der Build-Dir mit einer Größe von 11MB.

Gibt es sowieso, um die Größe der eingebauten libc.so zu reduzieren?

p.s.

Hier sind meine Systemdetails: Linux Version 4.4.0-93-generisch (buildd @ lgw01-03) (gcc Version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.4)) # 116- Ubuntu SMP Fr 11. August 21.17.51 ​​UTC 2017

Thanks :)

+0

** Warum ** tun Sie GNU libc von der Quelle zu bauen, und warum tun Sie so eine alte Version davon bauen wollen ?? Sie sollten ** Ihre Frage bearbeiten **, um sie zu verbessern und zu motivieren. –

+0

Ich muss es aus der Quelle für die Anpassung von libc Zuordner für meine Bedürfnisse (für eine Forschung, die ich mache) und die eingebaute libc wird nicht als die Standard-libc in meinem System verwendet werden (daher habe ich es in einigen lokalen Build-installiert dir Ordner, der später nur auf meinen Recherchen-Apps verwendet werden soll) –

+0

Das sollte in deine Frage gehen, nicht in einen Kommentar –

Antwort

1

Gebäude glibc von der Quelle könnte eine schlechte Idee sein. Siehe this und einige Kommentare dort. Die derzeitige Version der GNU libc 2.26 ist ... Betrachten Sie stattdessen Ihre gesamte Ubuntu-Distribution Upgrade

../configure --prefix=build-dir

(Ubuntu 17.10 soll in wenigen Wochen, Ende Oktober 2017 veröffentlicht werden) ist ein Missverständnis der Rolle von --prefix in autoconf -ed-Software. Es bezieht sich auf den Speicherort der Software und nicht auf das Build-Verzeichnis.

(und ich weiß nicht genau, was Ihre --prefixlibcist so wichtig zu Ihrem System, da sein sollte, vielleicht sollte es --prefix=/ sein, aber Sie sollten sorgfältig prüfen)

Gibt es eine Möglichkeit zu reduzieren Sie die Größe der gebauten libc.so?

Sie könnten (sehr vorsichtig) strip(1) verwenden, aber Sie riskieren, Ihr System zu brechen.

Und Sie könnten nicht daran interessiert, die Größe von libc zu reduzieren, da es von fast jeder Software auf Ihrem Linux-System (und shared) verwendet wird!

BTW, betrachten Sie auch musl-libc. Es kann gut mit GNU glibc zusammenarbeiten und wird in der Praxis nur von Programmen verwendet, die mit musl-gcc (von ihm bereitgestellt) erstellt wurden.

Wenn Sie etwas Forschung tun, wäre es sinnvoll sein, in einer chroot(2) -ed Umgebung zu arbeiten. Siehe auch schroot. Sie könnten mit Hilfe von make install DESTDIR=/tmp/instmylibc installieren, dann kopieren Sie das /tmp/instmylibc entsprechend. Lesen more about autoconf

PS. Stellen Sie sicher, dass Sie Ihre wichtigen Daten vor solchen gefährlichen Experimenten zumindest sichern. Ich glaube nicht, dass die Größe Ihrer libc.so ein wichtiges Anliegen sein sollte. Aber Sie müssen chroot verwenden, vielleicht mit Hilfe von debootstrap während der Installation der chroot Ed-Umgebung.

+0

Danke @Basile auf deine Antwort. Wie ich oben erwähnt habe, muss ich benutzerdefinierte Bibliotheken für einen Forschungszweck erstellen. Also, bedeutet dies, dass die Standard-glibc, die auf meinem System installiert ist (die etwa 1,8 MB wiegt), entfernt wird? –

Verwandte Themen