ãŸããã
ããã§ã
åã®èšäºã§ã LFSã®åéãéå§ããŸãããããã¯ãããŒã«ã®ãããªãçµã¿ç«ãŠã«å¿
èŠãªãã¹ãŠãåããäžæçãªã·ã¹ãã ãçµã¿ç«ãŠããšããäºå®ã«çŠç¹ãåœãŠãŠããŸãã
次ã«ãã¡ã€ã³ã·ã¹ãã ãæ§ç¯ããäœæ¥ã«å¿
èŠãªèšå®ãè¡ããŸãã ãã®èšäºã§ã¯LFSã·ãªãŒãºãç¶ããŸããããã以äžèŠåŽããããšãªããããžãã¹ã«åãæãããŸãããã
ãã ããå
ã«é²ãåã«ãæ¬ã®èè
ã«ãã£ãŠææ¡ãããå€å
žçãªã¹ããŒã ããå°ãé¢ããŠããããè¡ããŸããã
$ su - lfs $ wget http://roy.marples.name/downloads/dhcpcd/dhcpcd-6.7.1.tar.bz2 --directory-prefix=$LFS/sources $ wget http://www.linuxfromscratch.org/blfs/downloads/7.7/blfs-bootscripts-20150304.tar.bz2 --directory-prefix=$LFS/sources $ logout
å®éã«ã¯ãåºæ¬ã·ã¹ãã ã®ã¢ã»ã³ããªã«é¢ããæšæºææžã«ã¯ãDNSãããã€ããŒããIPã¢ãã¬ã¹ãåãåãå ŽåããŸãã¯åçIPãããŒã ã«ãŒã¿ãŒãæäŸããå Žåã®ãããã¯ãŒã¯ã»ããã¢ããããã»ã¹ãèšèŒãããŠããŸããã ãŸãã¯ãNATçµç±ã§ãããã¯ãŒã¯ã«ã¢ã¯ã»ã¹ã§ããVMã®äžã§æ§ç¯ããŠããå Žåã
ãããã£ãŠããã¹ãŠãåéããåŸãDHCPã¯ã©ã€ã¢ã³ãã远å ã€ã³ã¹ããŒã«ããŠæ§æããŸããããã«ãããåèµ·ååŸããã«æ°ããã·ã¹ãã ãIPãååŸãããããã¯ãŒã¯ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã ãã®ã¹ãããã¯ãã§ã«BLFSããã¯ã«é©çšãããŸãã
1.åå€§ã§æãããChroot
ãŸããrootã$ LFS / toolsãã£ã¬ã¯ããªã®ææè
ã«ããŸã
$ su - root
ãã以åã¯ãlfsãŠãŒã¶ãŒã«å±ããŠããŸãããããã®ãŠãŒã¶ãŒã¯ãã¹ãã·ã¹ãã äžã«ãããããã«ã¯ãããŸããïŒãŸã ãŠãŒã¶ãŒã¯ããŸããïŒïŒåéããŠããã·ã¹ãã äžã«ãããŸãã 以éã®ãã¹ãŠã®ã¢ã¯ã·ã§ã³ã¯ãã·ã¹ãã ãé²ãã»ã¯ã·ã§ã³ã®ã«ãŒãããå®è¡ãããŸãã ãã®ç¹ã§ã次ã®åé¡ã解決ããå¿
èŠããããŸã
- åé¡ïŒ1 ïŒã¡ã€ã³ïŒïŒäœ¿çšãããã¹ãŠã®ãã¹ã¯ãå®éã®ã·ã¹ãã ã®ã«ãŒãããéå§ããå¿
èŠããããŸãã ããã¯ãç°å¢å
šäœããã³ã·ã¹ãã ã®ã«ãŒãã«ã®æ£åžžãªåäœã«äžå¯æ¬ ã§ãã
- åé¡ïŒ2 ïŒä»éïŒïŒçµã¿ç«ãŠãããã·ã¹ãã ãšãã¹ãã·ã¹ãã ã®ãã€ããªãã¡ã€ã«ã®ã€ã³ã¹ããŒã«ãã¹ãäžèŽããïŒãŸãã¯ã»ãŒäžèŽããïŒäºå®ãèæ
®ããŠããã¹ããšçµã¿ç«ãŠãããã·ã¹ãã ã®ã·ã¹ãã ãã£ã¬ã¯ããªãçžäºã«ããã§ã³ã¹ãããå¿
èŠããããŸãã
äž¡æ¹ã®åé¡ã¯ãå€åºå
ã§ã·ã¹ãã ã®ã«ãŒããã£ã¬ã¯ããªã倿Žã§ããchrootã³ãã³ãã«ãã£ãŠè§£æ±ºãããŸãã $ LFSããŒãã£ã·ã§ã³ã®chrootå®è¡ãã£ãŒã«ãã¯ãLFSãã£ã¬ã¯ããªãžã®ãã¹ãŠã®ãã¹ãã/ãã§å§ãŸããŸããã€ãŸããæ§ç¯äžã®ã·ã¹ãã ã®ã«ãŒãã«äœæ¥ã®å€èгãäœæããŸãã $ LFSããäžã«ãããã£ã¬ã¯ããªïŒã€ãŸãã/ mnt / lfsãã£ã¬ã¯ããªïŒã¯å®å
šã«åæãããã¢ã¯ã»ã¹ã§ããªããªããŸãã ããã¯ãã°ãããããšã§ããã«ãŒããšããŠå®è¡ãããã¹ãŠã®ã¢ã¯ã·ã§ã³ã¯ããã¹ãã·ã¹ãã ã«åœ±é¿ããŸããã ãã ããVFS-ãã¹ããã·ã³ã®ä»®æ³ãã¡ã€ã«ã·ã¹ãã ã«ã¢ã¯ã»ã¹ããå¿
èŠããããŸããããã¯ã/ devã/ procã/ sysãããã³/ runã®åãã£ã¬ã¯ããªã§æ§æãããŸãã UNIXã®åºæ¬æŠå¿µã®1ã€ã§ããããã¹ãŠããã¡ã€ã«ã§ãããèŠããŠããŸãã æ©åšãšã·ã¹ãã ã®ãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããå¿
èŠããããããã¯VFSãªããžã§ã¯ãã䜿çšããŠè¡ãããŸãã
æåã«å¿
èŠãªãã£ã¬ã¯ããªã察å¿ããLFSãã£ã¬ã¯ããªã«ããŠã³ããããšãchrootãããã¹ãã·ã¹ãã ãã£ã¬ã¯ããªãžã®ã¢ã¯ã»ã¹ãå¯èœã«ãªããŸãã ãããè¡ãã«ã¯ãæ¬¡ã®æäœãå®è¡ããŸãã VFSããŠã³ããã€ã³ããäœæãã
# mkdir -pv $LFS/{dev,proc,sys,run}
ãã£ã©ã¯ã¿ãŒããã€ã¹/ dev / consoleããã³/ dev / nullãäœæããŸã
# mknod -m 600 $LFS/dev/console c 5 1 # mknod -m 666 $LFS/dev/null c 1 3
-mã¹ã€ããã¯ãããã€ã¹ãã¡ã€ã«ãžã®ã¢ã¯ã»ã¹æš©ãå®çŸ©ããŸãã
c-ããã€ã¹ãã·ã³ããªãã¯ã§ãããåŸç¶ã®æ°åãããã€ã¹ã®ã¡ãžã£ãŒçªå·ãšãã€ããŒçªå·ã§ããããšã瀺ããŸãã æåã¯ãã£ã©ã¯ã¿ãŒããã€ã¹ã®ã¿ã€ããç¹åŸŽã¥ãã2çªç®ã¯ã·ã¹ãã å
ã®ããã€ã¹ã®çªå·ã§ãã
/ dev / consoleã¯ã·ã¹ãã ã«ç«¯æ«ãæäŸããŸãã/ dev / nullã¯ç©ºã®ãã¡ã€ã«ããããŒã¿ãååŸããããåºåãã©ãã«ããªãã€ã¬ã¯ãããªãããã«æããã䜿çšãããŸãã
ããã§ãä»®æ³ãã¡ã€ã«ã·ã¹ãã ãç¹å¥ãªæ¹æ³ã§ããŠã³ãããŸãã ãã®ãããªããŠã³ãã¯ãã°ãã°ããã€ã³ãã£ã³ã°ããšåŒã°ããŸã-å®è¡ããããšãããŠã³ãããããã£ã¬ã¯ããªã®å
容ã¯ããŠã³ããã€ã³ããšããŠæå®ããããã£ã¬ã¯ããªã«ããããããŸã
# mount -v --bind /dev $LFS/dev
ããã§ãäžæã·ã¹ãã ãããã€ã¹ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã æ®ãã®VFSãã¹ããããŠã³ãããŸã
# mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620 # mount -vt proc proc $LFS/proc # mount -vt sysfs sysfs $LFS/sys # mount -vt tmpfs tmpfs $LFS/run
/ dev / ptsã¯ãæ¬äŒŒç«¯æ«ãžã®ã¢ã¯ã»ã¹ãæäŸãããã¡ã€ã«ã·ã¹ãã ã§ãã ã¢ã¯ã»ã¹æš©ãæã€ttyã°ã«ãŒãã®èå¥ågid = 5ã§ããŠã³ããããŸã620ïŒ-rw- -r- ---ïŒã
/ procã¯ãã·ã¹ãã ã§å®è¡ãããŠããããã»ã¹ã«é¢ããæ
å ±ãå«ãä»®æ³ãã¡ã€ã«ã·ã¹ãã ã§ãã
/ sys-ã·ã¹ãã ã«ååšããããã€ã¹ãšãã©ã€ããŒã«é¢ããæ
å ±ããŠãŒã¶ãŒç©ºéã«è¿œå ããä»®æ³ãã¡ã€ã«ã·ã¹ãã
/ runã¯ãã·ã¹ãã ããŒãã®åææ®µéã§äžæãã¡ã€ã«ãäœæããããã«èšèšãããä»®æ³ãã¡ã€ã«ã·ã¹ãã ã§ãã 以åã¯ãåæ§ã®ãã¡ã€ã«ã/ devã«äœæãããŠããŸããããLennard Potteringã®äž»å°ã§ãsystemdã®ããã¢ãŒã·ã§ã³ã«é¢é£ããŠããã®ç®çã®ããã«è¿œå ã®ãã£ã¬ã¯ããªã远å ãããŸããã
ããã«ã/ devã®äžéšã®ãã¹ãã·ã¹ãã ã§ã¯ã/ run / shmãžã®ã·ã³ããªãã¯ãªã³ã¯ãååšããå ŽåããããŸã-å
±æã¡ã¢ãªã«ã¢ã¯ã»ã¹ããããã®äžæãã¡ã€ã«ã§ãã ãã¹ãäžã®å¯çšæ§ã確èªããå¿
èŠã«å¿ããŠäžæã·ã¹ãã ã§äœæããŸã
$ if [ -h $LFS/dev/shm ]; then > mkdir -pv $LFS/$(readlink $LFS/dev/shm) > fi
ãæªéãã®åŸã次ã®å³ã«æŠç¥çã«ç€ºãæ§é ãåŸãããŸãã
ãã¹ãã·ã¹ãã ã«é¢é£ããLFSãã£ã¬ã¯ããªããªãŒ
å®éã«ã¯äžæã·ã¹ãã ã«ãã°ã€ã³ããŠããŸã
# chroot "$LFS" /tools/bin/env -i \ > HOME=/root \ > TERM="$TERM" \ > PS1='\u:\w\$ ' \ > PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ > /tools/bin/bash --login +h
ãã®ã³ãã³ãã¯ãã·ã¹ãã ã®ã«ãŒããã£ã¬ã¯ããªã$ LFSã«å€æŽãã2ã€ã®ã³ãã³ããå®è¡ããŸã-/ tools / bin / env-æ°ãããã¯ãªãŒã³ãªããŠãŒã¶ãŒç°å¢ãäœæããããã€ãã®å€æ°ãå²ãåœãŠãŸããHOME-ããŒã ãã£ã¬ã¯ããªã®äœçœ®ã TERM-端æ«ã¿ã€ãã PS1-ã³ãã³ãã©ã€ã³ããã³ãã圢åŒã PATH-å®è¡å¯èœãã¡ã€ã«ãžã®ãã¹ã®ãªã¹ãã / tools / bin / bash --login + h-ã·ã§ã«ã®æ°ããã€ã³ã¹ã¿ã³ã¹ãèµ·åããŸããèµ·åã¯ãå®è¡å¯èœãã¡ã€ã«ãžã®ãã¹ã®ããã·ã¥ãç¡å¹ã«ããŠãå¥ã®ãŠãŒã¶ãŒã»ãã·ã§ã³ãžã®å
¥ãå£ãšããŠå®è¡ãããŸãã åã®ã¹ãããã§äœæããããã°ã©ã ïŒenvããã³bashïŒã䜿çšããããšã«æ³šæããŠãã ããã
ã³ãã³ããå®è¡ãããšã次ã®çµæãåŸãããŸã
I have no name!:/
ã·ã¹ãã ã®ã«ãŒããæ£åžžã«å€æŽãããã³ãã³ãããã³ããã«ãååããããŸããïŒããšããèŠåã衚瀺ãããŸããããã¯ãã·ã¹ãã ã«/ etc / passwdãã¡ã€ã«ããªãããã«çºçããŸãã è¿·æããããªãã§ãã ãããããã«ãã¡ã€ã«ãäœæããŸãã
泚 ïŒã·ã¹ãã ã®çµã¿ç«ãŠã«ã¯æéãããããããVFSãšchrootããŠã³ãã³ãã³ããçµã¿åãããŠã¹ã¯ãªãããäœæããã³ã³ãã¥ãŒã¿ãŒã®é»æºãåã£ãåŸã«æ§ç¯ããã·ã¹ãã ãžã®å
¥åãç°¡çŽ åã§ããŸãã
2.å¿
èŠãªãã£ã¬ã¯ããªãšãã¡ã€ã«ãäœæãã
次ã«ãã·ã¹ãã ã®ãã£ã¬ã¯ããªããªãŒãäœæããå¿
èŠããããŸã
# mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt} # mkdir -pv /{media/{floppy,cdrom},sbin,srv,var} # install -dv -m 0750 /root # install -dv -m 1777 /tmp /var/tmp # mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src} # mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} # mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo} # mkdir -v /usr/libexec # mkdir -pv /usr/{,local/}share/man/man{1..8} # case $(uname -m) in > x86_64) ln -sv lib /lib64 > ln -sv lib /usr/lib64 > ln -sv lib /usr/local/lib64 ;; > esac # mkdir -v /var/{log,mail,spool} # ln -sv /run /var/run # ln -sv /run/lock /var/lock # mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}
mkdirã³ãã³ãã«ãã£ãŠäœæããããã£ã¬ã¯ããªã¯ãããã©ã«ãã§755ïŒdrwx rx rxïŒèš±å¯ã«ãªããŸãã ãã®å Žåãinstallã³ãã³ãã䜿çšããŠãç¹å®ã®ã¢ã¯ã»ã¹å±æ§ãæã€ãã£ã¬ã¯ããªãäœæããŸãã0750ïŒdrwx rx ---ïŒfor / root-ã¹ãŒããŒãŠãŒã¶ãŒã®ã«ãŒããã£ã¬ã¯ããªã / tmpããã³/ var / tmpã®1777ïŒdrwx rwx rwxïŒ-äžæãã¡ã€ã«ã®ãã£ã¬ã¯ããªãäŸå€ãªãã·ã¹ãã ã®ãã¹ãŠã®ãŠãŒã¶ãŒãã¢ã¯ã»ã¹ã§ããå¿
èŠããããŸãã ãã ããäžæãã£ã¬ã¯ããªã«å«ãŸããå¥ã®ãŠãŒã¶ãŒã®ãã¡ã€ã«ã®ç§»åãçŠæ¢ããå¿
èŠããããŸãã ãããè¡ãããã«ãããããã¹ãã£ãããŒããããã³ãã¯ãããäžæãã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ã®åé€ã¯ææè
ã®ã¿ã«èš±å¯ãããããšã瀺ããŸãã
64ãããã·ã¹ãã ãæ§ç¯ããŠããå Žåã¯ãã·ã¹ãã ã©ã€ãã©ãªãå«ã/ libãã£ã¬ã¯ããªãžã®ã·ã³ããªãã¯ãªã³ã¯ãäœæããå¿
èŠããããŸãã ããã«ãäžéšã®ããã°ã©ã ã¯ãã·ã¹ãã ã®å¿
èŠãªã³ã³ããŒãã³ããžã®ããŒãã³ãŒãã£ã³ã°ããããã¹ã䜿çšããŸãã äžæã·ã¹ãã ã§äœæ¥ããŠããéããããã®ãã¹ã¯ç°ãªãããïŒããšãã°ããããŸã§ã®ãã¹ãŠã®å®è¡å¯èœãã¡ã€ã«ã¯/ tools / binãã£ã¬ã¯ããªã«ãããŸãïŒããã®ççŸãä¿®æ£ããããã«ã·ã³ããªãã¯ãªã³ã¯ãäœæããå¿
èŠããããŸã
åŸæ¥ãLinuxã§ã¯ãããŠã³ãããããã¡ã€ã«ã·ã¹ãã ã®ãªã¹ãã¯/ etc / mtabãã¡ã€ã«ã«ãããŸããã ãã ããææ°ã®ã«ãŒãã«ã¯ããã«/ procä»®æ³ãã¡ã€ã«ã·ã¹ãã ã䜿çšããŸãã ã·ã³ããªãã¯ãªã³ã¯ãäœæãã
# ln -sv /proc/self/mounts /etc/mtab
/ etc / mtabã䜿çšãç¶ããããã°ã©ã ã®å Žåã
次ã«ãã·ã¹ãã ã«ç»é²ãããŠãããŠãŒã¶ãŒã®ãªã¹ããå«ã/ etc / passwdãã¡ã€ã«ãäœæããå¿
èŠããããŸãã
# cat > /etc/passwd << "EOF" > root:x:0:0:root:/root:/bin/bash > bin:x:1:1:bin:/dev/null:/bin/false > daemon:x:6:6:Daemon User:/dev/null:/bin/false > messagebus:x:18:18:D-Bus Message Daemon User:/var/run/dbus:/bin/false > nobody:x:99:99:Unprivileged User:/dev/null:/bin/false > EOF
äžæçãªã·ã¹ãã ã«ã¯ããã¹ããšãã£ã¿ãŒããªããããæšæºå
¥åã®ãã¡ã€ã«ãžã®ãªãã€ã¬ã¯ãã䜿çšããŸãã ãã®ããã¹ããã¡ã€ã«ã®åœ¢åŒã¯æ¬¡ã®ãšããã§ããåè¡ã«ã¯ããŠãŒã¶ãŒã«é¢ããæ
å ±ããã©ãŒã ã«å«ãŸããŠããŸã
<login>:<password>:<UID>:<GID>:<GECOS>:<home>:<shell>
- ãã°ã€ã³-ã·ã¹ãã ã®ãŠãŒã¶ãŒå
- password-以åã«ããã«ä¿åãããŠãããã¹ã¯ãŒãããã·ã¥ã§ãããçŸåšã¯å¥ã®ãã¡ã€ã«/ etc / shadowã«ç§»åãããŠãããéåžžã®ãŠãŒã¶ãŒãèªã¿åãããšã¯ã§ããŸããã 代ããã«ããã¬ãŒã¹ãã«ããŒãxããé
眮ãããããã«ãªããŸãã
- UID-ãŠãŒã¶ãŒèå¥å-0ã2 32-1ã®æ°åãå®éããã®ãã¡ã€ã«ã®äž»ãªç®çã¯ããã°ã€ã³ãšãŠãŒã¶ãŒèå¥åãæ¯èŒããããšã§ãã
- GID-ãŠãŒã¶ãŒãå«ãŸããããã©ã«ãã°ã«ãŒãã®èå¥å
- GECOS-ãŠãŒã¶ãŒã«é¢ããè¿œå æ
å ±ãä¿åããæ
å ±ãã£ãŒã«ãã æç¢ºãªæ§æã¯ãªããå®éããã®ã¢ã«ãŠã³ãã«é¢ããã³ã¡ã³ããå«ãŸããŠããå ŽåããããŸãã
- home-ãŠãŒã¶ãŒã®ããŒã ãã£ã¬ã¯ããªãžã®çµ¶å¯Ÿãã¹
- shell-æå®ããããŠãŒã¶ãŒã®ã»ãã·ã§ã³ã§äœ¿çšãããã³ãã³ãã·ã§ã«
ã³ãã³ã¯ãã£ãŒã«ãåºåãèšå·ãšããŠäœ¿çšãããŸãã ãã®ãã¡ã€ã«ã«ã¯ãã«ãŒãã¹ãŒããŒãŠãŒã¶ãŒã®èª¬æãšãäžéšã®ããã°ã©ã ããã³ãµãŒãã¹ãèµ·åãããç¹å¥ãªãŠãŒã¶ãŒbinãdaemonãmessagebusãå«ãŸããŠããŸãã
ç¹ã«éèŠãªã®ã¯ãéç¹æš©ãŠãŒã¶ãŒnobodyã§ãã圌ã«ä»£ãã£ãŠãçµã¿ç«ãŠãããã·ã¹ãã ã³ã³ããŒãã³ãã®äžéšã®ãã¹ããå®è¡ããŸãã ãã®ãŠãŒã¶ãŒãä»ã®ãŠãŒã¶ãŒã®useraddãŠãŒãã£ãªãã£ã«ã¯ãŸã ã¢ã¯ã»ã¹ã§ããªããããæåã§äœæããŸãã
ãã¡ã€ã«/ etc / groupã«å¿
èŠãªãŠãŒã¶ãŒã°ã«ãŒãã®ã»ãããæåã§äœæããŸã
# cat > /etc/group << "EOF" > root:x:0: > bin:x:1:daemon > sys:x:2: > kmem:x:3: > tape:x:4: > tty:x:5: > daemon:x:6: > floppy:x:7: > disk:x:8: > lp:x:9: > dialout:x:10: > audio:x:11: > video:x:12: > utmp:x:13: > usb:x:14: > cdrom:x:15: > adm:x:16: > messagebus:x:18: > systemd-journal:x:23: > input:x:24: > mail:x:34: > nogroup:x:99: > users:x:999: > EOF
åè¡ã¯ã圢åŒã§åå¥ã®ã°ã«ãŒãã説æããŸã
<group name>:<group passwd>:<GID>:<users list>
- ã°ã«ãŒãå-ã°ã«ãŒãã®ã·ã³ãã«å
- group passwd-ã°ã«ãŒããã¹ã¯ãŒã-ãxããå«ãŸããŸãããã®ãã£ãŒã«ãã¯å€ããçŸåšäœ¿çšãããŠããªãããã§ãã
- GID-ã°ã«ãŒãèå¥å
- ãŠãŒã¶ãŒãªã¹ã-ã³ã³ãåºåãã®ãŠãŒã¶ãŒãªã¹ã
åã°ã«ãŒãã®ç®çãç°¡åã«èª¬æããŠãã ãã
- rootã¯ãrootç¹æš©ãæã€ã¹ãŒããŒãŠãŒã¶ãŒã®ã°ã«ãŒãã§ãã éåžžã®ç¶æ
ã§ã¯ãrootãŠãŒã¶ãŒã®ã¿ãå«ãŸããŸã
- binãsys-ãããã®ã°ã«ãŒãã¯æŽå²çã«ååšãããã®ãšããŠä¿åãããŸããããã·ã¹ãã ã«ååšããªãããã°ã©ã ã¯åäœããŸãã
- kmem-ã«ãŒãã«ã¡ã¢ãªã¢ã¯ã»ã¹ã°ã«ãŒã
- ããŒã-ããã€ã¹ããŒããžã®ã¢ã¯ã»ã¹ã®ã°ã«ãŒã
- tty-端æ«ããã€ã¹ïŒã³ã³ãœãŒã«ãå«ãïŒãžã®ã¢ã¯ã»ã¹ã°ã«ãŒã
- daemon-éç¹æš©ããŒã¢ã³èµ·åã°ã«ãŒã
- floppyãcdromãdisk-ããŸããŸãªã¿ã€ãã®ãã£ã¹ã¯ãã©ã€ãã®ã¢ã¯ã»ã¹ã°ã«ãŒã
- lp-ããªã³ã¿ãŒã®ã¢ã¯ã»ã¹ã°ã«ãŒããæŽå²çã«LPTã®ãã©ã¬ã«ããŒãã«ã座ã£ãŠãããã
- ãã€ã€ã«ã¢ãŠã-ãããã¯ãŒã¯æ¥ç¶äžã«ããã€ã€ã«ã¢ããããå®è¡ããããã€ã¹ãžã®ã¢ã¯ã»ã¹ã®ã°ã«ãŒãïŒã¢ãã ïŒ
- ãªãŒãã£ãªããããª-ãã«ãã¡ãã£ã¢ããã€ã¹ãžã®ã¢ã¯ã»ã¹
- usb-USBãã¹ã¢ã¯ã»ã¹ã°ã«ãŒã
- adm-/ var / logãã£ã¬ã¯ããªã®ã·ã¹ãã ãã°ã衚瀺ããããã®ã¢ã¯ã»ã¹ã°ã«ãŒã
- messagebus-D-BUSããã€ã¹éã®ã¡ãã»ãŒãžãã¹ãžã®ã¢ã¯ã»ã¹ã°ã«ãŒã
- systemd-journal-systemdãã°ãžã®ã¢ã¯ã»ã¹
- å
¥å-ãŠãŒã¶ãŒå
¥åããã€ã¹ãžã®ã¢ã¯ã»ã¹
- ã¡ãŒã«-ã¡ãŒã«ãµãŒãã¹ãžã®ã¢ã¯ã»ã¹
- nogroup-空ã®ã°ã«ãŒã
- ãŠãŒã¶ãŒ-éåžžãéç¹æš©ãã·ã¹ãã ãŠãŒã¶ãŒ
ãŠãŒã¶ãŒã»ãã·ã§ã³ã«åå
¥ãããšãã§ããŸã
exec /tools/bin/bash
ãããŠãåºæ¥äžãããã·ã¹ãã ã¯ãã°ã€ã³ãè¡ããããŠãŒã¶ãŒã®ååãç¥ã£ãŠããŸã
root:/#
ã·ã¹ãã ã«å¿
èŠãªããã€ãã®ãã°ãã¡ã€ã«ãåæåããé©åãªæš©éãå²ãåœãŠãŸã
root:/# touch /var/log/{btmp,lastlog,wtmp} root:/# chgrp -v utmp /var/log/lastlog root:/# chmod -v 664 /var/log/lastlog root:/# chmod -v 600 /var/log/btmp
3. GNUç°å¢ãæ§ç¯ããé·ãéå±ãªããã»ã¹...
ãã®æ®µéã¯æãæéãããããæéãããããŸãã GNUç°å¢ã«å¿
èŠãªãã¹ãŠã®ããã±ãŒãžã
æåã§åéããå¿
èŠããããŸããããã¯ãåäœããLinuxã·ã¹ãã ãååŸã§ããæå°éã®ããã°ã©ã ã»ããã§ãã
åéããŠããããã±ãŒãžã®ãªã¹ãã«æ²¿ã£ãŠç§»åãããšãç·åŒµãé«ãŸããŸãããªã¹ãã¯éåžžã«åºç¯å²ã§ãæäœã¯ããªãåäžã§ãã ããæç¹ã§ãç§ã®é ã®äžã§çåãçããŸããäžäœäœãå¿
èŠãªã®ã§ããããïŒ ããã§ã®äž»ãªããšã¯ãèœèãä¹ãè¶ããæå¿ã®èããšåªåãéããããšã§ããå§ãããããã¹ãŠãçµããããªããã°ãªããŸããã
ããã±ãŒãžã¢ã»ã³ããªã·ãŒã±ã³ã¹ã¯ãçŸåšã®æ®µéã§ãã®å®è¡ã«å¿
èŠãªãã¹ãŠã®äŸåé¢ä¿ãæºããããããã«æ§ç¯ãããŸãã ãããã£ãŠãçµç«é åºã«éåããŠã¯ãªããŸããã
åããã±ãŒãžã®çµã¿ç«ãŠã«ã¯ãäžè¬çãªå Žåã«æäŸããè©³çŽ°ãªæç€ºã䌎ããŸã
- ããã±ãŒãžãœãŒã¹ã³ãŒãã«ããããé©çšããŸãã å¿
èŠãªãã¹ãŠã®ãããã¯åœç€Ÿã«ãã£ãŠããŠã³ããŒãããã/ sourcesãã£ã¬ã¯ããªã«ãããŸã
- sedãŠãŒãã£ãªãã£ã«ãã£ãŠå®è¡ããããœãŒã¹ç·šéã ããã§ã¯ãç·šéãã¿ãŒã³ãå®çŸ©ããæ£èŠè¡šçŸã®æå³ãæãäžããããšããå§ãããŸããã³ãã³ãã®ç¡åå¥ãªå
¥åã¯ãããããšã©ãŒã«ã€ãªããããã§ãã ãŸããsedã¯ãšã©ãŒã¡ãã»ãŒãžã衚瀺ããŸããããã³ãã¬ãŒããå
¥åãããšãã«ééããå Žåãæäœãå®è¡ãããªãããæ£ããå®è¡ãããªãå¯èœæ§ãããããã«ãããã»ã¹ã«ãšã£ãŠèŽåœçã§ãã
- æ§æ ãã£ã¬ã¯ããªãã¬ãã£ãã¯ã¹ã«ç¹ã«æ³šæ-ã€ã³ã¹ããŒã«äžã«ããã¹ãŠã®å®è¡å¯èœãã€ããªãã©ã€ãã©ãªãããã³ããã¥ã¡ã³ããé
眮ããå¿
èŠããããŸãã
- ãã€ããªãã¡ã€ã«ã®ã³ããŒããã¡ã€ã«ãšãã£ã¬ã¯ããªãžã®æš©å©ã®å²ãåœãŠãã·ã³ããªãã¯ãªã³ã¯ã®äœæã äžéšã®ãªã³ã¯ã¯ããŸã ååšããªãFSãã€ã³ãã«ã€ãªããå¯èœæ§ããããããsymlinkäœæã³ãã³ãã®æ§æã¯æåéãã«çè§£ããããã¹ãæ§ç¯ãããšãã«ã¢ããã¥ã¢ã¢ã¯ã·ã§ã³ãèš±å¯ããªãããã«ããå¿
èŠããããŸãã å³å¯ã«æç€ºã«åŸã£ãŠãã ããïŒ
ãããŠæåŸã«ãæãéèŠãªããšã¯ãã¹ãã§ãïŒ äžæã·ã¹ãã ãçµã¿ç«ãŠãéããã¹ãããŒã«ã䜿çšã§ããªãã£ãããããã¹ããç¡èŠããŸãããæ¬¡ã«ããã¹ãã®å¿
èŠæ§ããããŸããã§ããã ããã§ãã·ã¹ãã ãœãããŠã§ã¢ã®æçµããŒãžã§ã³ãåéãããšããé©åã«æ©èœããããã«ã¢ã»ã³ããªã®çµæãå
æ¬çã«ãã§ãã¯ããå¿
èŠããããŸãã ããã¯ç¹ã«ãã³ã³ãã€ã©ãŒãæšæºã©ã€ãã©ãªãŒãããã³ãœãããŠã§ã¢æ§ç¯çšã®è£å©ããŒã«ïŒã¢ã»ã³ãã©ãŒãšãªã³ã«ãŒïŒã«åœãŠã¯ãŸããŸãã
å®è¡ãã¹ãæç€ºã«æ³šææžããããå Žåã¯ããã¹ããã¹ãããããªãã§ãã ããã ãã¹ãã«ã¯æéãããããŸããããšãã°ããã¹ãã䌎ãGCCã¢ã»ã³ããªã¯ã63 SBUå
ã§è¡ãããŸããããã¯ç§ã®ãã·ã³ã§ã¯çŽ150åã§ãã ããããä»ã«éžæè¢ã¯ãããŸããã
ããã¥ã¢ã«ã«ã¯ããã¹ããçç±ã§å€±æããå¯èœæ§ã®ããã¡ã¢ãå«ãŸããŠããŸãã ãã¹ãã®å®äºåŸãæç€ºã«åŸã£ãŠæåŸ
ãããçµæã§çµæãæ€èšŒããããšãå¿
é ã§ãã ããŒãžã§ã³LFS 7.7ã®ãã¹ãŠã®ãã¹ãã®åç
§ãã°ã¯ã
ãã®ãªã³ã¯ã«ãããŸãäŸãšããŠãGCCãã¹ããã°ããã®æç²ã瀺ããŸãã
GCCç°¡åãªãã¹ããã°=== g ++ãŸãšã===
äºæ³ããããã¹ã®æ°88501
äºæããªãæåã®æ°2
äºæ³ãããéå®³ã®æ°443
ãµããŒããããŠããªããã¹ãã®æ°3058
/sources/gcc-build/gcc/testsuite/g++/../../xg++ version 4.9.2ïŒGCCïŒ
-=== gccãµããªãŒ===
äºæ³ãã¹æ°106352
äºæ³ãããéå®³ã®æ°252
ãµããŒããããŠããªããã¹ãã®æ°1422
/ãœãŒã¹/ gcc-build / gcc / xgccããŒãžã§ã³4.9.2ïŒGCCïŒ
=== libatomicãã¹ã===
-=== libatomicãµããªãŒ===
äºæ³ãã¹æ°54
=== libgompãã¹ã===
ã¿ãŒã²ããUNIXã®å®è¡
=== libgompã®æŠèŠ===
äºæ³ãã¹æ°693
=== libitmãã¹ã===
ã¿ãŒã²ããUNIXã®å®è¡
=== libitmã®æŠèŠ===
äºæ³ãã¹æ°26
äºæ³ãããéå®³ã®æ°3
ãµããŒããããŠããªããã¹ãã®æ°1
=== libstdc ++ãã¹ã===
-=== libstdc ++ãµããªãŒ===
äºæ³ããããã¹ã®æ°9925
äºæ³ãããéå®³ã®æ°41
ãµããŒããããŠããªããã¹ãã®æ°233
ã³ã³ãã€ã©ãŒã®ããŒãžã§ã³ïŒ4.9.2ïŒGCCïŒ
ãã©ãããã©ãŒã ïŒx86_64-unknown-linux-gnu
ãµã³ãã«ãšæ¯èŒã§ããŸã
LFSäœæè
ããã®å
¬åŒGCCãã«ããã°=== gccã®èŠçŽ===
äºæ³ãã¹æ°106401
äºæ³ãããéå®³ã®æ°252
ãµããŒããããŠããªããã¹ãã®æ°1404
/ãœãŒã¹/ gcc-build / gcc / xgccããŒãžã§ã³4.9.2ïŒGCCïŒ
make [4]ïŒãã£ã¬ã¯ã㪠'/ sources / gcc-build / gcc'ãé¢ãã
-=== g ++ãµããªãŒ===
äºæ³ããããã¹ã®æ°88501
äºæããªãæåã®æ°2
äºæ³ãããéå®³ã®æ°443
ãµããŒããããŠããªããã¹ãã®æ°3058
/sources/gcc-build/gcc/testsuite/g++/../../xg++ version 4.9.2ïŒGCCïŒ
-=== libstdc ++ãµããªãŒ===
äºæ³ãã¹æ°9835
äºæ³ãããéå®³ã®æ°41
ãµããŒããããŠããªããã¹ãã®æ°278
make [5]ïŒãã£ã¬ã¯ããªã/ sources / gcc-build / x86_64-unknown-linux-gnu / libstdc ++-v3 / testsuiteããçµäºããŸã
make [4]ïŒãã£ã¬ã¯ããªã/ sources / gcc-build / x86_64-unknown-linux-gnu / libstdc ++-v3 / testsuiteããæ®ããŸã
Pythonã§ãã§ãã¯ãã
-=== libgompã®æŠèŠ===
äºæ³ãã¹æ°693
make [5]ïŒãã£ã¬ã¯ããªã/ sources / gcc-build / x86_64-unknown-linux-gnu / libgomp / testsuiteããçµäºããŸã
make [4]ïŒãã£ã¬ã¯ããªã/ sources / gcc-build / x86_64-unknown-linux-gnu / libgomp / testsuiteããçµäºããŸã
make [4]ïŒãã£ã¬ã¯ããªã/ sources / gcc-build / x86_64-unknown-linux-gnu / libgompããå
¥åããŸã
true DO =ãã¹ãŠã®ãã«ãDOïŒmake
make [4]ïŒãã£ã¬ã¯ã㪠'/ sources / gcc-build / x86_64-unknown-linux-gnu / libgomp'ãé¢ãã
-=== libitmã®æŠèŠ===
äºæ³ãã¹æ°26
äºæ³ãããéå®³ã®æ°3
ãµããŒããããŠããªããã¹ãã®æ°1
make [5]ïŒãã£ã¬ã¯ããªã/ sources / gcc-build / x86_64-unknown-linux-gnu / libitm / testsuiteããçµäºããŸã
make [4]ïŒãã£ã¬ã¯ã㪠'/ sources / gcc-build / x86_64-unknown-linux-gnu / libitm / testsuite'ãé¢ãã
make [4]ïŒãã£ã¬ã¯ããªã/ sources / gcc-build / x86_64-unknown-linux-gnu / libitmããå
¥åããŸã
-=== libatomicãµããªãŒ===
äºæ³ãã¹æ°54
make [5]ïŒãã£ã¬ã¯ããªã/ sources / gcc-build / x86_64-unknown-linux-gnu / libatomic / testsuiteããçµäºããŸã
make [4]ïŒãã£ã¬ã¯ããªã/ sources / gcc-build / x86_64-unknown-linux-gnu / libatomic / testsuiteããçµäºããŸã
make [4]ïŒãã£ã¬ã¯ããªã/ sources / gcc-build / x86_64-unknown-linux-gnu / libatomicãã«å
¥ã
true DO =ãã¹ãŠã®ãã«ãDOïŒmake
make [4]ïŒãã£ã¬ã¯ã㪠'/ sources / gcc-build / x86_64-unknown-linux-gnu / libatomicãé¢ãã
-=== g ++ãµããªãŒ===
äºæ³ããããã¹ã®æ°88501
äºæããªãæåã®æ°2
äºæ³ãããéå®³ã®æ°443
ãµããŒããããŠããªããã¹ãã®æ°3058
/sources/gcc-build/gcc/testsuite/g++/../../xg++ version 4.9.2ïŒGCCïŒ
-=== gccãµããªãŒ===
äºæ³ãã¹æ°106401
äºæ³ãããéå®³ã®æ°252
ãµããŒããããŠããªããã¹ãã®æ°1404
/ãœãŒã¹/ gcc-build / gcc / xgccããŒãžã§ã³4.9.2ïŒGCCïŒ
=== libatomicãã¹ã===
-=== libatomicãµããªãŒ===
äºæ³ãã¹æ°54
=== libgompãã¹ã===
ã¿ãŒã²ããUNIXã®å®è¡
=== libgompã®æŠèŠ===
äºæ³ãã¹æ°693
=== libitmãã¹ã===
ã¿ãŒã²ããUNIXã®å®è¡
=== libitmã®æŠèŠ===
äºæ³ãã¹æ°26
äºæ³ãããéå®³ã®æ°3
ãµããŒããããŠããªããã¹ãã®æ°1
=== libstdc ++ãã¹ã===
-=== libstdc ++ãµããªãŒ===
äºæ³ãã¹æ°9835
äºæ³ãããéå®³ã®æ°41
ãµããŒããããŠããªããã¹ãã®æ°278
ã³ã³ãã€ã©ãŒã®ããŒãžã§ã³ïŒ4.9.2ïŒGCCïŒ
ãã©ãããã©ãŒã ïŒx86_64-unknown-linux-gnu
ç§ã¯å¹žéã§ãã-ææ¡ãããèè
ãšããäžèŽããçµæãåŸãŸããã ç§ãããªãã«ãé¡ãããŸãã
4.ã·ã¹ãã ã®åå
¥åããããã°æ
å ±ã®ã¯ãªã¢ãäžæã·ã¹ãã ã®åé€
ããã§ããã¹ãŠã®ããã±ãŒãžãåéãããŸããã ããã§ãšãããããŸã-æ
ã®äžã§æãé·ããŠéå±ãªéšåã¯ããªãã«ãã£ãŠèŠãããŸããã æ°ããã·ã¹ãã ã«ãã°ã€ã³ããŸã
# logout # chroot $LFS /tools/bin/env -i \ > HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ > PATH=/bin:/usr/bin:/sbin:/usr/sbin \ > /tools/bin/bash --login
ããã·ã¥ãæå¹ã«ããŠ/ tools / bin / bashãåèµ·åãããã¹ãã/ tools / binãã£ã¬ã¯ããªãåé€ããŠå®è¡å¯èœãã¡ã€ã«ãæ€çŽ¢ããŸãã ãããã°æ
å ±ã鮿ããŸã
# /tools/bin/find /{,usr/}{bin,lib,sbin} -type f \ > -exec /tools/bin/strip --strip-debug '{}' ';'
ãã¹ãåŸã«æ®ã£ãŠãããã¡ã€ã«ããäžæãã£ã¬ã¯ããªãåé€ããŸã
# rm -rf /tmp/*
å床ãã°ã€ã³ãããã§ã«ããã¡ã€ãã£ã³ã°ãããã·ã¥ãèµ·åããŸã
# chroot "$LFS" /usr/bin/env -i \ > HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \ > PATH=/bin:/usr/bin:/sbin:/usr/sbin \ > /bin/bash --login
äžæçãªã·ã¹ãã ã¯ããå¿
èŠãããŸãã-åé€ããŠãã ãã
# rm -rf /tools
ãµã...äž»ãªå°é£ã¯åŸãã«ãããŸãã
ããŒããã«ãŒãã«ã®æ§ç¯ããããã¯ãŒã¯ã®æ§æã®ããã«ã·ã¹ãã ãæ§æããå¿
èŠããããŸãããã ããããã«ã€ããŠã¯æçµèšäºã§èª¬æããŸãããšã³ãã£ã³ã°ãç¶ããŸã...