설치 환경

  • Intel i7-7700K, DDR4 32G, ASUS Prime Z270-A, Nvidia GTX1080Ti, 960Evo, 4TB HDD

배포판, 데스크톱 환경, 에디션 결정

Arch / Manjaro -- 자유도 극강, 무조건 최신 버전! / 꼬이면 답 없음
Ubuntu / Debian -- 편리, 문제해결도 편리 / 공식 저장소 패키지는 좀 된 버전

GNOME2 MATE -- 가볍다 / 옛날 거다
LXDE, XFCE -- 가볍다 / 기본 상태는 안 예쁘다
Ubuntu Unity -- 버려졌다

Server edition -- 가볍다 / X11, DE 직접 설치해야 한다 -- 망하기 딱 좋다
Desktop edition -- 뭐가 이것저것 많다, Ubuntu는 쓸데없는 Avahi 네트워크 공유 도구가 기본 활성화인 등

이 중, Ubuntu MATE 16.04.3 64-bit Desktop edition을 골랐다. 이유는 데스크탑 환경이 가벼워서.

OS 설치

Debian / Ubuntu, 심지어 Manjaro도 설치는 어렵지 않다. 설치 이미지를 Rufus 같은 툴로 USB에 굽고 (멀티부팅하려면 YUMI가 좋았었다)
UEFI 설정 잡은 후 부팅해서 하라는 대로 마우스 클릭하면 끝.

파티션 결정하기

  • UEFI 기준으로 EFI (FAT32), boot (EXT4), root(/) (EXT4, btrfs), swap 파티션이 필요하다.
  • 홈은 (/home) 따로 떼어내면 좋고

근본 없는 적정 크기

  • EFI <256M; grub 또는 Windows 부트로더 정도, 사실 Clover 같은 것 깔지 않으면 100M도 사치이다
  • boot >512M; 재시작, 청소 없이 커널 업데이트가 여러 번 이어지면 부트 파티션이 가득찬다...
  • swap (마음대로) 요새는 없어도 된다 하지만, SSD 낭비이지만 물리 RAM과 같은 크기로 잡아줬다. RAM 용량이 그리 많지는 않아서...

btrfs vs. EXT4

  • HDD에서 btrfs는 재앙인 것 같다. 특히 스냅샷을 적극 활용한다면.
  • 그렇지만 SSD에서는 이제는 안정된 최신 파일 시스템인 btrfs를 써야 하지 않나.
  • 하지만 나만 쓰는 환경이 아니니 EXT4로...

백업 문제

  • btrfs + snapper를 통한 스냅샷 이용 백업본 관리는 저번에 HDD에 했을 때 끔찍하게 실패했었다. 뭘 잘못했을까?

TODO Ubuntu 16.04.3 LTS Skylake / Kabylake 호환성 문제 회피

  • Ubuntu Live USB조차 부팅이 안 되는 상황
  • grub에서 부팅 명령 편집 화면으로 들어가서 ''nomodeset pci=nomsi pcie_aspm=off'' 옵션을 주어서 부팅시켰다
  • 추후 ''/etc/default/grub'' 옵션 설정하여 플래그 고정해 둠. 혹시 커널 업데이트하면 옵션 없어도 괜찮은 것 아닐까

첫 부팅

  • 우선 ''sudo apt update; sudo apt upgrade'' 한 번 더.

드라이버 설치

Nvidia 공식 드라이버 설치를 위해 저장소를 추가해서 nvidia-387 (설치 당시 최신) 패키지를 설치했다. ''intel-microcode''도 설치했다.

GRUB 설정

''/etc/default/grub'' 파일을 열어서 ''OPTION''에다 ''nomodeset pci=nomsi pcie_aspm=off acpi_enforce_resources=lax panic=60'' 문구를 추가했다.

  • ''nomodeset'': 부팅 시 메시지 보기 위해 quiet splash 대체
  • ''pci=nomsi pcie_aspm=off acpi_enforce_resources=lax'': 카비레이크 호환성 문제 회피, 마지막 항목은 온도 센서 인식 위해
  • ''panic=60'': 프로그램의 리소스 과다 소모, CPU 과열 등으로 인해 커널 패닉 발생 시, 60초 후 재시작 이후 ''sudo update-grub'' 해서 새로운 설정 적용.

swappiness 설정 조정

여유 메모리 용량 비율이 어느 값 이하일 때 스왑 메모리 공간을 사용할 지 지정하는 값이다. 기본 swappiness가 10이면 좋겠지만, 가끔 또는 예전 OS에서는 60으로 잡혀있다. 이 대신 10, 아니 1로 잡아본다.

  • ''/etc/sysctl.conf'' 파일을 열고, 마지막 줄에 ''vm.swappiness = 1''이라고 적어 준다.

SSH 접속 포트 추가하기

원래는 iptables 통해 해야 하지만, 정 귀찮으면 보안을 포기하고 ''/etc/ssh/sshd_config''에 추가 포트를 지정해줄 수 있다.
이후 ''sudo systemctl reload sshd'' 해 준다.

고정 IP 설정

데스크탑 환경을 설치했으니 GUI 상에서 설정해도 되지만, ''/etc/network/interfaces'' 파일에 직접 설정해 본다. 예전엔 이더넷 장치 이름이 항상 eth0이었는데, 요새는 ''enp3s0''이니 무슨 이상한 이름으로 잡힌다. 유의할 것.

보안 업데이트 자동화

모든 업데이트를 자동화하면 툴끼리 버전이 안 맞아서 손이 많이 갈 수 있다. 보안 업데이트 정도만 자동화하는 걸로.

  • ''sudo update-alternatives --config unattended-upgrade''한 뒤 ''/etc/apt/apt.conf.d/'' 경로의 파일을 입맛에 맞게 조정해 줄 수 있다.

계정 기본 환경 파일

  • ''/etc/profile.d/'' ''profile'' 이름이 익숙한데, 로그인 시 전역 레벨에서 호출되는 스크립트 모음이다.
  • ''/etc/skel/'' ''adduser'' 명령으로 계정을 만들면서 홈 디렉토리도 만들게 하면, 이 경로의 파일로 내용을 채워준다.

로그인 메시지 변경

''/etc/update-motd.d/'' 디렉토리에 가면, 로그인 시 보이는 메시지를 만들어주는 스크립트가 있다. 지겨운 우분투 홈페이지 URL 주소나 새 소식 홍보를 여기서 삭제할 수 있다.

Postfix ''Satellite'' 모드로 설정하기

같은 서브넷 상에 메일 서버가 있는 경우, 해당 메일로 관리 메시지를 전송하려면 복잡한 메일 서버 설정 없이 ''satellite'' 모드로 설정해 주면 보내려는 메일을 곧장 릴레이해 준다. 스팸 메일 차단을 위해 릴레이는 외부 전송이 안 되니 유의.

Avahi 데몬 죽이기

괜히 데스크톱 버전으로 설치해서 로컬 네트워크 주위의 컴퓨터의 공유 자원을 검색하는 Avahi 서비스가 작동한다.

sudo service avahi stop
sudo systemctl disable avahi-daemon.service
sudo systemctl disable avahi-daemon.socket
꺼지는 것 맞겠지?

툴 설치

EDA 툴

Synopsys 툴

  • 함께 제공되는 설치 프로그램을 어디다가 잘 풀어둔 다음에
  • 설치하려는 툴의 패키지가 들어있는 경로를 ''installer'' 실행 후 입력, 또는 ''batch_installer''에 매개 변수로 주어 실행
  • 레드햇 리눅스 환경에 맞춰져 있어서, 그냥 실행하면 오류가 발생한다.

    • ''libxss1 libsm6 libice6 libxft2 libjpeg62 libtiff5 libmng2 libpng12-0 csh'' 패키지를 설치한 후 아래 명령을 수행해준다.

      sudo ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.5 /usr/lib/x86_64-linux-gnu/libtiff.so.3
      sudo ln -s /usr/lib/x86_64-linux-gnu/libmng.so.2 /usr/lib/x86_64-linux-gnu/libmng.so.1
      sudo update-alternatives –install /bin/sh sh /bin/bash 20

    • 세 번째 줄을 실행해 주면 실행 스크립트 돌릴 때 셸 문법 호환성 오류가 발생하지 않는다

Cadence 툴

  • 설치를 수행하기 위해, ''libxtst6:i386 libxext6:i386 libxi6:i386 ksh'' 패키지가 필요하다.
  • 또한, 루트 계정으로 실행하는 경우 루트 계정에 ''export XAUTHRITY=~/.Xauthority'' 명령을 주어서 설치 프로그램 GUI가 잘 뜨게 한다.

개발 도구: Bazel

  • Google TensorFlow를 사용중인 CPU에 맞게 빌드하려고..
  • Java JDK 설치 후 (''openjdk-9-jdk''), Bazel 저장소 추가하고 설치해 준다.

