OnWorks Linux- und Windows-Online-WorkStations

Logo

Kostenloses Online-Hosting für WorkStations

<Zurück | Inhalte | Weiter>

6.54.1. Installation von Coreutils

POSIX erfordert, dass Programme von Coreutils Zeichengrenzen auch in Multibyte-Gebietsschemata korrekt erkennen. Der folgende Patch behebt diese Nichteinhaltung und andere Fehler im Zusammenhang mit der Internationalisierung.


patch -Np1 -i ../coreutils-8.31-i18n-1.patch

patch -Np1 -i ../coreutils-8.31-i18n-1.patch


Note

In der Vergangenheit wurden in diesem Patch viele Fehler gefunden. Wenn Sie den Coreutils-Betreuern neue Fehler melden, prüfen Sie bitte zunächst, ob diese ohne diesen Patch reproduzierbar sind.

Note

In der Vergangenheit wurden in diesem Patch viele Fehler gefunden. Wenn Sie den Coreutils-Betreuern neue Fehler melden, prüfen Sie bitte zunächst, ob diese ohne diesen Patch reproduzierbar sind.

Image

Unterdrücken Sie einen Test, der auf manchen Maschinen eine Endlosschleife verursachen kann:


sed -i '/test.lock/s/^/#/' gnulib-tests/gnulib.mk

sed -i '/test.lock/s/^/#/' gnulib-tests/gnulib.mk

Bereiten Sie nun Coreutils für die Kompilierung vor:


autoreconf -fiv FORCE_UNSAFE_CONFIGURE=1 ./configure \

--prefix=/usr \

--enable-no-install-program=kill,uptime

autoreconf -fiv FORCE_UNSAFE_CONFIGURE=1 ./configure \

--prefix=/usr \

--enable-no-install-program=kill,uptime

Die Bedeutung der Konfigurationsoptionen:

Autoreconf

Dieser Befehl aktualisiert generierte Konfigurationsdateien im Einklang mit der neuesten Version von Automake.

FORCE_UNSAFE_CONFIGURE=1

Diese Umgebungsvariable ermöglicht die Erstellung des Pakets als Root-Benutzer.

--enable-no-install-program=kill,uptime

Der Zweck dieses Schalters besteht darin, zu verhindern, dass Coreutils Binärdateien installiert, die später von anderen Paketen installiert werden.

Stellen Sie das Paket zusammen:


um

um

Springen Sie nach unten zu „Paket installieren“, wenn die Testsuite nicht ausgeführt wird.

Jetzt kann die Testsuite ausgeführt werden. Führen Sie zunächst die Tests aus, die als Benutzer ausgeführt werden sollen Wurzel:


Machen Sie NON_ROOT_USERNAME=niemand check-root

Machen Sie NON_ROOT_USERNAME=niemand check-root

Wir werden den Rest der Tests wie folgt durchführen niemand Benutzer. Bestimmte Tests erfordern jedoch, dass der Benutzer Mitglied in mehr als einer Gruppe ist. Damit diese Tests nicht übersprungen werden, fügen wir eine temporäre Gruppe hinzu und erstellen den Benutzer niemand ein Teil davon:


echo „dummy:x:1000:nobody“ >> /etc/group

echo „dummy:x:1000:nobody“ >> /etc/group


Korrigieren Sie einige Berechtigungen, damit der Nicht-Root-Benutzer die Tests kompilieren und ausführen kann:


chown -Rv niemand.

chown -Rv niemand.

Führen Sie nun die Tests durch. Stellen Sie sicher, dass der PFAD im su Die Umgebung umfasst /tools/bin.


su niemand -s /bin/bash \

-c „PATH=$PATH RUN_EXPENSIVE_TESTS=ja prüfen lassen“

su niemand -s /bin/bash \

-c „PATH=$PATH RUN_EXPENSIVE_TESTS=ja prüfen lassen“

Es ist bekannt, dass das Testprogramm test-getlogin in einer teilweise erstellten Systemumgebung wie der Chroot-Umgebung hier fehlschlägt, aber wenn es am Ende dieses Kapitels ausgeführt wird, besteht es. Es ist auch bekannt, dass das Testprogramm tty.sh fehlschlägt.

Entfernen Sie die temporäre Gruppe:


sed -i '/dummy/d' /etc/group

sed -i '/dummy/d' /etc/group

Installieren Sie das Paket:


make install

make install

Verschieben Sie Programme an die von der FHS vorgegebenen Speicherorte:


mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin mv -v /usr/bin/{false,ln,ls,mkdir,mknod,mv, pwd,rm} /bin

mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin mv -v /usr/bin/chroot /usr/sbin

mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 sed -is/\"1\"/\"8\"/1 /usr/share/man /man8/chroot.8

mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin mv -v /usr/bin/{false,ln,ls,mkdir,mknod,mv, pwd,rm} /bin

mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin mv -v /usr/bin/chroot /usr/sbin

mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 sed -is/\"1\"/\"8\"/1 /usr/share/man /man8/chroot.8

Einige der Skripte im LFS-Bootscripts-Paket hängen davon ab ganzer, schön, schlafen und aufnehmen. Die / usr Während der frühen und späten Phase des Bootvorgangs möglicherweise nicht verfügbar sind, müssen sich diese Binärdateien auf der Root-Partition befinden, um die FHS-Konformität aufrechtzuerhalten:


mv -v /usr/bin/{head,nice,sleep,touch} /bin

mv -v /usr/bin/{head,nice,sleep,touch} /bin


Top OS Cloud Computing bei OnWorks: