Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

6.54.1. Installazione di Coreutils

POSIX richiede che i programmi di Coreutils riconoscano correttamente i confini dei caratteri anche in locali multibyte. La patch seguente risolve questa non conformità e altri bug relativi all'internazionalizzazione.


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

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


Note:

In passato, sono stati trovati molti bug in questa patch. Quando si segnalano nuovi bug ai manutentori di Coreutils, controllare prima se sono riproducibili senza questa patch.

Note:

In passato, sono stati trovati molti bug in questa patch. Quando si segnalano nuovi bug ai manutentori di Coreutils, controllare prima se sono riproducibili senza questa patch.

Immagine

Sopprimere un test che su alcune macchine può eseguire il ciclo all'infinito:


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

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

Ora prepara Coreutils per la compilazione:


autoreconf -fiv FORCE_UNSAFE_CONFIGURE=1 ./configure \

--prefisso=/usr \

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

autoreconf -fiv FORCE_UNSAFE_CONFIGURE=1 ./configure \

--prefisso=/usr \

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

Il significato delle opzioni di configurazione:

autoconf

Questo comando aggiorna i file di configurazione generati coerenti con l'ultima versione di automake.

FORCE_UNSAFE_CONFIGURE=1

Questa variabile di ambiente consente di compilare il pacchetto come utente root.

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

Lo scopo di questa opzione è impedire a Coreutils di installare binari che verranno installati da altri pacchetti in un secondo momento.

Compila il pacchetto:


make

make

Passare a "Installa il pacchetto" se non si esegue la suite di test.

Ora la suite di test è pronta per essere eseguita. Innanzitutto, esegui i test che devono essere eseguiti come utente radice:


make NON_ROOT_USERNAME=nessuno check-root

make NON_ROOT_USERNAME=nessuno check-root

Eseguiremo il resto dei test come nessuno utente. Alcuni test, tuttavia, richiedono che l'utente sia membro di più di un gruppo. In modo che questi test non vengano saltati, aggiungeremo un gruppo temporaneo e renderemo l'utente nessuno una parte di esso:


echo "dummy:x:1000:nobody" >> /etc/group

echo "dummy:x:1000:nobody" >> /etc/group


Correggi alcune delle autorizzazioni in modo che l'utente non root possa compilare ed eseguire i test:


chown -Rv nessuno .

chown -Rv nessuno .

Ora esegui i test. Assicurati che il PERCORSO nel su ambiente include /tools/bin.


su nessuno -s /bin/bash \

-c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"

su nessuno -s /bin/bash \

-c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"

È noto che il programma di test test-getlogin fallisce in un ambiente di sistema parzialmente compilato come l'ambiente chroot qui, ma passa se eseguito alla fine di questo capitolo. È noto che anche il programma di test tty.sh fallisce.

Rimuovere il gruppo temporaneo:


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

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

Installa il pacchetto:


make install

make install

Sposta i programmi nelle posizioni specificate dall'FHS:


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

Alcuni degli script nel pacchetto LFS-Bootscripts dipendono da capo, bello, sonnoe toccare. I / usr potrebbero non essere disponibili durante le fasi iniziali e finali dell'avvio, questi file binari devono essere nella partizione di root per mantenere la conformità FHS:


mv -v /usr/bin/{testa,bello,sonno,tocco} /bin

mv -v /usr/bin/{testa,bello,sonno,tocco} /bin


Il miglior sistema operativo cloud computing su OnWorks: