linuxfromscratch:auto-lfs

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linuxfromscratch:auto-lfs [2026/03/10 05:32] baecylinuxfromscratch:auto-lfs [2026/04/15 17:58] (현재) baecy
줄 1: 줄 1:
 +=== 디렉터리/한줄에 하나/버전번호 제거 ===
 +<codeprism bash>
 +ls -d1 * | sed  's/-[^-]*$//'
 +find . -maxdepth 1 -type d -not -path '.' | sed 's@./@@;s@-.*@@'
 +</codeprism>
 +=== LC_COLLATE 문제로 빌드 터지기 싫음 ===
 +<codeprism lang=bash>
 +### Toggle LANG C.UTF-8 <-> ko_KR.UTF-8
 +function tg-lang() {
 +# 현재 LANG 확인
 +    case "$LANG" in
 +        ko_KR*)
 +            export LANG=C.UTF-8
 +            ;;
 +        *)
 +            export LANG=ko_KR.UTF-8
 +            ;;
 +    esac
 +    # LC_ALL 로 인한 우선순위 변경 방지
 +    unset LC_ALL
 +
 +    # PS1 재설정
 +    if [ -f "/etc/profile.d/_ps1" ]; then
 +        source /etc/profile.d/_ps1
 +    fi
 +
 +    echo -e "Locale toggled to: \033[1;32m$LANG\033[0m"
 +}
 +## alias 별도 관리
 +# alias tl='tg-lang' -> /etc/profile.d/10-alias.sh
 +</codeprism>
 +
 === 파이썬 모듈 빌드하고 설치하기 귀찮음 === === 파이썬 모듈 빌드하고 설치하기 귀찮음 ===
 <codeprism lang=bash> <codeprism lang=bash>
줄 5: 줄 37:
 ## Get Package Name ## Get Package Name
 if [[ -r $PWD/PKG-INFO ]]; then if [[ -r $PWD/PKG-INFO ]]; then
-        PKG_NAME=$(grep -i '^Name:'| sed 's/[nN]ame:[[:space:]* //' | tr -d '\r')+        PKG_NAME=$(grep -i '^Name:' PKG-INFO | sed 's/[nN]ame:[[:space:]]* //' | tr -d '\r')
 else else
         echo "PKG-INFO not found. Need package name for install"         echo "PKG-INFO not found. Need package name for install"
줄 23: 줄 55:
 ${PERM_ELEV} pip3 install --no-index --find-links dist "${PKG_NAME}" ${PERM_ELEV} pip3 install --no-index --find-links dist "${PKG_NAME}"
 </codeprism> </codeprism>
 +=== ./configure --docdir= 입력하기 귀찮음 개선판 ===
 +<codeprism lang=bash>
 +#!/usr/bin/env bash
 +
 +## 기본값은 현재 디렉터리를 선택하도록 0 지정
 +DEPTH=${1:-0}
 +
 +## 인자가 숫자인지 확인
 +if ! [[ "$DEPTH" =~ ^[0-9]+$ ]]; then
 +    echo "Usage: $0 [number]"
 +    exit 1
 +fi
 +
 +## 기본 디렉터리 및 대상 디렉터리 초기값 설정
 +ORIGINAL_PWD=$(pwd)
 +TARGET_PATH=$ORIGINAL_PWD
 +
 +# 주어진 인자(숫자) 만큼 상위 디렉터리 이름 반환
 +for (( i=0; i<$DEPTH; i++ )); do
 +    # Stop when reach the top directory
 +    if [ "$TARGET_PATH" = "/" ]; then
 +        break
 +    fi
 +    TARGET_PATH=$(dirname "$TARGET_PATH")
 +done
 +
 +## 실제 반환할 값
 +DOCDIR_VALUE=$(basename "$TARGET_PATH")
 +
 +## 인자(숫자)만큼 이동한 결과가 "/"인 경우 
 +## 최종 반환값이 "/usr/share/doc//" 이 되는 상황 방지
 +## 현재 디렉터리에서 한단계 상위 디렉터리 이름 반환
 +if [ "$DOCDIR_VALUE" = "/" ] || [ -z "$DOCDIR_VALUE" ]; then
 +    TARGET_PATH=$ORIGINAL_PWD
 +    RECOVER_DEPTH=$(( DEPTH > 0 ? 1 : 0 ))
 +
 +    for (( i=0; i<$RECOVER_DEPTH; i++ )); do
 +        TARGET_PATH=$(dirname "$TARGET_PATH")
 +    done
 +    DOCDIR_VALUE=$(basename "$TARGET_PATH")
 +fi
 +
 +## 최종 반환값
 +echo "/usr/share/doc/${DOCDIR_VALUE}"
 +
 +unset DEPTH ORIGINAL_PWD TARGET_PATH RECOVER_DEPTH DOCDIR_VALUE
 +</codeprism>
 +
 === ./confiugre --docdir= 입력하기 귀찮음 === === ./confiugre --docdir= 입력하기 귀찮음 ===
 <codeprism lang=bash> <codeprism lang=bash>
줄 201: 줄 281:
 ---- ----
 === 파일 다운로드 링크 처리 === === 파일 다운로드 링크 처리 ===
 +<wrap hi>편하기는 한데 이제 와서 보니 굳이 필요한가 싶어짐</wrap>
  
 다음과 같이 등록하고 사용해야 ''cd'' 가 작동을 합니다. 다음과 같이 등록하고 사용해야 ''cd'' 가 작동을 합니다.
  • linuxfromscratch/auto-lfs.1773120723.txt.gz
  • 마지막으로 수정됨: 2026/03/10 05:32
  • 저자 baecy