□ exec 명령어

실행중인 docker container에 특정 명령을 수행하도록 지시하는 명령어로 대부분의 경우 -it 옵션을 지정할 필요가 있다.

-it 옵션은 표준 입출력(STDIN)을 통해서 접속하라는 것으로 TTY 연결을 통해서 수행된다.

사용방법은 아래와 같다.

 

docker exec -it [명령어 또는 실행 프로그램]

 

docker exec -it /bin/bash

가장 많이 사용하는 명령 중 하나로 docker container에 bash을 이용해서 TTY 연결을 하라는 것이다. 즉, docker container상의 콘솔(console) 창이 하나 생성된다.

 

 

 

 

반응형

'Linux' 카테고리의 다른 글

필수 SW, FileZilla Client  (0) 2020.03.28
docker pytorch 설치  (0) 2019.11.08
nvdia driver, CUDA, CUDNN 설치 여부 및 버전 검사  (0) 2019.09.15
docker에 visual studio code 설치  (0) 2019.07.14
docker와 GUI 환경 연결  (0) 2019.07.14

1. Nvidia Driver 설치 여부 및 버전 확인

$ cat /proc/driver/nvidia/version

 정상적으로 설치되어 있는 경우 아래와 같이 출력된다.

NVRM version: NVIDIA UNIX x86_64 Kernel Module  430.34  Wed Jun 26 12:19:48 CDT 2019
GCC version:  gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) 

 

이외 nvidia-smi를 이용해서 확인하는 방법도 있다. (이것을 더 추천한다.)

$ nvidia-smi

 

2.  CUDA

$ nvcc --version

 정상적으로 설치되어 있는 경우 아래와 같이 출력된다.

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243

 

nvidia-smi는 수행되는데 nvcc 가 수행 안될 경우, 

보통은 path 설정 문제이다. 하기와 같이 .bashrc 파일에 경로(path)를 추가한다.

# VI 에디터로 .bashrc 파일에 경로 추가

$ vi ~/.bashrc

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

 

# .bashrc 재수행

$ source ~/.bashrc

 

3. CUDNN

버전별로 스크립트가 하기와 같이 다르다.

# cuDNN 8.x.x 이전 버전
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

# cuDNN 8.x.x 이후 버전
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

 

 

$ cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

→ 정상적으로 설치되어 있는 경우 아래와 같이 출력된다.

#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 3
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"

 

반응형

Visual studio code 설치만 필요하고 docker환경에서 설치는 필요없다면

내용 중 " Visual Studio Code 설치" 부분만 참고하면 된다.

 

 Docker container에 ubuntu 설치

vscode(Visual Studion code)를 설치하기 위해
    반드시 ubuntu docker container가 필요한 것은 아니다.

    "설명"을 위해서 ubuntu를 하나의 docker container로 새로 생성했을 뿐이다.

    docker container로 ubuntu를 설치하면 거의 깡통에 가깝기 때문에
    필요한 모든 라이브러리들을 설명하기 쉽기 때문이다.

 

docker container에 ubuntu를 설치한다.

docker pull ubuntu:latest

 

 Docker container와 X windows 환경 연동

docker container에서 X windows 환경을 사용할 수 있도록 설정한다.

docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY --name ubuntu1 ubuntu

 

참고) 재실행 

docker start utuntu1

 

참고) 재실행 후 접속

$ docker attach utuntu1 

또는

$ docker exec -it ubuntu1 bash

 

설치된 ubuntu는 거의 깡통이므로 아래와 같이 필수 애플리케이션을 추가 설치한다.

컨테이너가 시작되면 root 계정이므로 그대로 설치가 가능하다. 

가급적 아래를 순차적으로 수행하여 설치해 주는 것이 좋다.

apt-get update
apt-get install sudo
apt-get install wget
apt-get install curl
apt-get install build-essential
apt-get install vim
apt-get install software-properties-common

※ 참고) apt-get install software-properties-common : add-apt-repository를 사용할 수 있게 해준다.

 

(옵션) 신규 user를 생성하고 su 명령을 통해서 user를 변경한다. root를 그대로 사용해도 무방하다.

adduser tester

user를 tester로 변경했으므로 이제 sudo 명령이 필요하다. 역시 root를 그대로 사용한다면 sudo 명령은 필요없다.

참고로 user가 sudo 명령을 사용할 수 있도록 /etc/sudoers 파일에 등록을 먼저 끝내야 한다.

본 글에서는 특정 user에서 설치하므로 아래 명령 모두 sudo를 항상 붙여주지만 root에서 설치하는 경우에는 sudo를 제거하고 실행한다. 그리고 편의 상 docker를 썼을 뿐 당연히 docker 환경에서만 설치가 가능한 것은 아니다. 

 

 Visual Studio Code 설치

1) GPG 키를 다운로드하여 /etc/apt/trusted.gpg.d/ 경로에 복사

sudo sh -c 'curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg'

아래와 같이 나오면 성공

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed
100   983  100   983    0     0   1977      0 --:--:-- --:--:-- --:--:--  1977

 

2) Visual Studio Code를 다운로드 받기 위한 저장소를 추가

sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'

 

3) 그리고 추가한 저장소를 이용해서 패키지 목록을 갱신하고 Visual Studio Code를 설치한다.

sudo apt-get update
sudo apt-get install code

 

4) 설치가 완료되면 다음과 같이 실행한다.

단, 실행 전에 docker 밖의 별도 호스트 쉘에서 

$ xhost +local:docker

명령으로 xwindows 통신이 가능하도록 먼저 처리되어 있어야 한다.

code

※ 참고) root에서 수행할 경우 --user-data-dir 를 붙여주라고 나온다. 아래 정도면 적당하다.

code --user-data-dir=/home/vscode

□ Error 1 : libX11-xcb.so.1 등 없다고 나올 때

   "libX11-xcb.so.1: cannot open shared object file: No such file or directory ......."

 

관련 라이브러리들을 메세지마다 설치한다. 아래는 해당 오류들이 많이 나오는 라이브러리들이다.

참고로 깡통 ubuntu일수록 해당 메세지들이 많이 나온다.

미리 다 설치할 필요는 없고 오류 메세지가 나오면 하나씩 설치해 주도록 한다~.

 

- 자주 나오는 라이브러리

sudo apt install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 
sudo apt install -y libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6

- 이외 가끔 나오는 라이브러리

sudo apt install -y libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 
sudo apt install -y libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 
sudo apt install -y libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 
sudo apt install -y ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget

 

□ Error 2 : gnupg, gnupg2 등 없다고 나올 때

   "E: gnupg, gnupg2 and gnupg1 do not seem to be installed, ... "

 

역시 깡통 ubuntu에서 주로 저장소 추가하거나 할때 자주 나온다. 아래와 같이 가볍게 해결이 가능하다.

sudo apt-get update
sudo apt-get install gnupg   ( ... gnupg1 gnupg2 ... )

 

□ Error 3 : git 이 없다고 나올 때

실행 중 나타날 수 있다. 간단히 해결이 가능하다.

sudo apt-get install git

 

반응형

docker container에서 GUI 애플리케이션을 수행할 필요가 있는 경우가 많다.

이를테면 vscode를 실행시킨다던지, 심심하니까 xeyes를 실행시켜 놓는다던지..

아래 설명한 방법을 사용하면 docker container가 무엇이든 X windows와 연동하여 GUI 애플리케이션 수행이 가능하다.

참고로 여기서는 테스트를 위해서 ubuntu를 container로 설치하여 설명한다.

( 참고로 저의 경우 tensorflow와 pytorch docker container에서 vscode를 주로 호출해서 사용합니다.

  OS로 사용하는 ubuntu에 기본 외에 다른 것을 설치하기를 싫어하기 때문이며

  개발환경은 가급적 docker 내에 구성하려고 애쓰는 편입니다. )

 

□ docker container에서 GUI 환경 사용

docker 환경에서 GUI application을 사용하는 것을 테스트 하기 위해 ubuntu 환경을 설치한다.

$ docker pull ubuntu


docker container를 X windows와 연동할 수 있도록 옵션을 붙여서 수행한다.

$ docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY --name ubuntu1 ubuntu

 

위에서 -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY 옵션은 핵심이다.

또한 --name ubuntu1에서 ubuntu1은 작성 예일 뿐이며 당연히 사용자가 원하는 이름으로 정하면 된다.

 

참고로 exit로 빠져나왔을 경우

$ docker start utuntu1

$ docker attach ubuntu1

 

