Stații de lucru online OnWorks Linux și Windows

logo

Găzduire online gratuită pentru stații de lucru

<Înapoi | Cuprins | Următor>

6.54.1. Instalarea Coreutils

POSIX necesită ca programele de la Coreutils să recunoască limitele de caractere corect chiar și în locale multibyte. Următorul patch remediază această neconformitate și alte erori legate de internaționalizare.


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

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


notițe

În trecut, au fost găsite multe erori în acest patch. Când raportați noi erori către întreținerii Coreutils, vă rugăm să verificați mai întâi dacă sunt reproductibile fără acest patch.

notițe

În trecut, au fost găsite multe erori în acest patch. Când raportați noi erori către întreținerii Coreutils, vă rugăm să verificați mai întâi dacă sunt reproductibile fără acest patch.

imagine

Suprimați un test care, pe unele mașini, poate fi continuat în buclă:


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

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

Acum pregătiți Coreutils pentru compilare:


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

Semnificația opțiunilor de configurare:

autorconf

Această comandă actualizează fișierele de configurare generate în concordanță cu cea mai recentă versiune de automake.

FORCE_UNSAFE_CONFIGURE=1

Această variabilă de mediu permite ca pachetul să fie construit ca utilizator root.

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

Scopul acestui comutator este de a împiedica Coreutils să instaleze fișiere binare care vor fi instalate de alte pachete mai târziu.

Compilați pachetul:


face

face

Treceți în jos la „Instalați pachetul” dacă nu rulați suita de testare.

Acum suita de teste este gata de rulare. Mai întâi, rulați testele care sunt menite să fie rulate ca utilizator rădăcină:


face NON_ROOT_USERNAME=nimeni să verifice rădăcină

face NON_ROOT_USERNAME=nimeni să verifice rădăcină

Vom rula restul testelor ca nimeni utilizator. Anumite teste, totuși, necesită ca utilizatorul să fie membru al mai multor grupuri. Pentru ca aceste teste să nu fie sărite, vom adăuga un grup temporar și vom face utilizatorul nimeni o parte din ea:


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

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


Remediați unele dintre permisiuni, astfel încât utilizatorul non-root să poată compila și rula testele:


chown -Rv nimeni .

chown -Rv nimeni .

Acum rulați testele. Asigurați-vă că PATH în su mediul include /tools/bin.


su nobody -s /bin/bash \

-c "PATH=$PATH face RUN_EXPENSIVE_TESTS=da verifica"

su nobody -s /bin/bash \

-c "PATH=$PATH face RUN_EXPENSIVE_TESTS=da verifica"

Se știe că programul de testare test-getlogin eșuează într-un mediu de sistem parțial construit, cum ar fi mediul chroot de aici, dar trece dacă este rulat la sfârșitul acestui capitol. De asemenea, se știe că programul de testare tty.sh eșuează.

Eliminați grupul temporar:


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

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

Instalează pachetul:


make install

make install

Mutați programele în locațiile specificate de FHS:


mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,data,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,data,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

Unele dintre scripturile din pachetul LFS-Bootscripts depind de cap, frumos, dormi, și atingeţi. / usr Este posibil să nu fie disponibile în fazele incipiente și târzii ale pornirii, acele binare trebuie să fie pe partiția rădăcină pentru a menține conformitatea FHS:


mv -v /usr/bin/{cap, frumos, somn, atingere} /bin

mv -v /usr/bin/{cap, frumos, somn, atingere} /bin


Top OS Cloud Computing la OnWorks: