linuxfromscratch

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linuxfromscratch [2024/06/07 19:30] – [화면 출력 로그파일로 저장] baecylinuxfromscratch [2025/12/21 18:46] (현재) – [PS1 설정] baecy
줄 1: 줄 1:
-====== Linux From Scratch ======+===== 토막 상식 =====
  
 +==== 설치된 Perl Module 목록 확인 ====
 +=== Perl과 기본 시스템 도구만 이용 ===
 +<codeprism bash>
 +#!/bin/sh
 +
 +# Begin ~/bin/pml.sh
 +
 +# List of installed Perl Modules
 +
 +# grep "$pattern" - $1이 비어있으면 전체 검색(.), 있으면 $1로 검색
 +# /"Module"/ - "Module" 가 포함된 줄만 선택
 +# !seen[$NF]++ - awk 내부 배열을 사용해서 중복 제거
 +# print $NF - 마지만 단어(모듈명)
 +# sort --ignore-case (-f) | 대소문자 구분없이 정렬
 +
 +pattern="${1:-.}"
 +
 +perldoc perllocal | awk '/"Module"/ {if (!seen[$NF]++) print $NF}' | sort --ignore-case | grep --color=always -E -i "$pattern"
 +
 +# End ~/bin/pml.sh
 +</codeprism>
 +<codeprism cmd=true cmdout=2-10>
 +pml.sh "tiny|test"
 +Capture::Tiny
 +Class::Tiny
 +Test::Deep
 +Test::Exception
 +Test::Fatal
 +Test::Needs
 +Test::Warnings
 +Try::Tiny</codeprism>
 +
 +이런 방식으로 다중 검색도 가능함.
 +
 +=== ExtUtils::Install module 이용 ===
 +<codeprism bash>
 +#!/bin/sh
 +
 +# Begin ~/bin/pml.sh
 +
 +# List of installed Perl Modules
 +
 +# 검색어가 없으면 사용법 출력
 +if [ -z "$1" ]; then
 +        echo "Usage: $(basename $0) [pattern]"
 +        echo "Example: $(basename $0) build"
 +        exit 1
 +fi
 +
 +QUERY=$1
 +
 +echo "---- Searching installed Perl modules for: $QUERY ----"
 +
 +# ExtUtils::Installed를 사용하여 설치된 모듈 목록과 버전을 출력
 +# grep -i를 사용하여 대소문자 구분 없이 검색
 +
 +perl -MExtUtils::Installed -e '
 +        my $inst = ExtUtils::Installed->new();
 +        foreach my $mod ($inst->modules()) {
 +                my $ver = $inst->version($mod) || "N/A";
 +                print "$mod | Version: $ver\n";
 +        }
 +' | grep --color=auto -E -i "$QUERY"
 +
 +# 일치하는 결과가 없으면
 +
 +if [ ${PIPESTATUS[1]} -ne 0 ]; then
 +        echo "Result: No Matching Modules found."
 +fi
 +
 +# End ~/bin/pml.sh</codeprism>
 +<codeprism cmd=true cmdout=2-10>
 +pml.sh text
 +---- Searching installed Perl modules for: text ----
 +Text::BibTeX | Version: 0.91
 +Text::Diff | Version: 1.45
 +Text::Glob | Version: 0.11</codeprism>
 +
 +버전을 출력해주는 장점이 있음. \\
 +특정 모듈 설치전에는 사용하기 힘들다는 단점이 있음.
 +==== 설치된 Python3 Module 목록 확인 ====
 +
 +<codeprism bash>
 +pip3 list
 +</codeprism>
 +
 +==== Qemu Screen Dump ====
 +
 +  - <Ctrl>+<Alt>+<2> 그래픽 모드 \\ <Ctrl>+<A>, <C> -nographic 모드 \\ 모니터 콘솔로 전환
 +  - screendump __filename.ppm__ \\ 다음과 같이 **-f** 옵션으로 저장 포맷 지정 가능 \\ screendump screenshot.png -f png \\ 포맷 지정 저장 방식에서 세그폴트 발생하면 ppm으로 저장후 변환
 +  - <Ctrl>+<Alt>+<1> 가상 머신 화면 복귀
 +
 +
 +==== xwindow screen saver & dpms 시간 설정 ====
 +
 +<codeprism bash>
 +xset s 600 600
 +xset dpms 600 600 600
 +</codeprism>
 +순서대로 \\
 +화면보호기 작동시간,전환시간\\
 +DPMS 대기,유예,끄기 \\
 +
 +==== for, echo and sed =====
 +
 +<code bash>
 +for i in $(echo "ldapadd, ldapcompare, ldapdelete, ldapexop, ldapmodify, slapschema, slaptest" | sed 's/,/ /g') ; do find /usr/bin -type f -name $i ; done
 +</code>
 ==== Grep && Tar ==== ==== Grep && Tar ====
  