□ 연동 확인 테스트

docker의 ubuntu1 컨테이너를 실행시킨 후 

X windows 연동 테스트를 위해서 xeyes를 사용하고 xeyes 설치를 위해 x11-apps를 설치한다.

$ apt-get update

$ apt-get install x11-apps

 

xeyes를 실행하면 보통은 아래처럼 오류가 나온다.

$ xeyes

No protocol specified
Error: Can't open display: :1

docker container가 아닌 외부에서 다른 터미널을 하나 띄우고 아래와 같이 수행한다.

docker user가 실행하는 모든 프로그램을 X windows와 통신하게 해준다.

$ xhost +local:docker

 

해제하려면 다음과 같이 수행한다.

$ xhost -local:docker

 

docker user 외에도 아래처럼 X windows를 로그인한 user로 설정해도 된다.
xhost +local:$USER
xhost -local:$USER

반응형

시작하기 전에 아래와 같이 환경 구성을 해주는 것을 권장한다.

 

 시작 환경 구성

$ sudo apt-get update
$ sudo apt-get install build-essential

 

Nvidia GTX-1080Ti와 ubuntu 18.04 환경에서는 거의 모두 nouveau 문제가 있다.
Nvidia GTX-1080Ti graphic card가 이미 설치되어 있는 장비에 ubuntu 18.04을 설치하면 nouveau 설정으로 그래픽 카드가 설치 당시에 이미 자동 설정되기 때문이다. 따라서 nouveau 설치 여부를 확인하고 제거하는 것이 필요하다.

 

※ 주의) console 모드를 통해 Nvidia driver를 설치하는 것보다는 Nvidia 홈페이지에서 driver를 다운로드받아서 설치하는 것을 권장한다. 아래 nouveau를 제거하기 전에 미리 Nvidia driver를 받아 두도록 한다.

 

□ nouveau 설치 확인
아래 명령어 실행 후 리스트가 출력되면 nouveau가 설치된 것이다. Nvidia 정식 드라이버 설치를 위해선 제거해야 한다.

$ lsmod | grep nouveau

 

□ nouveau 제거 및 blacklist 등록
아래 경로에 blacklist 파일을 생성한다.

$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf



생성된 .conf 파일에 아래 두 줄을 입력한다.

blacklist nouveau
options nouveau modset=0


아래 명령어를 입력 후 재부팅한다. update에 1분 쯤? ... 조금 시간이 걸린다. 기다리자.

$ sudo update-initramfs -u
$ sudo reboot

 

□ Nviida driver console 환경 설치
아래는 우분투 18.04에서 기본으로 제공하는 X windows 환경을 종료하고 Console 모드로 들어가는 명령어이다.

$sudo service gdm stop


참고로 우분투 16.04에서 기본으로 제공하는 X windows 환경은 아래와 같은 명령으로 종료한다.

$ sudo service lightdm stop

 

Ubuntu driver를 repository에 등록한다.

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update
$ sudo ubuntu-drivers autoinstall
$ sudo reboot

 

재부팅 후에 아래 명령을 통해서 Nvidia driver 설치여부를 확인한다.

$ nvidia-smi

 

이제 CUDA를 설치한다.

$ sudo apt install nvidia-cuda-toolkit gcc-6
반응형

'Linux' 카테고리의 다른 글

docker에 visual studio code 설치  (0) 2019.07.14
docker와 GUI 환경 연결  (0) 2019.07.14
ubuntu 18.04 - Ubuntu 한글 입력기 설치(fcitx)  (1) 2019.07.14
How can I install CUDA 9 on Ubuntu 17.10  (0) 2018.07.20
Ubuntu Synergy 설치  (0) 2018.07.20

우분투에서 ibus를 통한 한글 변환이 생각처럼 잘 안되는 경우가 많다.

그래서 fcitx를 이용하는 것이 종종 더 편하다.

아래는 fcitx를 이용해서 한글 입력 설정을 하는 내용이다.

18.04에서 설정한 내용이지만 16.04나 상위버전에도 문제없이 설치가 가능하다.

 

□ 설치 환경

   - ubuntu 18.04

   - ubuntu 20.04

   - 원격 데스크톱 수행 시 trooble shooting 

 

일단 아래와 같이 수행해서 fcitx-hangul을 설치한다. 대개의 경우... 아주 잘 설치된다.

