Category: Linux

  • locale

    왠만하면 도커 컨테이너에서 locale과 관련된 설정은 따로 해주지 않아도 잘 동작하는 편이다.

    그런데 R이나 R과 연관된 프로그램 등을 설치하면 꼭 locale 설정을 하라고 한다.

    echo 'Acquire::http::proxy "http://rcc01.work:3142/";' >> /etc/apt/apt.conf
    
    apt-get update
    apt-get -y upgrade
    
    rm /etc/localtime
    ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
    
    apt-get -y install locales
    locale-gen ko_KR.UTF-8 
    localedef -f UTF-8 -i ko_KR ko_KR.UTF-8
    
    echo "export LC_ALL=ko_KR.UTF-8" >> /root/.bashrc
  • systemd-resolved

    Ubuntu는 보통 systemd-resolved가 설치되어 있다. systemd-resolved를 사용하는 상황에서는 기본적으로 DNS 쿼리에 대응할 수 있도록 UDP 53을 사용한다. cloudflare의 proxy-dns를 설치하여 포트 변경 없이 사용할 때에는 충돌이 발생하여 proxy-dns를 이용할 수 없다. 이럴 경우에는 systemd-resolved 를 사용하지 않도록 설정하는 것이 필요하다.

    다음의 명령어로 사용을 해지한다.

    sudo systemctl disable systemd-resolved.service
    sudo systemctl stop systemd-resolved.service

    resolv.conf 를 새로 작성한다.

    sudo rm /etc/resolv.conf
    sudo nano /etc/resolv.conf

    nameserver 항목을 입력한다.

    nameserver 10.10.10.1

    다른 방법으로 입력해보자. 나의 경우에는 공유기의 gateway가 DNS 서버 주소와 같다. 이를 확인하는 방법으로 ip route 를 실행한 후 default via 행을 확인한다. 아래와 같다. 3번째 항목이 gateway이다.

    default via 10.10.10.1 dev eth0 proto dhcp src 10.10.10.177 metric 100

    이것을 gate라는 변수로 받도록 한다.

    gate=$(ip route | awk '/default/ {print $3}')

    이 내용을 /etc/resolv.conf 파일에 기록한다.

    echo nameserver ${gate} | tee /etc/resolv.conf
  • bash completion

    sudo apt install bash-completion

    Bash를 사용하는 일부 리눅스에서는 Tab을 누르면 자동 완성 기능이 있다. 어떤 시스템에서는 없다. 그래서 코파일럿에게 물어 봤더니 위의 프로그램을 설치하라고 한다.

  • sudo: do-release-upgrade: command not found

    Ubuntu 에서 do-release-upgrade를 실행할 수 없을 때

    sudo apt install update-manager-core