줄 84: 줄 192:
  
 <code bash> <code bash>
-function double-check() {                                                                                                   +function file-finder() { 
-    local FindWord=*${1}*                                                                                                   +    local FindWord=*${1}* 
-    local FindDir=$2                                                                                                        +    local FindDir=$2 
-                                                                                                                            +    if [ -z $FindDir ] ; then 
-    if [ -z $FindDir ] ; then                                                                                               +        FindDir=/usr 
-        FindDir=/usr                                                                                                        +    fi 
-    fi                                                                                                                      +    find $FindDir -name $FindWord 2> /dev/null | sort | grep -E --color=always $1 
-                                                                                                                            +    echo "Found file $(ansi --green ${1}) in directory $(ansi --yellow ${FindDir}) (refer to the list abovc).
-    find $FindDir -name $FindWord 2> /dev/null | sort | grep $1                                                             +
-                                                                                                                            +export -f file-finder
-    echo "I searched for $(ansi --green ${1}) you wanted in th $(ansi --yellow ${FindDir}) you specified                  +
-                                                                                                                          +
-                                                                                                                            +
-export -f double-check  +
 </code> </code>
  
줄 129: 줄 233:
 ---- ----
 ==== PS1 설정 ==== ==== PS1 설정 ====
 +일반사용자
 +<codeprism bash>\[\033[01;34m\]\u\[\033[00m\]@\[\033[01;36m\]\h \[\033[01;34m\]\w\[\033[00m\] \$ </codeprism>
 +루트사용자
 +<codeprism bash>\[\033[01;35m\]\u\[\033[00m\]@\[\033[01;35m\]\h \[\033[01;37m\]\w \[\033[01;31m\]# \[\033[00m\]</codeprism>
  
-=== 최초 === 
  
-++++ 많이 지저분하고 번로움 +=== 2차 개선 === 
-<code lang=bash cmd=true user=root+++++ 아닌데 쓸데없이 길어짐
-touch $LFS/etc/lfs-chroot</code>\\ +<code bash> 
-~/.bashrc\\ +PS1_ROOT='\[$(tput setaf 203)\][ \[$(tput sgr0)\]\w \[$(tput setaf 203)\]] \[$(tput sgr0)\]\$\n' 
-<code lang=bash> +PS1_USER='\[$(tput setaf 75)\]\[$(tput sgr0)\]\\[$(tput setaf 75)\]\[$(tput sgr0)\]\$\n' 
-if -f /etc/lfs-chroot ]; then +PS1_HEAD='\[$(tput setaf 229)\]\u\[$(tput setaf 199)\]@\[$(tput setaf 215)\]\h ' 
-  PS1='\[$(tput setaf 75)\]<LFS> \[$(tput setaf 229)\]\u\[$(tput setaf 199)\]@\[$(tput setaf 215)\]\\[$(tput setaf 75)\]\\[$(tput sgr0)\]\$\n'+if [ "$(awk '$5=="/" {print $1}' </proc/1/mountinfo)" != "$(awk '$5=="/" {print $1}' </proc/$$/mountinfo)" ] ; then 
 +    if [ $(id -u) -eq 0 ] ; then 
 +        PS1="<Chroot>${PS1_HEAD}${PS1_ROOT}" 
 +    else 
 +        PS1="<Chroot>${PS1_HEAD}${PS1_USER}" 
 +    fi
 else else
-  PS1='\[$(tput setaf 75)\]\[$(tput setaf 229)\]\u\[$(tput setaf 199)\]@\[$(tput setaf 215)\]\h \[$(tput setaf 75)\]\w \[$(tput sgr0)\]\$\n' +    if [ $(id -u) -eq 0 ; then 
-fi</code>\\+        PS1="${PS1_HEAD}${PS1_ROOT}" 
 +    else 
 +        PS1="${PS1_HEAD}${PS1_USER}" 
 +    fi 
 +fi 
 +</code>
 ++++ ++++
- 
 === 1차 개선 === === 1차 개선 ===
  
줄 161: 줄 277:
 </code> </code>
 ++++ ++++
 +=== 최초 ===
  
-=== 2차 개선 === +++++ 많이 지저분하고 번거로움 | 
- +<code lang=bash cmd=true user=root> 
-<code bash> +touch $LFS/etc/lfs-chroot</code>\\ 
-PS1_ROOT='\[$(tput setaf 203)\][ \[$(tput sgr0)\]\w \[$(tput setaf 203)\]] \[$(tput sgr0)\]\$\n' +~/.bashrc\\ 
-PS1_USER='\[$(tput setaf 75)\]\[$(tput sgr0)\]\\[$(tput setaf 75)\]\[$(tput sgr0)\]\$\n' +<code lang=bash> 
-PS1_HEAD='\[$(tput setaf 229)\]\u\[$(tput setaf 199)\]@\[$(tput setaf 215)\]\h ' +if -f /etc/lfs-chroot ]; then 
-if [ "$(awk '$5=="/" {print $1}' </proc/1/mountinfo)" != "$(awk '$5=="/" {print $1}' </proc/$$/mountinfo)" ] ; th +  PS1='\[$(tput setaf 75)\]<LFS> \[$(tput setaf 229)\]\u\[$(tput setaf 199)\]@\[$(tput setaf 215)\]\\[$(tput setaf 75)\]\\[$(tput sgr0)\]\$\n'
-en                                                                                                                 +
-    if [ $(id -u) -eq 0 ] ; then +
-        PS1="<Chroot>${PS1_HEAD}${PS1_ROOT}" +
-    else +
-        PS1="<Chroot>${PS1_HEAD}${PS1_USER}"                                                                       +
-    fi+
 else else
-    if [ $(id -u) -eq 0 ; then +  PS1='\[$(tput setaf 75)\]\[$(tput setaf 229)\]\u\[$(tput setaf 199)\]@\[$(tput setaf 215)\]\h \[$(tput setaf 75)\]\w \[$(tput sgr0)\]\$\n' 
-        PS1="${PS1_HEAD}${PS1_ROOT}"                                                                               +fi</code>\\ 
-    else +++++
-        PS1="${PS1_HEAD}${PS1_USER}" +
-    fi +
-fi +
-</code> +
 ---- ----
 ==== Debian 설치 후 추가적인 사항 ==== ==== Debian 설치 후 추가적인 사항 ====
줄 189: 줄 295:
 LFS 진행에 필요한 패키지 설치 LFS 진행에 필요한 패키지 설치
  
-<codelang=bash >+<code bash >
 sudo apt install build-essentials bison gawk m4 texinfo texinfo  ## 필수 사항 sudo apt install build-essentials bison gawk m4 texinfo texinfo  ## 필수 사항
 sudo apt install gettext libisl-dev                              ## 선택 사항 sudo apt install gettext libisl-dev                              ## 선택 사항
줄 205: 줄 311:
 ---- ----
 ==== Qemu에서 부팅중 마운트 에러가 발생하는 경우 ==== ==== Qemu에서 부팅중 마운트 에러가 발생하는 경우 ====
-Qemu에서 가상머신 시작시 디바이스 순서가 바뀌는 일이 발생 \\ + 
-다음과 같이 처리했음+Qemu에서 가상머신 시작시 디바이스 순서가 바뀌는 일이 발생해서 처리한 내용. 
-<code cmd=true lang=bash>+ 
 +파티션 레이블 설정 
 + 
 +<code lang=bash>
 mkswap -L <label> <partition> mkswap -L <label> <partition>
-e2label <device> <label></code> +e2label <device> <label> 
-등으로 라벨 설후 +</code> 
 + 
 +''/etc/fstab'' 
 <code lang=bash> <code lang=bash>
 # /etc/fstab: static file system information. # /etc/fstab: static file system information.
줄 230: 줄 342:
 LABEL=LFS_DISK          /mnt/lfs        ext4            defaults                1       1 LABEL=LFS_DISK          /mnt/lfs        ext4            defaults                1       1
 </code> </code>
-정상적으로 부팅 가능. \\ + 
-UUID 설정도 가능지만 그럴때는 주석으로 확실게 어떤 장치인지 명할것+UUID로 설정하는 경우 장치명을 주석으로 표기면 추후 수정시 용이
-\\ \\+ 
 +----
 ==== Putty에서 Ncurses 설치 후 <Home>,<End> Key 사용 설정 ==== ==== Putty에서 Ncurses 설치 후 <Home>,<End> Key 사용 설정 ====
 +
 ~/.profie or ~/.bashrc ~/.profie or ~/.bashrc
 +
 <code lang=bash> <code lang=bash>
 TERM=putty-256color TERM=putty-256color
-export TERM</code> +export TERM 
-이렇게 적용 할 것. +</code> 
-\\ \\+ 
 +----
 ==== Glibc-2.35 Compile ==== ==== Glibc-2.35 Compile ====
 컴파일중 알 수 없는 에러가 발생하고 매번 발생 위치가 다르다면 -j1 인자로 병렬처리 없이 make 실행 컴파일중 알 수 없는 에러가 발생하고 매번 발생 위치가 다르다면 -j1 인자로 병렬처리 없이 make 실행
줄 256: 줄 372:
  
 === Wget === === Wget ===
-소스 패키지 다운로드에 필요 \\ + 
-[[https://www.linuxfromscratch.org/blfs/view/systemd/basicnet/wget.html|Wget-1.24.5]] \\+소스 패키지 다운로드에 필요  
 + 
 +[[https://www.linuxfromscratch.org/blfs/view/systemd/basicnet/wget.html|Wget-1.24.5]]  
 설치 순서 : Libunistring - Libidn2 - Libpsl - Libtasn1 - P11-kit - SQLite - NSPR - NSS -Make-ca - Wget 설치 순서 : Libunistring - Libidn2 - Libpsl - Libtasn1 - P11-kit - SQLite - NSPR - NSS -Make-ca - Wget
-== DEPS ==+ 
 +++++ 의존성|
   * [[https://www.linuxfromscratch.org/blfs/view/systemd/basicnet/libpsl.html|Libpsl-0.21.5]] REQ   * [[https://www.linuxfromscratch.org/blfs/view/systemd/basicnet/libpsl.html|Libpsl-0.21.5]] REQ
     * [[https://www.linuxfromscratch.org/blfs/view/systemd/general/libunistring.html|Libunistring-1.2]] REQ     * [[https://www.linuxfromscratch.org/blfs/view/systemd/general/libunistring.html|Libunistring-1.2]] REQ
줄 273: 줄 393:
       * [[https://www.linuxfromscratch.org/blfs/view/systemd/server/sqlite.html|SQLite-3.45.3]] REC       * [[https://www.linuxfromscratch.org/blfs/view/systemd/server/sqlite.html|SQLite-3.45.3]] REC
       * [[https://www.linuxfromscratch.org/blfs/view/systemd/postlfs/p11-kit.html|P11-kit-0.25.3]] Runtime REC       * [[https://www.linuxfromscratch.org/blfs/view/systemd/postlfs/p11-kit.html|P11-kit-0.25.3]] Runtime REC
 +++++
  
 === NFS-UTILS === === NFS-UTILS ===
-[[https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/nfs-utils.html|NFS-Utils-2.6.4]] \\ 
-필요한 패키지를 아래의 순서대로 설치 후 설치 \\ 
  
-== DEPS ==+[[https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/nfs-utils.html|NFS-Utils-2.6.4]] 
 + 
 +필요한 패키지를 아래의 순서대로 설치 후 설치  
 + 
 +++++ 의존성|
   * [[https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/libtirpc.html|libtirpc-1.3.4]] REQ   * [[https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/libtirpc.html|libtirpc-1.3.4]] REQ
   * [[https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/libevent.html|libevent-2.1.12]] REQ   * [[https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/libevent.html|libevent-2.1.12]] REQ
줄 284: 줄 407:
   * [[https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/sqlite.html|SQLite-3.45.1]] REQ   * [[https://www.linuxfromscratch.org/blfs/view/stable-systemd/server/sqlite.html|SQLite-3.45.1]] REQ
   * [[https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/rpcbind.html|rpcbind-1.2.6]] REQ   * [[https://www.linuxfromscratch.org/blfs/view/stable-systemd/basicnet/rpcbind.html|rpcbind-1.2.6]] REQ
 +++++
  
 === SSHFS (NFS 사용 안하는 경우)=== === SSHFS (NFS 사용 안하는 경우)===
-N40L에 있는 소스 디렉토리 마운트에 필요 \\ + 
-[[https://www.linuxfromscratch.org/blfs/view/systemd/postlfs/sshfs.html|sshfs-3.7.3]] \\+N40L에 있는 소스 디렉토리 마운트에 필요 
 + 
 +[[https://www.linuxfromscratch.org/blfs/view/systemd/postlfs/sshfs.html|sshfs-3.7.3]]  
 설치 순서 : ICU - Libxml2 - Sgml-common - UnZip - Docbook-xsl-nons - Docbook-xml - Libxslt - Docutil - Packing - PCRE2 - Glib - OpenSSH - Fuse - SSHFS 설치 순서 : ICU - Libxml2 - Sgml-common - UnZip - Docbook-xsl-nons - Docbook-xml - Libxslt - Docutil - Packing - PCRE2 - Glib - OpenSSH - Fuse - SSHFS
-== DEPS ==+ 
 +++++ 의존성|
   * [[https://www.linuxfromscratch.org/blfs/view/systemd/postlfs/fuse.html|Fuse-3.16-1]] REQ   * [[https://www.linuxfromscratch.org/blfs/view/systemd/postlfs/fuse.html|Fuse-3.16-1]] REQ
   * [[https://www.linuxfromscratch.org/blfs/view/systemd/general/glib2.html|Glib-2.80.0]] REQ   * [[https://www.linuxfromscratch.org/blfs/view/systemd/general/glib2.html|Glib-2.80.0]] REQ
줄 304: 줄 432:
         * [[https://www.linuxfromscratch.org/blfs/view/systemd/general/libxml2.html|Libxml2-2.12.6]] REQ         * [[https://www.linuxfromscratch.org/blfs/view/systemd/general/libxml2.html|Libxml2-2.12.6]] REQ
     * [[https://www.linuxfromscratch.org/blfs/view/systemd/general/pcre2.html|Pcre2-10.43]] REC     * [[https://www.linuxfromscratch.org/blfs/view/systemd/general/pcre2.html|Pcre2-10.43]] REC
-  * [[https://www.linuxfromscratch.org/blfs/downloads/stable-systemd/BLFS-BOOK-12.1-systemd-nochunks.html#openssh|OpenSSH 9.6p1]] REQ\\+  * [[https://www.linuxfromscratch.org/blfs/downloads/stable-systemd/BLFS-BOOK-12.1-systemd-nochunks.html#openssh|OpenSSH 9.6p1]] REQ 
 +++++
  
-==== Glibc 2.39 Testsuite Fail ==== +----
-8.5 Glibc 2.39 ''make check'' Fail  +
-<code cmd=true cmdout=3-9 user=root> +
-make check +
-grep "^FAIL" -l $(find -name \*.out) | cat  +
-./conform/XOPEN2K8/ndbm.h/conform.out +
-./conform/UNIX98/varargs.h/conform.out +
-./conform/UNIX98/ndbm.h/conform.out +
-./conform/XPG42/varargs.h/conform.out +
-./conform/XPG42/ndbm.h/conform.out +
-./conform/XOPEN2K/ndbm.h/conform.out +
-./conform/XPG4/varargs.h/conform.out</code>\\ +
- +
-=== 다음의 두 가지 경우는 넘겨도 상관없음 === +
-ndbm.h가 없어서 Fail.\\ +
-8.37. GDBM-1.23 을 설치하면 해결 +
-<code lang=log> +
-/tmp/tmpgeea6yiz/test.c:1:10: fatal error: ndbm.h: No such file or directory +
-    1 | #include <ndbm.h> +
-      |          ^~~~~~~~ +
-compilation terminated. +
-FAIL: Availability of <ndbm.h> +
-SKIP: Namespace of <ndbm.h> +
----------------------------------------------------------------------------- +
-  Total number of tests   :    1 +
-  Number of failed tests  :    1 +
-  Number of xfailed tests :    0 +
-  Number of skipped tests :    1</code>\\ +
-GCC에서 더 이상 지원하지 않는 <varargs.h>를 사용해서 발생하는 Fail +
-<code lang=log> +
-  In file included from /tmp/tmpi1821p31/test.c:1: +
-/usr/lib/gcc/x86_64-lfs-linux-gnu/13.2.0/include/varargs.h:4:2: error: #error "GCC no longer implements <varargs.h>." +
-    4 | #error "GCC no longer implements <varargs.h>." +
-      |  ^~~~~ +
-/usr/lib/gcc/x86_64-lfs-linux-gnu/13.2.0/include/varargs.h:5:2: error: #error "Revise your code to use <stdarg.h>." +
-    5 | #error "Revise your code to use <stdarg.h>." +
-      |  ^~~~~ +
-FAIL: Availability of <varargs.h> +
-SKIP: Namespace of <varargs.h> +
----------------------------------------------------------------------------- +
-  Total number of tests   :    1 +
-  Number of failed tests  :    1 +
-  Number of xfailed tests :    0 +
-  Number of skipped tests :    1 +
-  </code>\\+
  
 ==== Textinfo Dir File Rebuild ==== ==== Textinfo Dir File Rebuild ====
 +
 <code lang=bash> <code lang=bash>
 pushd /usr/share/info pushd /usr/share/info
줄 359: 줄 445:
     do install-info $f dir 2>/dev/null     do install-info $f dir 2>/dev/null
   done   done
-popd</code> \\+popd 
 +</code>
  
 +----
 ==== Swap file ==== ==== Swap file ====
 +
 <code cmd=true cmdout=6,7> <code cmd=true cmdout=6,7>
 export LFS=/mnt/lfs export LFS=/mnt/lfs
줄 371: 줄 460:
 no label, UUID=890ba9a5-da48-4374-84ce-b71b91863e00 no label, UUID=890ba9a5-da48-4374-84ce-b71b91863e00
 sudo swapon $LFS_SWAP sudo swapon $LFS_SWAP
-sudo echo "$LFS_SWAP  swap  swap  defaults  0  0" >> /etc/fstab</code>\\+sudo echo "$LFS_SWAP  swap  swap  defaults  0  0" >> /etc/fstab 
 +</code> 
 + 
 +---- 
 +==== Binutils 설치하기 전에 ISL 설치하기 ==== 
 + 
 +GMP를 먼저 설치 
  
-==== Binutils 설치하기 전에 ISL 설치하기 (실패) ==== 
-GMP를 먼저 설치 \\ 
 <code lang=bash> <code lang=bash>
 ./configure --prefix=/usr    \ ./configure --prefix=/usr    \
줄 382: 줄 475:
 make make
 make check 2>&1 | tee gmp-check.log make check 2>&1 | tee gmp-check.log
-## 책에서는 199이라고 나오지만 실제는 200이 나옴 
 awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log
-</code>\\ +</code> 
-LFS 12.1 기준으로 8.20 참고 \\ + 
-[[https://libisl.sourceforge.io/|ISL Homepage]]에서 받아서 준비 \\+[[https://libisl.sourceforge.io/|ISL Homepage]]에서 받아서 준비 
 <code lang=bash> <code lang=bash>
-./configure --prefix=/usr --sysconfdir=/etc --disable-static --with-gmp=system+./configure --prefix=/usr --disable-static --with-gmp=system
 make make
-make install</code> \\+make install 
 +</code>
  
-==== BLFS 시작하기 전에 필요한 패키지 ==== +----
-sudo, nfs-utils(또는 sshfs), openssh, wget+
  
 ==== $LFS/sources에서 디렉토리 검색 ==== ==== $LFS/sources에서 디렉토리 검색 ====
 +가장 간단한 방법
 +<code lang=bash>
 +ls -d */
 +</code>
 +
 <code lang=bash> <code lang=bash>
 alias dirfind="find -mindepth 1 -maxdepth 1 -type d | sed 's@^./@@'" alias dirfind="find -mindepth 1 -maxdepth 1 -type d | sed 's@^./@@'"
줄 401: 줄 499:
 rm -rf $(dirfind)  ## 설치 완료된 소스 디렉토리 삭제 rm -rf $(dirfind)  ## 설치 완료된 소스 디렉토리 삭제
 ## 설치 완료된 패키지 디렉토리만 삭제할거면 다음과 같이 ## 설치 완료된 패키지 디렉토리만 삭제할거면 다음과 같이
-alias SearchAndDestroy='find -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} \;'</code> \\+alias SearchAndDestroy='find -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} \;' 
 +</code>
  
 +----
 ==== SBU 측정 ==== ==== SBU 측정 ====
 <code lang=bash> <code lang=bash>
  • linuxfromscratch.1717788620.txt.gz
  • 마지막으로 수정됨: 2024/06/07 19:30
  • 저자 baecy