sudo apt-get update
$ sudo apt-get install fcitx-hangul

 

우분투 Setting에서 Region & Language 수행 - Manage installed Language 버튼 실행한다.

 

아래와 같이 실행되면 Language 관련 여러가지를 설치한다고 나오는데 설치한다.

 

 

설치가 완료되면 하단 keyboard input method system 항목을 fcitx로 변경한다.

 

Language Support에서 fcitx 설정

 

시스템 재부팅~. 재부팅이 완료되면 우상단에 키보드 모양의 아이콘이 보이고 이 아이콘을 클릭하여 configure를 선택한다. 우상단에 해당 아이콘이 안보이는 경우 이 글 마지막 부분을 참고하면 된다.

 

Input Method Configuration에서 하단 "+" 버튼을 클릭한다. 

 

Add input method 창이 뜨면 "Only Show Current Language"에 체크가 된 것을 해제하고 hangul을 입력해서 검색한다.

 

한글 추가가 끝났다. 아래처럼 보인다. Keyboard-English(US)는 있어도 되고 없어도 된다.

 

이제 Input Method Configuration의 Global Config 탭(tab)을 클릭한다.

Trigger Input Method의 왼쪽 버튼을 마우스 클릭한다음 "한영키"를 눌러서 바꿔주면 끝난다.

 

한글이 잘 설치되면 한영키 클릭 시 아래와 같이 키보드 아이콘이 바뀌는 것을 볼 수 있다.

 

 Fcitx의 Input Method Configuration 아이콘이 보이지 않는 경우

애플리케이션 모음(show application)에서 fcitx로 검색하면 하기와 같이 2개 아이콘을 볼 수 있다.

fcitx, fcitx configuration

fcitx configuration을 실행한다.

 

□ Trooble shooting, 원격 데스크톱 수행 시 한글 입력기 동작 문제

재시작(reboot) 후에도 처음에 fcitx가 잘 동작하지 않는 경우가 있다. 이 경우, 보통은 한 두번 더 재시작을 하면 해결된다. 즉, 위 단계를 모두 끝낸 후 재시작을 더 해보고 원격 데스크톱 접속을 하면 잘 되는 것을 확인할 수 있다.

 

□ Special Thanks

Ubuntu 20 설치 : Telesto 님께서 Ubuntu 20에서도 동일 방법으로 잘 설치됨을 알려 주셨습니다.

반응형

원문URL →https://askubuntu.com/questions/967332/how-can-i-install-cuda-9-on-ubuntu-17-10

반응형


□ 우분투 18.04 설치 방법

$ sudo apt-get install synergy


설치 후 아래와 같은 오류가 발생하며 실행이 안될 경우

(참고로 해당 메세지는 콘솔에서 synergy를 수행해야 터미널 화면에서 볼 수 있고 아이콘 실행 시 볼 수 없다.)


□ 오류 메세지 1

    "Failed to load module canberra-gtk-module"


$ sudo apt install libcanberrra-gtk3-module

$ sudo apt install libcanberrra-gtk-module 

$ sudo apt install libcanberrra-gtk*


중 하나를 실행한다. 다만, 보통 첫 번째는 이미 설치되었다고 나온다.

해당 패치가 끝나면 Failed to ... 는 사라지지만 여전히 아래 메세지와 함께 수행이 안되는 경우가 있다.


□ 오류 메세지 2

    "synergy system tray is unavailable quitting"


$ sudo apt-get install sni-qt


으로 해결 가능하다.


□ 오류 메세지 3

다음과 유사한 메세지가 나오면 SSL  소켓 암호화에 문제가 있는 것으로 아래와 같이 해결한다.

    ERROR: ssl error occurred (system call failure)
    ERROR: eof violates ssl protocol
    ERROR: failed to accept secure socket
    INFO: client connection may not be secure


Synergy 메뉴 Edit > Settings 클릭

창 중간에 있는 Network Security 에서 "Use SSL encryption" 체크를 해제한다.


□ 윈도우용 시너지 패치 버전

아래는 윈도우용 시너지 한글 패치 중 가장 완성도가 높은 버전이다.

아주 잘 호환되며 설치시 잘 동작한다.

패치 해주신 분(아자)께 정말 감사드린다.


원문저자  → 아자