Nvidia CUDA: 각종 딥러닝 패키지에서 이용

  • Nvidia 주가 상승의 일등공신이라 할 수 있다.
  • cuDNN은 Nvidia 계정을 파서 직접 다운받아야 한다.
    • cuDNN 버전, CUDA 버전, 운영체제 버전, 설치 방식(데비안 패키지, 직접 설치)에 따라 구별되어 있다.
  • 전체 다운로드 대신 저장소 추가를 단행한 뒤, 다음이 중요하다.
  • 그냥 ''cuda''를 설치하면, 의존 패키지에 GPU 드라이버가 있어서 설치한 드라이버는 삭제되고 이전 버전이 설치되는 경우가 있다.
    • 대신 ''cuda-toolkit-8''과 같이 버전 지정해서 설치해 주면 OK.

Intel MKL

인텔 CPU도 있고 하니 빠른 수학 연산을 위해 설치해 본다. 나중에 TensorFlow 빌드할 때 쓴다

  • 데비안 저장소가 있는지는 모르겠고, 인텔 홈페이지에서 계정 만든 후 다운로드 가능하다.

Anaconda3

Ubuntu에 준비되는 기본 환경 대신 사용하려는 툴에 따른 (TensorFlow, PyCaffe, PyTorch 등등) 환경을 만들기 위해 ''virtualenv''를 쓸 수도 있지만, 보다 편리한 Anaconda를 사용해 본다. 이 동네 사람들은 뱀을 참 좋아한다.

  • Anaconda 홈페이지에서 다운로드하여 설치해 준다.
    • 공용 경로에 설치했기 때문에, source해야 할 경로를 ''/etc/profile.d/''에 설정해 주어 모든 사용자에게 적용되도록 한다.

Jupyter + JupyterHub

요새 인터넷에 보면 통계, 빅데이터, 그리고 머신러닝 코드를 보여주는데 Jupyter (또는 IPython, ...) 노트북을 사용하는 것을 자주 볼 수 있다.

  • Anaconda root 환경을 활성화한 후 ''conda install jupyter'' 해 주면 Jupyter Notebook은 잘 설치된다.

Jupyter만 설치하면 각 사용자가 직접 Jupyter Notebook 서버를 띄우고, 포트를 안 겹치게 잡아주고, HTTPS 연결을 이용하려면 또 이것저것 해 주고 해야 하는 문제가 있다. JupyterHub(+SudoSpawner)는 사용자별로 Jupyter Notebook 서버를 띄워주고 관리해 주는 역할을 한다.

  • 설치 자체는 역시나 Anaconda root 환경에서 ''conda install jupyterhub'' 하면 된다.
  • 문제는 기본 설정, 사용자 환경을 만들어주는 방법 결정 (SudoSpawner로 시스템 계정을 그대로 이용, ...), 웹 서버와 연동, HTTPS 설정이다. 요건 생략.

X2Go

Nvidia 드라이버와의 문제로 GPU 가속이 안 되는 점, X11을 대신할 Wayland(가 뭐지?)를 지원하지 않는 점 등등 아쉬운 점이 많으나, VNC, RDP 아니면 제일 나은 가상 데스크탑 접속 환경인 것 같다.

  • 공식 저장소를 추가한 뒤, ''x2goserver'', ''x2goserver-xsession'' 패키지를 설치해 준다.
  • 내 PC에서 클라이언트 프로그램을 설치해 접속하면 된다.
    • 소리 기능은 끄는 게 반응 속도 면에서 좋은 것 같다. 내가 설정을 잘못했던가.

TensorFlow (소스 빌드)

의미는 크게 없지만 더 빠른 성능을 위해 직접 빌드해 본다.

  • 공식 Git 저장소에서 ''clone'', ''checkout v1.3.1'' (당시 최신) 하고나서
  • Anaconda 환경을 하나 파 준다.
    • 파이썬 패키지 ''numpy scipy matplotlib pandas pillow wheel six protobuf markdown html5lib bleach werkzeug'' 중 취향에 따라 뺄 건 빼고 설치해 준다.
  • v1.3.1과 Bazel>=0.6.0은 호환되지 않는다. Bazel 0.5.4를 받아와서 컴파일할 계정에만 설치해 둔다. PATH 설정이 필요하니 유의.
  • ''./configure'' 해서 아까 설치한 Intel MKL 사용하고, CUDA 사용하고.
    • cuDNN을 여러 버전 설치한 경우, ''sudo update-alternatives --config libcudnn'' 명령으로 현재 TF 버전에 맞는 cuDNN을 선택한다.
    • CUDA 설정 끝에 CUDA compute 버전을 물어보는데, 내가 사용하는 GPU에 맞는 것으로 고르면 컴파일 시간이 줄고 연산 성능도 좋다.
  • ''bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package''하면 한 30분 간 열심히 빌드해 준다.
  • ''bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg'' -> ''pip install /tmp/tensorflow_pkg/<패키지 파일 이름>''
  • ''tensorflow'' 디렉토리에서 나가서, 한 번 잘 되나 테스트해 보라.

커널 패닉 기록, 반응성 향상을 위해

  • ''memlockd'' 패키지는 SSH 동작에 필요한 중요 파일을 메모리에 상주시켜준다고 한다. CPU 또는 디스크에 높은 부하를 주어 시스템이 크게 느려졌을 때 SSH 로그인 성공 가능성을 높여준다.
  • ''linux-crashdump'' 커널 패닉 또는 프로그램 크래시 발생 시, 로그를 ''/var/crash''에 남겨 준다. 디스크에 못 쓰고 죽는 극한 상황에서는 무용지물. Debian에서는 이름이 다른 것 같다.

Let's Encrypt SSL 인증서 & Certbot

비록 3개월마다 (자동) 갱신해야 하지만, 사고 시 보상금 하나 없지만, 믿-음직한 무료 SSL 인증서이다. Certbot 도구를 통해 발급·갱신이 가능하다.

  • 웹서버 무관 공용 Webroot 방식 또는 웹서버별 플러그인 방식 (Apache, Nginx 등 지원) 선택이 가능하다.
  • Nginx 플러그인은 현재 사이트 설정 파일이 한 개인 경우에만 올바로 동작하는 것 같다. 언제 개선될런지.

설치했지만 언급 않은 패키지

  • 기본 유틸리티
    intel-microcode ssh byobu csh ksh zsh fish curl vim-nox emacs unar rdiff-backup python-software-properties postfix figlet lftp chromium-browser jekyll doxygen evince zathura feh markdown fonts-nanum x2goserver x2goserver-xsession
  • 시스템 상태 감시
    iotop htop iftop dstat smartmontools lm-sensors linux-crashdump munin munin-node stress memlockd
  • 개발 도구
    build-essential git subversion bazel cmake gdb cscope ccache colorgcc colormake colordiff
  • 컴파일러
    libgfortran-4.9-dev openjdk-8-jdk
  • 라이브러리
    libboost-all-dev libatlas-dev libatlas-base-dev libopenblas-dev liblapack-dev protobuf-compiler libprotobuf-dev
  • 딥러닝 툴 드라이버/라이브러리
    nvidia-387 cuda-toolkit-8 cuda-toolkit-9 libcupti-dev libgflags-dev libgoogle-glog-dev libleveldb-dev liblmdb-dev libsnappy-dev
  • 웹 서버/메일 릴레이
    postfix nginx-full nodejs-dev npm w3m-el python-certbot-nginx
  • LaTeX 패키지 + 그래프/차트
    texlive-xetex texlive-lang-cjk ko.tex-base ko.tex-extra texlive-publishers texlive-fonts-extra libcgraph6 graphviz graphviz-dev
  • 그리고, 한글 폰트
반응형

쿵푸팬더 3

  • 1편의 이야기 공식을 다시 가져온 느낌.
    • 비슷한 악역, 만악의 근원 거북 대사부, 비법은 없엉, 겉보기로 사람을 평가하지 마!
  • 더욱 발전한 연출, 하지만 "기" 개념은 그리 와닿지 않음.
  • 파워 인플레 어쩔, 4편 어떻게 만드려구

배트맨 대 슈퍼맨

  • 배트맨이 잘 났다. 크리스찬 베일 배트맨도 좋았는데, 요기도 기대된다.
  • 멋 없는 렉스 루터, 뜬금포 원더우먼 (솔로 무비는 좋았다), 노답 로이스, 슬로우 모션 장면이 좀 길다
  • 속고 또 속는 배트맨 ㅠ.ㅠ

데드풀 (집..)

  • 잼, 2편이 기대된다. 그러나...

캡틴 아메리카: 시빌 워

  • 역시 잘 나가는 마블반점. 워너브라더스 고위 간부님들 보고 배우세요...
  • 또 속냐 토니야!

특별수사

  • 믿고 보고 싶은 명민좌 영화...
  • 그리 좋지 않은 주인공 캐릭터
  • 재미없게 무너지는 최종 보스
  • 각본을 더 잘 썼으면 좋았을텐데 아쉽다.

피너츠 무비 (pooq)

  • 따뜻한 내용이지만, 왠지 모르게 느껴지는 한기? 겨울 배경이라서?
  • 찰리 브라운 잼, 빨간머리 소녀 계속 나왔으면 좋겠다.

수어사이드 스쿼드

  • 마고 로비만 믿고 가는 영화
  • 삼바 춤이라니...