원문url     → https://ommokazza.blogspot.com/2017/07/synergy_19.html


원문 내용 중 ...............

꽤 오래 전에 등록하였던 한글키 패치 PR이 공식 Synergy 버전에 반영되었습니다.

Synergy 1.8.8 버전 이후로는 별다른 한글키 패치가 필요없습니다.

그 동안 SSL을 지원하는 Pro 버전을 구입하고도, 한글키 문제로 이용하지 못했던 분들도 이제 공식 버전을 이용할 수 있게 되었네요.


저자가 업로드한 synergy window 버전     

window 64bit 

 synergy-v1.8.8-stable-c30301e-Windows-x64.msi

window 32bit 

 synergy-v1.8.8-stable-c30301e-Windows-x86.msi







반응형

주피터 노트북 설치 시 

'notebook': [Errno 2] No such file or directory

오류가 발생하는 경우가 있다.  해당 오류가 발생하면 아무하는 일없이 하루 정도 워프는 순간이다.

아침에 발생하면 밤새 이것만 붙들어야하는 .... 


해당 오류는 아래와 같이 수행하는 경우 해결된다.

다만, 워낙 case by case라 다 통하는 것은 아니다.

그러나, 대게 아래 1)번만 수행해도 해결되고 안되면 3)번까지 수행했을 때 종종 잘 해결된다.



1) Jupyter notebook 강제 설치 명령

 # For Python 2

 pip install --upgrade --force-reinstall --no-cache-dir jupyter


 # For Python 3

 pip3 install --upgrade --force-reinstall --no-cache-dir jupyter


2) [Optional] Notebook을 uninstall 한다.

 # For Python 2

 sudo pip uninstall notebook


 # For Python 3

 sudo pip3 uninstall notebook


3) Notebook reinstall 한다.

 # For Python 2

  sudo pip install --upgrade notebook


 # For Python 3

  sudo pip3 install --upgrade notebook 





반응형

'Linux' 카테고리의 다른 글

How can I install CUDA 9 on Ubuntu 17.10  (0) 2018.07.20
Ubuntu Synergy 설치  (0) 2018.07.20
conda vs. pip vs. virtualenv  (0) 2018.02.03
VIM 에디터 VIMRC 세팅  (0) 2018.02.03
COMODO vaccine - Filesystem filter driver is not loaded 패치  (0) 2018.01.21





원문URL → http://stuarteberg.github.io/conda-docs/_downloads/conda-pip-virtualenv-translator.html




conda vs. pip vs. virtualenv

If you’ve used pip and virtualenv in the past, you can use conda to perform all of the same operations. Pip is a package manager, and Virtualenv is an environment manager. Conda is both.



TaskConda package and environment manager commandPip package manager commandVirtualenv environment manager command
Install a packageconda install $PACKAGE_NAMEpip install $PACKAGE_NAMEX
Update a packageconda update --name$ENVIRONMENT_
NAME$PACKAGE_NAME
pip install --upgrade $PACKAGE_NAMEX
Update package managerconda update condaLinux/OSX: pip install -U pip Win: python -m pip install -U pipX
Uninstall a packageconda remove --name$ENVIRONMENT_
NAME$PACKAGE_NAME
pip uninstall $PACKAGE_NAMEX
Create an environmentconda create --name$ENVIRONMENT_
NAME python
Xcd $ENV_BASE_DIR; 
virtualenv$ENVIRONMENT_NAME
Activate an environmentsource 
activate$ENVIRONMENT_NAME
Xsource$ENV_BASE_DIR/
$ENVIRONMENT_NAME/bin/activate
Deactivate an environmentsource deactivateXdeactivate
Search available packagesconda search $SEARCH_TERMpip search $SEARCH_TERMX
Install package from specific sourceconda install --channel $URL$PACKAGE_NAMEpip install --index-url $URL$PACKAGE_NAMEX
List installed packagesconda list --name$ENVIRONMENT_NAMEpip listX
Create requirements fileconda list --exportpip freezeX
List all environmentsconda info --envsXInstall virtualenv wrapper, then lsvirtualenv
Install other package managerconda install pippip install condaX
Install Pythonconda install python=x.xXX
Update Pythonconda update python *XX


  • conda update python updates to the most recent in the series, so Python 2 to latest 2.x, Python 3 to latest 3.x, and so on.








반응형

+ Recent posts