마이펫의 이중생활

  • 여주인공 강아지 어디서 만들어왔나, 참 귀엽다. 목소리는 어울리기는 하지만, 좀 깬다.

터널

  • "잠시 후 터널입니다" 안내가 무서워지는 영화
  • 먹방장인 하정우는 이 영화에서도 기대를 저버리지 않는다
  • 천만배우 오달수 잼, 오달수 단독 주연 영화는 노잼...

마션

  • 꿀잼! 소설 원작 첫 문장은 "압도적인 소설 첫 문장" 순위 매기면 항상 Top 10에 들 거다.

슈퍼스타 감사용

  • 잼. 현실은...

뷰티 인사이드

  • 스토리가 CF마냥 빈약했다. 하지만 영상미, 한효주, 이진욱, ..., 굳.

곡성 (pooq)

  • 가족들과 관람, 좋은 선택이 아니었다.

자백

  • PD수첩 짬밥은 어디 가지 않았다.

닥터 스트레인지

  • 믿고 보는 오이형
  • 어디서 이런 여주인공을 데려왔어요? 많이 나오지는 않지만...
    • 창고에서 빗자루 쓰러지는 소리에 깜짝 놀라는 장면이 최고.
반응형

라라랜드

  • 남들 다 보고 난 후에 보러 감.
  • 왜 라라랜드 라라랜드 하는지 알게 됨.
  • 엔딩 즈음의 미아 행보에 짧은 생각으로 약이 올랐으나, 이해할 수 있는 결말...

하루

  • 김명민이 나오는 타임루프물.
  • 명민좌 영화는 조선명탐정 빼고는 고민 좀 하고 가야 함...
  • 지루해질랑 말랑 할 때 끝나는 적절한 상영 시간.
    • 그동안 타임루프물 너무 많이 봤지.

공범자들

  • 전작 "자백"에 이어 이번에도 PD수첩 짬밥을 보여주는 작품.
  • PD수첩이야 잘 해왔다만, MBC, KBS가 왕년에 있을 때 잘 했느냐 하면 좀...

택시운전사

  • "이상한 나라의 송강호" 시리즈 두 번째, "변호인"에 이어 이번에는 택시운전사로.
  • 못 만들었다, 실제 상황을 제대로 표현 못했다, 마지막 추격씬이 이상하다 비판이 많지만.
  • 언제나 관객이 기대한 그대로, 또는 그 이상을 보여주는 송강호
  • 잔인성 실제 대비 줄인 것은 필요했다고는 생각됨. 이유는 없음.

저수지게임

  • 주진우 기자가 없었던 "더 플랜"은 망작이었지만,
  • 믿고 보는 주기자, "고급 탐사보도" 수업 들은 느낌.
  • 중간에 이해를 돕기 위한 애니메이션 프레임이 뚝뚝 끊겨서 아쉽.

킹스맨: 골든 서클

  • 유쾌한 액션 (몇 장면 빼고), 돌아온 콜린 퍼스.
  • 이 영화에 뭘 바라겠나, 이 정도면 됐지...?
  • 3편을 위한 징검다리 느낌이 너무 강하다, 조연은 왜 다 저세상으로 보내나.
  • 글래스고베리 가서 만든 장면 만들 능력으로, 1편의 신선병맛을 살려줬으면.
  • 중간에 나오는 싱가포르 변호사 WTF씨가 아시아인 비하라는 의견이 있다. 한국에서 얼마를 팔아줬는데 이런 짓을!
  • 글래스고베리 장면이 여성 모욕이라는 의견이 있다. 그러나 이 영화는 원래 요 모양 요 꼴...
  • 2편 보스가 약해빠진 건, 캐릭터에 공감 안되는 설정 장난쳐둔 건 감독의 마약 근절 의지를 보여주는 것이라는 평 겸 실드가 있다.

남한산성

  • 소설 읽을 때 느낀 분위기... 출구 없는 답답함
  • 주화파 주장의 근거를 깊이 다루지 않은 점 + 김상헌 제외 주화파 인물을 개그 캐릭터로만 날린 점 아쉽. 말싸움 잔치 영화인데 이 점 때문인지 감정이입이 잘 안 되었다.
  • 마지막에 뜬금없이 캐릭터 성향이 바뀌는 김상헌, 왜 때문에?

부산행 (TV)

  • 멋진 남자 마동석, 폭풍간지 윰블리, (여기서는 조금 약한...) 공유, 김수안.
  • 이런 영화를 로드 무비라 하는군?
  • 중간중간 나오는 TV 영상 등을 통한 정부 비판이 와닿지는 않았음.
  • 결말이 비극 뿐이지만은 않아서 좋다.
반응형

+ Recent posts