윈도우 WSL(Windows Subsystem for Linux)에 비주얼 스튜디오 코드(Visual Studio Code) 설치하기

윈도우용 비주얼 스튜디오 코드에서도 WSL의 파일을 열고, 변경하고, 저장하는게 된다.

다만 여러가지 불편한 점이 있는데, 가장 치명적인 문제는 아래 두 개다.

  1. 파일 저장했을 때 watcher trigger가 동작하지 않는다.(https://github.com/Microsoft/vscode/issues/53621)
  2. 에디터에서 새 폴더나 파일을 생성하면, WSL상에서 권한 문제로 접근이 어렵다.

그 중 첫번째 문제는 파일을 저장할 때 마다 쉘에서 touch를 해주는 방법으로 해결했다.

윈도우용 vscode에서 파일 편집 후 WSL watcher 동작시키기

vscode에 raiscui.save-and-run-wsl extension을 설치한다.
user_setting에 다음 추가.

“saveAndRun”: {
“commands”: [
{
“match”: “(.vue|.css|.js|.json|.html|.yaml)”, // watch할 원하는 확장자 추가
“isShellCommand”: true,
“cmd”: “touch $(echo ${file} | sed ‘s/.*(rootfs)//g’)”,
“wsl”: true,
“useShortcut”: false
}
]
}

그러나 아쉽게도 두번째 문제의 해결 방법을 찾지 못해서 귀찮지만 WSL에 리눅스용 Visual studio code를 깔아 사용하기로 했다.

  1. sudo apt-get update && time sudo apt-get dist-upgrade // 패키지 업데이트
  2. 리눅스에서 브라우저를 열고 https://code.visualstudio.com/Download 에서 Visual Studio Code를 다운받는다.
  3. sudo dpkg -i code_xxx.deb
    3-1. sudo apt install libnotify4 libnss3 libxkbfile1 libgconf-2-4 libsecret-1-0 libgtk-3-0 libxss1 // 의존성 오류가 발생하면 의존 패키지를 설치한다.
    3-2. sudo apt –fix-broken // 의존 패키지 설치 중에 문제가 발생하면 이 커맨드로 문제를 해결한다.
  4. 윈도우용 vcxsrv(https://sourceforge.net/projects/vcxsrv/) 를 설치해서 실행한다.
  5. .bashrc에 export DISPLAY=localhost:0.0를 추가한다.

한글 입력 환경 구축

  1. sudo dpkg-reconfigure locales에서 ko_KR.EUC-KR, ko_KR.UTF-8를 설치한다.
  2. sudo apt-get install fonts-nanum로 한글 글꼴을 설치한다.
  3. sudo apt install uim uim-byeoru로 벼루를 설치한다.
  4. .bashrc에 다음을 추가한다.

    export XIM=uim
    export XMODIFIERS=@im=uim
    export UIM_CANDWIN_PROG=uim-candwin-gtk
    export GTK_IM_MODULE=uim
    export QT_IM_MODULE=uim
    if [ $SHLVL -eq 1 ]; then
    uim-xim &
    fi
  5. uim-pref-gtk로 설정을 열고 Global settings > input method deployment > Default input method에서 Byeoru를 선택한다.

이제 쉘에서 code를 입력하면 WSL에서 Visual Studio Code이 구동된다.
매번 쉘을 띄워 vscode를 구동하기 귀찮다면 윈도우 단축 아이콘에 Target을 아래와 같이 만들어 주면 된다.
C:\Windows\System32\wsl.exe zsh -ic code

참고문서



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

윈도우 MBR(Master Boot Record) 복구하기


리눅스와 윈도우 듀얼부팅을 사용하다가 더는 리눅스 시스템을 유지할 필요가 없다고 느꼈다.
개발 편의성 때문에 리눅스를 주로 사용했었는데, 이젠 64bit 버전의 윈도우즈에서 WSL(Windows Subsystem for Linux)을 지원하니 윈도우에서도 개발이 쉬우리라는 생각이 들었기 때문이다.
필요한 몇몇 파일을 백업하고 우선 부트로더를 Grub에서 윈도우 단일 부팅으로 변경하려고 시도했다. 그 첫 번째 방법은 Bootice라는 유틸리티를 이용하는 것이었는데 실패했다.


Bootice로 grub 듀얼부팅을 윈도우 단일 부팅으로 바꿔주기

BOOTICE (https://sites.google.com/site/gbrtools/home/software/bootice-portable/information)

1. BOOTICE 실행
2. Destination Disk에서 Grub 설치된 디스크를 선택 (예: C:)
3. Process MBR 버튼 클릭
4. Windows NT 5.x / 6.x MBR 선택
5. Install / Config 버튼 클릭
6. Windows NT 6.x MBR 버튼 클릭 (windows 10)
7. Close 버튼 클릭

이렇게 짧은 시간에 부트로더를 마음대로 바꿀 수 있다니, 정말 유용한 유틸리티라고 생각했다.
그리고 재부팅을 했는데, 윈도우 10이 아닌 오랜만에 보는 DOS화면이 나를 반겨준다.
C: 프롬프트는 깜빡이는것이 믿기 어려웠던 나는 차분히 재부팅을 시도했다.
그러나 몇 번을 시도해도 내가 원하는 윈도우 화면이 나오지 않았다.
이제 무언가 잘못되었다는 현실을 받아들이고 다른 방법을 찾아야 할 때다.
윈도우가 설치된 컴퓨터 한 대와 16기가 이상의 USB 메모리가 하나 필요하다.


윈도우즈 미디어 만들기 도구로 MBR 복구하기

1. 윈도우 미디어 만들기 도구(https://www.microsoft.com/ko-kr/software-download/windows10)를 다운받아 usb에 설치한다.
2. USB를 이용해 부팅한다.
3. Shift 키 + F10 키를 눌러 명령 프롬프트를 실행한다.
4. diskpart를 실행한다.
5. select disk 0 실행한다.
5-1. list partition 실행하여 부트파티션이 있으면 그 파티션을 선택하고 8번으로 간다. 아니면 6번으로 간다.
6. create partition primary size=100 실행한다.
7. select partition 1 실행한다.(생성한 부트파티션)
8. Format fs=ntfs label="System" quick 실행한다.(파티션 포멧)
9. Active 실행한다.
10. exit 로 diskpart를 종료한다.
11. bootrec /fixmbr 실행한다.
12. bootrec /fixboot 실행한다.
13. bootrec /rebuildbcd 실행한다.

드디어 MBR이 복구되었다.
그러나 이런저런 시도 끝에 파티션이 다 망가진 뒤였기 때문에 윈도우를 다시 설치해야 했다.
DELL 노트북은 복구 프로그램이 잘 되어있다는 것이 그나마 다행스러운 점이었다.(https://www.dell.com/support/article/kr/ko/krdhs1/sln298442/dell-recovery-restore-usb-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%A5%BC-%EC%83%9D%EC%84%B1%ED%95%98%EA%B3%A0-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95?lang=ko)
그리고 복구한 윈도우 버전이 7이어서 10으로 업데이트해 줬다.(https://www.microsoft.com/ko-kr/software-download/windows10)

만약 부트로더를 손댈 생각이라면 중요 파일은 우선 백업해두고, 복구 usb를 만들어 둔 뒤에 손대도록 하자.



by


Tags : , , , , , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

아치리눅스 기반 배포판. Antergos 설정.


그동안 아치(arch)리눅스 기반의 manjaro를 쭉 써오다가 Antergos로 갈아탔다.
둘 다 아치리눅스기반이라 쓰던 설정을 그대로 써도 된다.
어쩐 일인지 한글 입력이 잘 되지 않아 입력기를 uim에서 dasom으로 바꾸었다.
하드웨어 사양이 좋아져서 DE도 xfce에서 gnome으로 갈아탔다.

다솜 한글 입력기 설치

yaourt -S dasom-git
yaourt -S dasom-gtk-git
yaourt -S dasom-jeongeum-git
yaourt -S dasom-qt-git

.xprofile 설정

IM="dasom"
export GTK_IM_MODULE=$IM
export XMODIFIERS=@im=$IM
export QT_IM_MODULE=$IM
export QT4_IM_MODULE=$IM
export XIM=$IM
dasom-daemon
dasom-indicator
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'dasom'>}"


설정 적용 확인

  1. export | grep IM
    declare -x GTK_IM_MODULE="dasom"
    declare -x QT4_IM_MODULE="dasom"
    declare -x QT_IM_MODULE="dasom"
  2. export | grep XMODIFIERS
    declare -x XMODIFIERS="@im=dasom"

Antergos에 설치한 아치리눅스 패키지 목록

ack : 검색
android-apktool : a tool for reengineering Android apk files
android-sdk : 안드로이드 sdk
android-sdk-build-tools : 안드로이드 sdk 빌드 툴
android-sdk-platform-tools : 안드로이드 sdk 플랫폼 툴
android-udev
avidemux-cli-git : 영상 편집
avidemux-core-git : 영상 편집
avidemux-qt4-git : 영상 편집
aws-cli : aws 커맨드라인 클라이언트
chromium : 웹 브라우저
chromium-pepper-flash : 크로미움 플래시 플러그인
dasom-git : 한글 입력기
dasom-gtk-git : 한글 입력기
dasom-jeongeum-git : 한글 입력기
dasom-qt-git : 한글 입력기
docker : 도커
dosfstools : 도스 파일시스템 유틸
epdfview : pdf 뷰어
evince : 문서 뷰어
evolus-pencil-svn : GUI 프로토타이핑 툴
fdupes : 중복파일 제거
firefox : 웹 브라우저
firefox-raismth : 파이어폭스 실버라이트 플러그인
focuswriter : 글쓰기용 도구
gedit : 에디터
genymotion : aos 시뮬레이터
gimp : 이미지 편집기
git : git
hugo : static page generator
marble : 지구본
mariadb : mariadb
meld : diff툴
mercurial : 버전관리도구
mysql-workbench : mysql 관리툴
nano : 에디터
nautilus-share : nautilus 파일 공유
ncdu : 하드 용량 체크
noto-fonts : noto 폰트
numix-frost-themes : numix 테마
numix-icon-theme : numix 테마
numix-icon-theme-square : numix 테마
openssh : ssh
oxygen-icons : oxygen아이콘
pgadmin3 : postgres 관리 툴
pidcat : logcat보기 쉽게.
playonlinux : wine 사용을 쉽게.
poppler-data : pdf 랜더링 라이브러리용 인코딩 데이터
postgis : postgis
postgresql : postgrel
profile-cleaner : 웹브라우저 프로필 사이즈 줄이기
profile-sync-daemon : 브라우저 프로파일 싱크(속도개선)
qps : 프로세스 메니저
qupzilla : 웹브라우저
redis : 메모리기반 key-value 저장소
redshift : 블루라이트 필터
s3cmd : s3 커맨드
sbt : 스칼라 빌드툴
sed : 문자열 처리
steam : 스팀 게임
sublime-text-nightly : 에디터
terminator : 터미널
tilda : 터미널
tomighty : 뽀모도로 타이머
tribler : 토렌트
ttf-baekmuk : 글꼴
ttf-bitstream-vera : 글꼴
ttf-dejavu : 글꼴
ttf-freefont : 글꼴
ttf-google-fonts : 글꼴
ttf-liberation : 글꼴
ttf-nanum : 글꼴
unetbootin : 부팅usb 제작용
unity-editor : 유니티 에디터
unrar : 압축해제
unzip : 압축해제
vi : vi에디터
viewnior : 이미지 뷰어
vim-colorsupport : 빔 색상지원
vips : 이미지 처리 라이브러리
virtualbox-guest-dkms
virtualbox-guest-modules
virtualbox-host-dkms
virtualbox-host-modules
visual-studio-code : 코드 에디터
vlc : 비디오 재생
wine : 와인(윈도우즈용 프로그램 실행)
wine-mono
wine_gecko
winetricks
xnviewmp : 이미지 편집기 및 뷰어

문제 해결

Pacman 오류 (invalid or corrupted package (PGP signature))

archlinux-keyring 패키지를 업데이트 한다.

Antergos



by


Tags : , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

안정성에 중점을 둔 리눅스 배포판. NixOS

아치 리눅스를 쓰다 보면 어느 날 갑자기 부팅이 안 되곤 했다.
업데이트하고 전원을 끈 다음에 일어난 일이다.
어떨 때는 디스플레이가 안 켜지고,
어떨 때는 무선 인터넷이 안 잡힌다.
업데이트하면서 뭔가 문제가 발생한 거다.
그럴 때마다 괜한 데 시간을 보내면 짜증이 나고,
그냥 맘 편히 맥을 쓸까 하는 마음이 든다.
그러나 리눅스는 또 나름 리눅스만의 매력이 있으니 다시 마음을 진정하고 고쳐나간다.
NixOS는 업그레이드 후에 발생하는 이런 문제를 막아줄 획기적인 리눅스 배포판이다.
업그레이드해서 문제가 생기면 rollback으로 되돌리면 된다!
그리고 NixOS 설정파일에서 모든 설정을 관리한다.
/etc/fstab이라든가 /etc/passwd같은 파일을 직접 손댈 필요가 없고(읽기 전용으로 수정 불가), 하나의 파일에서 모든 환경 설정을 관리한다.
환경설정을 담은 설정파일 하나면 여러 대의 머신이 동일한 환경으로 세팅된다.
참 매력적인 배포판이다.
그러나 환경을 마음대로 뜯어고칠 수 없다는 건, 그만큼 제약도 많다는 이야기다.
어디서 바이너리 하나 받아다가 쓰려고 해도 patchelf등을 이용해 패치를 해줘야 한다.
NixOS패키지 매니저에 꽤 많은 패키지가 있지만, 아치나 우분투 패키지에 비하면 한참 모자라다.
하드웨어를 여러 군데에 동일 세팅으로 배포해야 하는 경우에는 쓸만하겠지만,
계속 패키지를 설치하고 지우고, 환경설정을 바꾸는 데스크톱용으로는 아쉬운 배포판이다.

참고자료

https://nixos.org
https://nixos.org/nixos/manual/
https://nixos.org/nixos/manual/options.html
https://en.wikipedia.org/wiki/NixOS
http://funloop.org/post/2015-08-01-why-i-use-nixos.html
https://nixos.org/wiki/Cheatsheet
https://nixos.org/wiki/Install/remove_software



by


Tags : , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

아치 리눅스에 2D/3D 개발 엔진 유니티(Unity) 설치하기


유니티는 윈도우와 맥만을 공식 지원하기 때문에 이번에 노트북을 바꿀 때 고민을 좀 했다.

'뭐 내가 유니티를 쓸 일이 얼마나 있겠어? 그냥 리눅스 머신으로 가자.'

그러나 새 리눅스 머신에 만족스러워할 틈도 없이 유니티를 만질 일이 생겼다.

다행인 점은 얼마전부터 유니티에서 리눅스용 빌드를 지원하기 시작했다는 거다.

http://blogs.unity3d.com/kr/2015/08/26/unity-comes-to-linux-experimental-build-now-available/

게다가 아치리눅스 aur에 최신 빌드의 유니티 패키지가 올라와 있기까지 하니 설치는 식은 죽 먹기다.

소스에서 설치와 바이너리로 설치하는 두 버전의 패키지가 올라와 있다.

https://aur.archlinux.org/packages/unity-editor/

https://aur.archlinux.org/packages/unity-editor-bin/

자 이제 설치를 해보자.

yaourt -S unity-editor
혹은

yaourt -S unity-editor-bin

설치가 잘 되는듯하다가 다운로드가 자꾸 끊긴다.

스무 번 정도 시도하다가 안 되겠다 싶어서 따로 내려 받았다.

wget installer-url
혹은

curl -LO installer-url

64비트 우분투용 유니티 인스톨러:
http://files.unity3d.com/levi/unity-editor-5.2.2f1+20151018_amd64.deb

그 밖의 64비트 배포판용 유니티 인스톨러:
http://files.unity3d.com/levi/unity-editor-installer-5.2.2f1+20151018.sh

아래 링크를 따라가면 유니티 최신 빌드 정보가 있다.
http://forum.unity3d.com/threads/unity-on-linux-release-notes-and-known-issues.350256/

다운로드가 끝났다면,

yaourt -S unity-editor
설치를 하다가 다운로드에서 실패하길 기다린다.
실패하면 내려받은 인스톨러를 /tmp/yaourt-tmp-username/aur-unity-editor 폴더에 복사하고,
설치 다시시도를 누른다.
그럼 sha256sums으로 제대로 된 파일인지 검사를 하고 설치를 진행한다.

그리고 No space left on device라는 오류 메시지를 만났다.

유니티가 워낙 덩치가 크므로 기본 /tmp 용량으론 터무니없어서 그렇다.

https://www.reddit.com/r/archlinux/comments/2fj10b/no_space_left_on_device를 참조해서 해결책을 찾았다.

sudo systemctl mask tmp.mount && reboot

다행히 그 이후로 설치 과정에 어려운 점은 없었다.

unity-editor

커맨드를 실행하니 유니티창이 뜨고 로그인을 하라고 나온다.

이메일을 입력하려고 하는데 아무리 시도해도 키보드가 먹지 않는 거다.

혹시 지금 쓰는 Gnome3이 문제인가 싶어서 Xfce4에서도 시도해봤는데 여전히 키보드 입력이 되지 않는다.

unity-editor-bin과 unity-editor를 번갈아 설치하며 한참을 고생했다.

https://wiki.archlinux.org/index.php/Unity3D

에도 마땅한 해결책은 보이지 않는다.

열심히 방법을 찾다 보니 미리 고생한 사람들이 여럿 보였다.

http://forum.unity3d.com/threads/unity-on-arch-manjaro-linux.350315/page-3#post-2271637

http://forum.unity3d.com/threads/unable-to-enter-text-after-clicking-somewhere.352213/

http://forum.unity3d.com/threads/first-start-logon-screen-no-keyboard-input.350396/

http://forum.unity3d.com/threads/cant-sign-in-on-unity-5-2-for-linux.369279/

리눅스를 쓰면 이런 점이 참 좋다. 전혀 모르는 사람들과 함께 고생하다 보면 리눅스 유저들에게 왠지 모를 친근감을 느끼게 된다.

하지만 맥을 쓴다면 그 시간에 커피 한잔 마시면서 여유를 만끽하겠지. OTL

Fluxbox에서 유니티에 로그인이 된다!

그리고 로그인 이후에는 원래 쓰던 DE에서도 잘 돌아간다.

아직 정식 버전이 아니라 그런지 종종 멈추긴 하지만 그래도 꽤 잘 돌아가는 편이다.



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

매번 반복되는 지루한 일상(환경 구축)은 가라. Docker.

작년 여름에 Docker를 전해 들었다.
‘거 참 괜찮네.’란 생각이 들었지만 직접 써본 건 바닥에 낙엽이 깔리고 나서였다.
그래도 이제는 손에 좀 익었기에 Docker에 대해 몇 자 적어본다.

소프트웨어 개발을 대략적인 과정은 다음과 같다.
환경 구축(개발) -> 개발 -> 환경 구축(테스트) -> 테스트 -> 환경 구축(배포) -> 배포
Ax -> B -> Ay -> C -> Az -> D

환경 구축이라는 작업이 반복적으로 이루어진다.
환경을 구축하는 것은 중요하지만, 어지간히 귀찮아서 여러 번 다시 하기 싫은 일이다.
그래서 예로부터 이런 환경 설정을 쉽게 도와주는 도구들이 개발자를 도왔다.
윈도즈 사용자라면 지금 환경을 통째로 구워서 어디서나 같은 작업 환경을 금세 되돌릴 수 있는(예를 들면 게임과 애드온이라든가...) 노턴 고스트라는 도구를 익히 들어봤을 것이다. 웹 개발자라면 APM(Apache + Php + Mysql) 환경 구축을 돕는 LAMP, WAMP, MAMP라는 녀석들과 가깝게 지냈을 것이다. 자바와 루비, 파이썬, 노드JS 등도 인기가 많아서 호스팅 업체에서는 이들을 위한 환경을 미리 구축하고는 OO호스팅, XX호스팅이라며 상품을 만들어 팔기도 한다. 그렇지만 수많은 개발 언어(http://en.wikipedia.org/wiki/List_of_programming_languages)중에 별로 인기가 없는 언어로 자신만의 환경을 구축하려면? 그리고 이런 환경을 다른 머신에 또 구축하려면? 우공(愚公)이 산을 옮기듯 삽질을 아주 여러 번 해야 한다. 이건 너무 불공평하다. 지금은 민주주의 시대인데, 소수 언어 사용자도 편리할 권리가 있잖은가? 그래서 Vagrant(https://www.vagrantup.com/)라는 멋진 녀석이 나왔다. Vagrant를 이용해서 환경을 한 번 구축해 두면, 다른 머신에서 언제나 꺼내 쓸 수 있다. 다만 여전히 문제가 있었으니 가상머신에 종속되기 때문에 덩치가 크고, 자원을 많이 잡아먹는다. 그러니 넉넉지 못한 환경에서 vagrant를 돌리면 만족스러운 성능을 기대하기 어렵다. 이에 반해 Docker는 LXC(http://en.wikipedia.org/wiki/LXC)를 통해 kernel cgroup 과 namespacing을 이용하니 훨씬 가볍다. 다만 이는 리눅스 시스템에서 사용할 때 이야기고, 애플 OS X나 마이크로소프트 Windows에서는 boot2docker(https://github.com/boot2docker/boot2docker)등의 도움을 받아야 한다. Vagrant + Docker도 썩 괜찮은 조합이라고 한다.

Docker를 써보자.

설치

https://docs.docker.com/installation/ 문서를 참조한다.

Arch 리눅스

sudo pacman -S docker
sudo systemctl enable docker

Arch 리눅스에서 sudo 없이 docker를 사용하고 싶다면 아래 커맨드를 실행한다.

https://wiki.archlinux.org/index.php/Docker

gpasswd -a <user> docker

Ubuntu 리눅스

문서(https://docs.docker.com/installation/ubuntulinux/) 에 따르면
Ubuntu-maintained Package와 Docker-maintained Package가 있다.
Ubuntu-maintained Package를 설치하면 버전이 낮아서 Dockerfile에서 설정한 ENV를 WORKDIR에서 인식하지 못하는 문제가 발생한다.

Ubuntu 리눅스에서 sudo 없이 docker를 사용하고 싶다면 아래 커맨드를 실행한다.

groupadd docker
gpasswd -a <user> docker
service docker.io restart

그리고 로그아웃하고 다시 로그인한다.(재부팅)

설치 오류 해결

Your kernel does not support cgroup swap limit

/etc/default/grub
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

$ sudo update-grub
그리고 재부팅한다.


error: cannot run ssh: No such file or directory fatal: unable to fork

경로 문제이다. 경로(path)에 다음을 추가한다.
/nvm/{nodeJS version x.xx.xx}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


Docker를 익히는데 도움이 되는 문서

http://blog.nacyot.com/articles/2014-01-27-easy-deploy-with-docker/
http://forum.docker.co.kr/t/docker-docker-howto/68
https://www.docker.com/
http://dockerbook.com/
https://coderwall.com/p/2es5jw/docker-cheat-sheet-with-examples
https://github.com/wsargent/docker-cheat-sheet

자주 쓰는 Docker 명령어

Dockerfile 빌드(build)

Dockerfile이 있는 디렉토리에서 실행한다. --no-cache는 캐쉬를 사용하지 않는 옵션이다.
docker build -t "<tag : user/repository>" --no-cache .
사용 예)
docker build -t "dorajistyle/flask-canjs-i18n-boilerplate" --no-cache .

entry point 덮어쓰기

주로 이미지나 컨테이너에서 bash 쉘을 실행하기 위해 쓴다. -it는 STDIN을 허용하는 pty를 여는 옵션이다.
docker exec -it <container-id> <command>
docker run -it <image-id> <command>
docker run -it --entrypoint <command> <image-id>

cannot execute binary file 오류가 뜨면 아래 커멘드를 쓴다.

docker run -it --entrypoint <command> <image-id> -s

이미지 실행

--publish, -p 옵션은 컨테이너의 포트를 호스트포트로 넘겨준다. 6060:8080이면 호스트에서 6060포트로 접속하면 컨테이너의 8080포트로 연결된다.
--name 옵션은 컨테이너에 이름을 붙여준다.
--rm 옵션은 실행된 컨테이너가 중지되면 컨테이너를 자동으로 지워준다.
-d 옵션은 데몬으로 실행한다.
docker run --publish <host-port>:<container-port> --name <container-name> --rm <image-name>
docker run -dp 6060:3001 <host-port>:<container-port> <image-name>

사용 예)
docker run --p 6060:5050 --name fcib --rm dorajistyle/flask-canjs-i18n-boilerplate
docker run -dp 6060:3001 my-image

실행중인 컨테이너 중지

docker stop <container-id>

이미지에 태그 달기

docker tag "user/tag"

docker.io에 이미지 등록하기

docker허브에 등록한뒤에 로그인하고 push하면 된다. image-tag는 / 형식으로 쓴다.
docker login
docker push <image-tag>

쓰지 않는 컨테이너와 이미지 지우기.

docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) && docker images --no-trunc| grep none | awk '{print $3}' | xargs -r docker rmi

docker ps의 -a옵션은 모든 컨테이너를 보여주는 것이고, -q옵션은 컨테이너의 다른 정보 없이 id만 보여주라는 것이다.
위 커멘드는 3 부분으로 나뉜다.
docker stop $(docker ps -a -q) // 모든 컨테이너 중지
docker rm $(docker ps -a -q) // 모든 컨테이너 삭제
docker images --no-trunc| grep none | awk '{print $3}' | xargs -r docker rmi // 알수 없는 이름의 모든 이미지를 지운다.

컨테이너 IP주소 받아오기

docker inspect <container-id>
docker inspect -f '{{ .NetworkSettings.IPAddress }}' <container-id>
docker inspect <container-id> | grep IPAddress | cut -d '"' -f 4
docker run <image-id> ip -4 -o addr show eth0


Dockerfile 잘 쓰기

  • 캐쉬를 잘 활용한다.
  • 태그를 쓴다.
  • base이미지로 작은 것을 쓴다. (ubuntu 보다는 debian)
  • 공통된 작업은 묶어서 한다. (예 : RUN apt-get install A B C D E F)
  • 용도에 맞게 base이미지를 만들어서 활용한다. (RoR용 base, 파이썬용 base, Golang용 base등)

Docker 빌드 자동화

Docker허브를 이용하면 github.com이나 bitbucket.org의 저장소가 변경될때마다 자동으로 빌드되도록 할 수 있다.
http://docs.docker.com/userguide/dockerrepos/

Docker Remote API의 웹 인터페이스

https://github.com/crosbymichael/dockerui

CI(Continuous Integration) 도구

https://github.com/drone/drone
https://github.com/Strider-CD/strider

Docker를 쓰면서 궁금했던 점이 두 가지 있다. 하나는 'Dockerfile에서 Private Repository를 clone하려면 어떻게 해야 할까?' 이고, 또 다른 하나는 '확장은 어떻게 해야 할까?'이다.

Private 저장소를 Dockerfile에서 불러오기.

스텍오버플로우 질문을 찾아보니 아래 처럼 하면 된다고 한다.

# private key를 복사한다.
ADD id_rsa /root/.ssh/id_rsa
# known_hosts 파일을 만든다.
RUN touch /root/.ssh/known_hosts
# bitbuckets키(다른 저장소를 이용한다면, 다른 저장소의 키)를 known_hosts에 추가한다.
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts

위 방법은 Dockerfile과 id_rsa가 같은 경로에 있어야만 한다.
단일 Dockerfile만으로는 방법이 없을까?
RUN command안에 키를 넣어 버리는 것이다. Dockerfile이 유출되면 Private Key도 노출된다는 단점이 있지만, 이는 위의 방법도 마찬가지다. Dockerfile과 Private key 파일이 함께 있을테니까. 그래도 보안을 위해서 Dockerfile에 사용할 키는 저장소에서 read권한만 가진 배포용 권한만 주는것이 좋다.
아래처럼 넣어주면 된다.
RUN mkdir -p /root/.ssh && str="-----BEGIN RSA PRIVATE KEY-----blahblahblah-----END RSA PRIVATE KEY-----" && echo | sed "i$str" > /root/.ssh/id_rsa && \
echo "ssh-rsa blapublahpublah" > /root/.ssh/id_rsa.pub && \
chmod 600 /root/.ssh/id_rsa && \
printf "Host bitbucket.org\n\tStrictHostKeyChecking no\n" >> /root/.ssh/config


Docker를 이용한다면 확장은 어떻게 해야 할까?

문서(http://www.centurylinklabs.com/auto-loadbalancing-with-fig-haproxy-and-serf/)에서
http://www.fig.sh/http://www.haproxy.org/ 그리고 https://www.serfdom.io/를 이용한 로드벨런싱을 설명하고 있다.
그리고 문서(http://stackoverflow.com/questions/18285212/how-to-scale-docker-containers-in-production)에 따르면, 확장을 돕는 다양한 서비스가 나와있으니, 구미에 맞는 서비스를 이용하면 되겠다.
아마존의 Elastic Beanstalk에서도 Docker를 지원하므로, AWS에 익숙하다면 이를 이용하면 편리하다. 이 내용은 추후에 다시 다루겠다.


확장과 로드밸런싱을 돕는 도구들


참고자료



by


Tags : , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

4G램 이하에서 Arch linux를 데스크탑으로 쓰기 위한 최적화.

램이 4G라면 적은 건 아니다. 하지만 무거운 프로그램을 돌리려면 부족한 게 사실이다. 이를 해결하려고 Desktop Environment을 바꿔 보았지만 별 효과를 보지 못했다. 그래서 몇 가지 더 손을 본 결과 쓸만한 데스크탑 환경을 구축했다.

가장 큰 효과를 본 것은 스왑 메모리의 설정이었다. SSD에 자주 쓰고 지우면 수명이 단축된다고 하지만, 내 수명이 단축되지 않으려면 스왑을 써야했다. 스왑영역을 잡아주었더니, 버츄어 박스와 IDE 크롬과 파이어폭스를 띄워도 시스템이 멈추지 않는다.

스왑 할당하기

우선 아래 명령어로 할당된 스왑을 확인한다.
sudo swapon -s
free -m

공간이 충분히 남아있는지도 확인한다.
df -h

스왑 파일을 만든다.
sudo fallocate -l 4G /swapfile

root 유저만 읽고 쓰도록 스왑 파일의 권한을 설정한다.
sudo chmod 600 /swapfile

스왑 파일이 잘 만들어 졌는지 확인한다.
ls -lh /swapfile

스왑 영역을 할당한다.
sudo mkswap /swapfile

스왑 영역을 활성화한다.
sudo swapon /swapfile

아래 명령어로 할당된 스왑을 확인한다.
sudo swapon -s
free -m

/etc/fstab 파일에 스왑 설정을 추가한다.
/swapfile none swap sw 0 0

/etc/sysctl.conf 파일에 다음을 추가한다.
vm.swappiness=10
vm.vfs_cache_pressure = 50

스왑 영역을 지울 땐 아래 명령어를 쓰면 된다.
swapoff -a
rm -f /swapfile

gnome-pty-helper 비활성화

사용자가 얼마나 많은 터미널을 열었나 기록하는 헬퍼로 데스크톱 환경에서는 필요가 없다.

chmod 644 /usr/lib/vte/gnome-pty-helper
chmod 644 /usr/lib64/vte/gnome-pty-helper
chmod 644 /lib64/vte/gnome-pty-helper
chmod 644 /lib/vte/gnome-pty-helper

Core dump 비활성화

코어 덤프가 디버깅엔 유용하지만 평소에는 성능에 저하를 가져오므로 비활성화 한다.
/etc/sysctl.conf 파일에 다음을 추가한다.
fs.suid_dumpable = 0

SSD trim 기능 켜기

sudo pacman -S util-linux
sudo systemctl enable fstrim.timer

윈도우 메니저의 변경이 도움이 될 수도 있다.
가벼운 윈도우 메니져가 많다. FVWM과 ICEWM이 가벼운 편이었지만, 보기가 너무 안좋아서 지워버렸다. OpenBox는 좋은 모습을 보여주지만 XFCE의 기본 WM인 XFWM(14M)보다 두배가 넘는 메모리(31M)를 사용한다. 그래도 여전히 가벼운 편이니 취향에 따라 OpenBox로 윈도우메니져를 바꿔 보는 것도 괜찮겠다.

xfce 윈도우 메니저 변경하기

설정 파일을 가져온다.

cp /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml

~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml 파일을 열어 xfwm4를 openbox로 변경한다.

<value type="string" value="xfwm4"/>to
<value type="string" value="window_manager_executable"/>

오픈박스용 설정 설치

pacman -S obconf

단축키가 제대로 동작하지 않으면 vi .config/openbox/rc.xml 에서 사용하지 않는 단축키를 제거한다.

지금 사용하는 윈도우 메니저 보기

pacman -S wmctrl
wmctrl -m

가볍고 쓸만한 앱을 찾다가 보조 터미널로 좋은 tilda와 자원 점유율을 보여주는 htop을 설치했다.

pacman -S tilda
pacman -S htop


혹시 이 환경에서도 시스템이 불안정한 일이 자주 발생한다면 쓰는 자주 프로그램을 가벼운 걸로 바꾸어 보는 것도 괜찮을 것 같다. 예를 들면 이메일 클라이언트를 썬더버드에서 Trojita나 Geary등으로 바꾸는 것이다. 하지만 설정을 다시 하기는 귀찮으니 우선은 이대로 써야겠다.


문제 해결

키보드 단축키가 작동하지 않을 때

로그아웃 하고 tty1(ctrl+alt+F1)에서 로그인 하여 rm -rf ~/.cache/sessions/* 로 세션 캐쉬를 삭제한다.

Failed to fork (Resource temporarily unavailable) 오류가 날 때

/etc/sysctl.conf 파일에 다음을 추가한다.
fs.file-max = 204708

QT5에서 한글 입력이 안될 때

yaourt -S uim-qt5 --force

SHELL의 변경 (zsh)

pacman -S zsh
zsh /usr/share/zsh/functions/Newuser/zsh-newuser-install -f
chsh -s $(which zsh)
echo $SHELL

재부팅 하지 않고 sysctl 적용

sudo sysctl -p /etc/sysctl.d/99-sysctl.conf

그 밖에 읽어볼 만한 자료.

SSD 최적화

베터리를 오래가게 돕는 도구

실행중인 프로세스가 어떻게 자원을 사용할 지 제어하는 데몬



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

Arch Linux에 LXQt desktop environment 설치하기

구글 크롬만 띄우면 컴퓨터가 숨을 할딱인다. 아주 멋진 새 컴퓨터를 사든지, 크롬 정도는 식후 간식거리로 여길 만큼 튼튼한 환경을 만들든지 해야겠다. 이 ‘구글 크롬 시전시 일정 확률로 멍해짐’은 귀차니즘에 밀려서 오랫동안 억지로 외면해온 현상인데 이제 좀 해결할 때가 되었다. Xfce도 가볍고 안정적인 데스크톱 환경으로 소문났지만, 크롬을 안정적으로 돌리려면 좀 더 가벼운 환경이 필요하다.

어떤 데스크톱 환경이 좋을까?
아치 리눅스 위키(https://wiki.archlinux.org/index.php/Desktop_environment)를 보니 수 많은 데스크톱 환경이 나를 반긴다.
가벼운 환경이 필요하니 KDE, 그놈, 시나몬, 유니티 등은 우선 제외.
가볍고 보기도 좋은 데스크톱 환경을 찾아보자.
우선 제일 눈에 띄는 환경은 엘레멘트리OS의 판테온(https://wiki.archlinux.org/index.php/Pantheon)이었는데, 최신 그놈이랑 무슨 문제가 있는지 싸웠는지 창의 이동이 안 되고 닫히지도 않으며 이래저래 제대로 동작하지 않는다.
이름도 거창한 Enlightenment는 가볍다고 하지만 사용성이 떨어진다.
LXDE는 윈도우 3.1모양새라 싫고 결국 LXQt에 관심을 두게 되었다.

LXQt(http://lxqt.org/)는 ‘차세대 경량 데스크톱 환경’으로 가벼운데다가 멋지기까지 한 데스크톱 환경이라고 한다.
LXQt 설명은 ‘옛날건 빠른 대신 비주얼이 오징어고, 요즘 것들은 겉만 번지르르하다. 하지만 LXQt는 둘의 장점을 취해서 빠르고 보기에도 좋다!’라는 느낌을 주는데,
마치 ‘이소룡은 죽었다. 성룡은 늙었다. 이연걸은 약하다.’라는 옹박 캐치프레이즈를 보는듯하여 기대를 품고 LXQt 설치에 들어갔다.

yaourt -S lxqt-desktop-git qterminal-git obconf-qt-git lxqt-openssh-askpass-git
pacman -S openbox oxygen-icons qtcurve sddm

이 두 줄의 코드로 설치가 완료된다.

기호에 따라 아래 유틸리티를 설치해서 쓰자.

  • pcmanfm-qt-git: LXQt 파일 관리자 (yaourt)
  • lximage-qt-git: The LXQt 이미지 뷰어 (yaourt)
  • lxqt-openssh-askpass-git: OpenSSH Askpass 모듈 (yaourt)
  • openbox: 추천 윈도우 매니저 (pacman)
  • sddm: 추천 디스플레이 매니저 (pacman)
  • qterminal: Qt 터미널 (pacman)
  • juffed: Qt 텍스트 에디터 (yaourt)
  • screengrab: 스크린캡쳐 (yaourt)
  • qps: 작업 관리자 (yaourt)
  • trojita : 이메일 클라이언트 (pacman)

설치가 끝나면 로그아웃하고, LXQt 세션을 시작하면 된다.



Xfce 환경-'Arch Linux에 LXQt 설치하기'
Xfce 데스크톱 환경


LXQt 환경-'Arch Linux에 LXQt 설치하기'
LXQt 데스크톱 환경

LXQt
깔끔하고 보기 좋다.
테마도 손보고 바탕화면을 바꿨더니 쓰던 Xfce와 별반 다르지 않다.
그런데 크롬을 실행했더니 먹통이다.
Xfce 세션에서는 잘 실행된다.
문제가 뭔지 모르겠다.
아무래도 LXQt 말고 다른 해결방법을 찾아봐야겠다.



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

git 저장소에 변화가 생기면, 서버에 자동으로 업데이트하는 스크립트.


소스가 변경될 때 마다, 라이브서버에 소스를 업데이트 하는 일은 참 귀찮은 일이다.
그래서 보통 cron을 이용해 서버에 소스 자동 업데이트를 하곤 한다.
이번에도 cron을 이용해 자동 업데이트를 구축하려다가 한가지 문제에 부딪혔다.
crontab에서 스크립트를 돌릴경우 상대경로를 쓰지 못한다는 거다.
그래서 비슷한 걸 찾아 헤매다가 shell-jobs를 발견했고,
이를 이용해 git 저장소가 갱신될 때마다 서버를 자동 업데이트하도록 구축했다.


작동 순서

  1. shell-jobs 데몬 실행.
  2. shell-jobs에서 일정 시간마다 ~/update.sh를 호출.
  3. ~/update.sh에서 원격 저장소를 업데이트하고 변경사항이 있다면 update_platform.sh를 호출.
  4. update_platform.sh에서 소스를 업데이트하고 서버를 재구동.

shell-jobs(https://github.com/azer/shell-jobs)

설치

npm install -g shell-jobs

설정파일 작성

update.jobs
~/update.sh > ~/cron.log # => 10 minutes

shell-jobs 데몬으로 구동

shell-jobs update.jobs -d

리눅스 시동시에 자동으로 구동되도록 하려면, /etc/rc.local파일에도 위 코드를 추가한다.

update.sh

원격 저장소를 업데이트하고 git diff를 통해 로컬과 다른점을 검사한다.
grep -v 뒤에는 로컬 변경을 무시할 파일명을 넣는다.
만약 원격 저장소와 다른 점이 있다면 update_platform.sh를 실행한다.
#!/bin/sh
cd /home/project
git remote update
diff=$(git diff remotes/origin/master master | grep -v <무시할 변경사항>)
if ["$diff" == ""]
then
echo "no diffs"
else
echo "have diffs"
~/update_platform.sh
fi


update_platform.sh

소스를 최신으로 업데이트하고, 서버를 재구동하는 스크립트.
sed를 이용해 debug플래그와 project.wsgi파일을 변경하기 때문에,
git reset --hard로 로컬 변경사항을 무시한다.
#!/bin/sh
cd /home/project
git checkout master
git reset --hard master
git pull
pip2 install -r requirements.txt
alembic revision --autogenerate -m "Alembic initilized boilerplate tables."
alembic upgrade head
sed -i "s/^DEBUG = .*/DEBUG = False/" ./application/config/debug_flag.py
sed -i "s/^sys.path.insert.*/sys.path.insert\(0, '\/home\/project'\)/" ./project.wsgi
chown me -R .
~/restart_server.sh


resteart_server.sh

간혹 서버를 직접 재구동하기도 하니, 서버 재구동용 스크립트는 따로 작성한다.
#!/bin/sh
service apache2 restart



by


Tags : , , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

OpenSSL 라이브러리에서 서버에 저장된 중요 메모리 데이터가 노출되는 HeartBleed 보안 업데이트 방법


한국 인터넷침해대응센터(http://krcert.or.kr)의 보안공지에 아래 내용의 OpenSSL 취약점(HeartBleed) 대응 방안 권고가 올라와 있다.

통신 구간 암호화를 위해 많이 사용하는 OpenSSL 라이브러리에서 서버에 저장된 중요 메모리 데이터가 노출되는 HeartBleed라고 명명된 심각한 버그가 발견되어 시스템 및 소프트웨어에 대한 신속한 취약점 조치를 권고

Yahoo, Google, Facebook, Instagram, Tumblr, Pinterest, Github, Dropbox, AWS 등 OpenSSL HeartBleed취약점에 영향을 받은 서비스가 많은데, 서버 관리자 입장에선 머리가 쭈뼛했겠다.^^;
혹시 운영 중인 서버가 아직 OpenSSL HeartBleed 보안 업데이트가 안 되었다면, 지금이라도 잽싸게 업데이트하자!

  1. 버전 확인

    sudo openssl version -a
    built on 날짜가 2014년 4월 7일 이전이면 취약하므로 시스템 보안업데이트를 진행한다.
  2. 보안 업데이트 설치


    Arch 계열

    pacman -Syu

    Fedora 계열

    yum update

    Ubuntu 계열

    sudo apt-get update
    sudo apt-get dist-upgrade
  3. 재시동

    sudo reboot
  4. 버전 재확인

    sudo openssl version -a
    built on 날짜가 2014년 4월 7일 이후인지 다시 확인한다.
    예) OpenSSL 1.0.1g 7 Apr 2014
    built on: Mon Apr 7 22:24:40 CEST 2014

OpenSSL Heartbleed 보안 업데이트 참고 자료



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

Arch linux 기반 배포판. Manjaro linux 설치 및 설정.


Gentoo기반의 Sabayon 리눅스에서 Asus ux31a의 무선랜을 못 잡는다.
여러 시도를 해보다가 안되서 다른 걸로 갈아타려고 여러 리눅스 배포판을 기웃거렸다.
봐도 봐도 끌리는 건 FreeBSD기반의 GhostBSD와 Arch 기반 Manajro다.
안써본 GhostBSD를 써보려고 이리저리 시도해 봤지만 아쉽게도 ux31과 궁합이 안 맞는지 설치가 되지 않는다.
그래서 결국 익숙한 Manjaro linux를 깔았다.
Ubuntu 보다 민첩하고, gentoo보다 편리한 Manjaro.
나와 궁합이 잘 맞는다.
Arch linux를 별다른 설정 없이 편리하게 사용하도록 만든 Manjaro linux.
그러나 내게 맞는 환경을 만들기 위해선 여기저기 손봐야 할 곳이 많다.
이게 시간이 꽤 걸리는 일이라, 나중을 위해 지금 리눅스 환경을 정리했다.
앞으로 한동안은 OS를 다시 설치할 일이 없겠지만,
재앙은 예고 없이 찾아오는 법이니까.


배포판 이미지 받기

http://sourceforge.net/projects/manjarolinux/files


부팅 가능한 USB 만들기

http://sourceforge.net/projects/manjarolinux/files
UNetbootin(http://unetbootin.sourceforge.net/) - linux,mac,windows
Pendrivelinux(http://www.pendrivelinux.com/) - windows
Image Writer for Windows(https://launchpad.net/win32-image-writer) - windows
http://en.wikipedia.org/wiki/List_of_tools_to_create_Live_USB_systems


USB로 설치.

이미 리눅스 시스템을 사용중인 Encrypt된 파티션을 가진 SSD에 UEFI를 지원하도록 설치.
1. 터미널 실행.
2. Encrypt된 파티션 열기
cryptsetup luksOpen /dev/sdx cryptVG
3. root파티션 포멧하기
mkfs ext4 /dev/mapper/cryptVG-root-partition-name
4. GUI모드로 설치 시작
5. 파티션 설정
* /swap : 없음.
* /boot : ext4
* /boot/efi : vfat
* /root : ext4 (위에서 포멧한 파티션)
* /home : ext4 (포멧하지 않고 마운트만)
6. 설치 진행
7. 설치가 완료되면, 터미널 실행.
8. 설치된 시스템 루트로 chroot
mount -o bind /proc /mount-point-of-installed-root/proc
mount -o bind /dev /mount-point-of-installed-root/dev
mount -o bind /sys /mount-point-of-installed-root/sys
chroot /mount-point-of-installed-root /bin/bash

9. /etc/mkinitcpio.conf 파일에서 HOOKS의 filesystems 앞에 encrypt lvm2 추가.
예시 : HOOKS="base udev autodetect modconf block encrypt lvm2 filesystems keyboard keymap fsck"
10. mkinitcpio 설정 적용.
mkinitcpio -p linux
11. /etc/default/grub 파일에서 GRUB_CMDLINE_LINUX_DEFAULT 옵션 변경
libata.force=noncq : SSD성능 향상,응답 중단 방지 (The libata.force=noncq parameter will prevent SSD lockups and the rootflags option is used for SSD-performance.)
acpi_osi : ux31a에서 기능키 사용
cryptdevice : Encrypt된 파티션 정보
noapic : 인텔의 Advanced Programmable Interrupt Controller를 사용하지 않는다.
acpi=force : acpi를 바이오스 버전에 관계 없이 켠다.
예시 : GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=/dev/sda3:cryptVG quiet libata.force=noncq acpi_osi='!Windows 2012' noapic acpi=force"
12. Grub 설정 적용.
grub-mkconfig -o /boot/grub/grub.cfg
sudo update-grub
13. 재부팅
14. USB 제거


fstab 설정

ssd를 사용할 경우 파티션에 defaults,noatime,discard를 붙인다.
/etc/fstab
tmpfs /dev/shm tmpfs defaults,noatime 0 0
tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=4G 0 0
tmpfs /scratch tmpfs noatime,nosuid,nodev,mode=1777 0 0



로케일 설정

https://wiki.archlinux.org/index.php/locale

/etc/locale.gen
ko_KR.UTF-8 UTF-8
en_GB.UTF-8 UTF-8
es_ES.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8


/etc/locale.conf
LANG=ko_KR.UTF-8
LANGUAGE="ko_KR.UTF-8:es_ES.UTF-8:en_GB.UTF8:en"
LC_COLLATE=ko_KR.UTF-8
LC_CTYPE=ko_KR.UTF-8
LC_MONETARY=ko_KR.UTF-8
LC_NUMERIC=ko_KR.UTF-8
LC_TIME=ko_KR.UTF-8
LC_PAPER=ko_KR.UTF-8
LC_MESSAGES=en_GB.UTF-8


~/.config/locale.conf
LANGUAGE="ko_KR.UTF-8:es_ES.UTF-8:en_GB.UTF8:en"
LANG="ko_KR.UTF-8"
LC_COLLATE=ko_KR.UTF-8
LC_CTYPE=ko_KR.UTF-8
LC_MONETARY=ko_KR.UTF-8
LC_NUMERIC=ko_KR.UTF-8
LC_TIME=ko_KR.UTF-8
LC_PAPER=ko_KR.UTF-8
LC_MESSAGES=en_GB.UTF-8


sudo locale-gen


Pacman 업데이트

pacman
pacman -Syy
pacman -Syu



Manjaro 커널 업데이트

http://wiki.manjaro.org/index.php/Manjaro_Kernels
mhwd-kernel -li
sudo mhwd-kernel -i linux313 rmc



한글 관련 설정


UIM 설정

sudo pacman -S uim

Applications Menu > settings > input method

Global settings
check Specify default IM
Default input method Byeoru
Enable input methods Byeoru only.
Uncheck Enable IM switching by hotkey.
Uncheck Enable input method toggle by hot keys.

Byeoru key bindings 1
Add hangul key to Byeoru on, Byeoru off

~/.xprofile에 IM설정
IM="uim"
export GTK_IM_MODULE=$IM
export XMODIFIERS=@im=$IM
export QT_IM_MODULE=$IM
export XIM=$IM

한글폰트 설치

yaourt -S ttf-alee
yaourt -S xfonts-baekmuk
yaourt -S ttf-unfonts-core
yaourt -S ttf-unfonts-extra
yaourt -S ttf-nanum
yaourt -S ttf-nanumgothic_coding


PDF 한글 나오도록 poppler(PDF rendering library)설치

sudo pacman -S poppler
sudo pacman -S poppler-data

; pdf뷰어 epdfview 설치
sudo pacman -S epdfview

VLC 한글 설정

Pereference -> Subtitles / OSD -> Default encoding 을 Korean(EUC-KR/CP949)로 변경하고 플레이어를 다시 시작한다.


watchdog(프로세스가 죽으면 자동 재시동) 설정

/etc/systemd/system.conf
#RuntimeWatchdogSec=0
RuntimeWatchdogSec=30



어플리케이션 설치


개발용

pacman -S ruby
pacman -S git
pacman -S openssh
pacman -S mariadb
pacman -S apache
pacman -S mod_wsgi2
yaourt -S jdk

nodejs

git clone git://github.com/creationix/nvm.git ~/.nvm
printf "\n\n# NVM\nif [ -s ~/.nvm/nvm.sh ]; then\n\tNVM_DIR=~/.nvm\n\tsource ~/.nvm/nvm.sh\nfi" >> ~/.bashrc
NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
nvm install v0.10.25
nvm alias default 0.10
nvm use 0.10

권한 설정
sudo chown -R `whoami` ~/.npm
sudo chown -R `whoami` ~/node_modules
sudo chown -R `whoami` /usr/lib/node_modules


루비 경로 설정

~/.xprofile
export PATH=$PATH:~/.gem/ruby/2.1.0/bin:

gvim 설치

pacman -S gvim
플러그인 설치
vim-colorsupport https://aur.archlinux.org/packages/vim-colorsupport/
Vundle vundle-git https://github.com/gmarik/Vundle.vim
NERDTree vim-nerdtree-git https://github.com/scrooloose/nerdtree
ctrip https://github.com/kien/ctrlp.vim
Syntastic vim-syntastic https://github.com/scrooloose/syntastic
EasyMotion vim-easymotion https://github.com/Lokaltog/vim-easymotion

.vimrc
vmap "+yi
vmap "+c
vmap c"+p
imap +
syntax on
set wrap
set linebreak
" set spell spelllang=en_GB "
map :set spell! spelllang=en_GB
map :set guioptions-=m:set guioptions-=r:set guioptions-=l:set guioptions-=L:set guioptions-=T:redraw!
map :set guioptions+=m:set guioptions+=r:set guioptions+=l:set guioptions+=L:set guioptions+=T:redraw!
nnoremap
set runtimepath^=~/.vim/bundle/ctrlp.vim
colors koehler


disable USB autosuspend

vim /etc/laptop-mode/conf.d/usb-autosuspend.conf
CONTROL_USB_AUTOSUSPEND="0"


시스템 커멘드라인 유틸리티

pacman -S ack
pacman -S ncdu
pacman -S fdupes


GUI 유틸리티

pacman -S transmission-gtk
pacman -S filezilla
pacman -S stardict
pacman -S xfce4-weather-plugin
pacman -S gnumeric
pacman -S deadbeef
pacman -S virtualbox
pacman -S virtualbox-guest-modules
pacman -S wine
pacman -S wine_gecko
pacman -S chromium
pacman -S qupzilla
pacman -S thunderbird
pacman -S tomboy
pacman -S festival
yaourt -S marble
yaourt -S gmapcatcher
yaourt -S xnviewmp


화면잠금

yaourt -S xfce-slimlock
이미지 폴더 : /usr/share/slim/themes/default

눈 피로를 덜어주는 Redshift

https://wiki.archlinux.org/index.php/Redshift
pacman -S redshift

focuswriter

qt5로 설치시 uim에서 한글 입력이 안되므로 PKGBUILD에서 depends를 qt4로 변경한다.
# Maintainer: Graeme Gott

pkgname=focuswriter
pkgver=1.4.5
pkgrel=1
pkgdesc="A simple fullscreen word processor"
arch=('i686' 'x86_64')
url="http://gottcode.org/${pkgname}/"
license=('GPL3')
#depends=('qt5-base' 'qt5-multimedia' 'enchant' 'libzip')
depends=('qt4' 'enchant' 'libzip')
install=${pkgname}.install
source=(http://gottcode.org/${pkgname}/${pkgname}-${pkgver}-src.tar.bz2)
md5sums=('42b14c9357e5b33d55ddbdb3a97e6af1')
sha256sums=('4fb4d826493b2a8a420762b67c74659574092b641f55442e74a292b6ef5e36f2')

build() {
cd "${srcdir}/${pkgname}-${pkgver}"
#qmake-qt5 PREFIX=/usr
qmake-qt4 PREFIX=/usr
make
}

package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make INSTALL_ROOT="${pkgdir}/" install
}


yaourt 설정

~.yaourtrc

yaourt 패키지 업데이트

yaourt -Syua

chrome 설정

https://wiki.archlinux.org/index.php/chromium

chrome 관련 url 보기
chrome://chrome-urls

chrome://flags
Override software rendering list - Enable
Disable accelerated 2D canvas -Enable
Enable WebGL Draft Extensions - Disable
Enable Developer Tools experiments - Enable

실행 옵션
chromium --disk-cache-dir=/scratch/psd --scroll-pixels=320 --disable-accelerated-compositing --cipher-suite-blacklist=0x0001,0x0002,0x0004,0x0005,0x0017,0x0018,0xc002,0xc007,0xc00c,0xc011,0xc016,0xff80,0xff81,0xff82,0xff83

플래쉬 플레이어 설치
yaourt -S chromium-pepper-flash
chrome://plugins 에서 adobe flash player서 기본 flash player disable

프로파일 클리너 설치
sudo yaourt -S profile-cleaner

profile sync daemon 활성화
https://wiki.archlinux.org/index.php/Chromium_tweaks
https://wiki.archlinux.org/index.php/Profile-sync-daemon

yaourt -S profile-sync-daemon

/etc/psd.conf
USERS="dorajistyle"
BROWSERS="chromium firefox qupzilla"
VOLATILE="/scratch"


sudo systemctl enable psd psd-resync


xfce 테마 설정


메뉴 고급 설정

yaourt -S xfce4-whiskermenu-plugin
panel > Items / Window Buttons - Show flat buttons 활성

테마 관련 파일 경로

  • 폰트 : ~/.font
  • 아이콘 : ~/.icons
  • 테마 : ~/.themes

테마 설치

yaourt -S xubuntu-artwork
yaourt -S xfce4-xquisite-icon-theme
yaourt -S xfce4-finalorder-icon-theme
yaourt -S xfce-theme-simplix
yaourt -S zen-gtk-themes


simpliX 테마 설치

  • chrome용 : crx file 을 extension로 드래그
  • 파이어폭스용 :~/.mozilla/firefox/profile.default/chrome/userChrome.css 복사

폰트 렌더링 설정

~/.config/fontconfig/fonts.conf

true
true
hintslight


키보드 단축키

  • super b
    chromium --disk-cache-dir=/scratch/psd --scroll-pixels=320 --disable-accelerated-compositing --cipher-suite-blacklist=0x0001,0x0002,0x0004,0x0005,0x0017,0x0018,0xc002,0xc007,0xc00c,0xc011,0xc016,0xff80,0xff81,0xff82,0xff83
  • super =
    deadbeef
  • super f
    firefox
  • super g
    qupzilla
  • super i
    ~/XnView/xnview.sh
  • super backspace
    leafpad ~/work/article/notes/note.txt
  • control alt del
    slimlock
  • super d
    stardict
  • super n
    tea
  • super e
    thunar
  • super m
    thunderbird
  • super q
    /usr/bin/focuswriter
  • super c
    /usr/bin/qalculate-gtk
  • super t
    /usr/bin/xfce4-taskmanager
  • super y
    /usr/bin/xsensors
  • super p
    xfce4-display-settings --minimal
  • ctrl print (region)
    xfce4-screenshooter
  • alt print (window)
    xfce4-screenshooter -w
  • print
    xfce4-screenshooter -r
  • super s
    xfce4-terminal
  • super v
    gvim
  • ctrl alt x
    xfce4-session-logout

HDMI와 노트북 모니터 동시에 켜기

루트 유저로 다음 파일을 추가한다.
/usr/local/share/hdmi-plugged-startup
#!/bin/bash

export XAUTHORITY=/home/$USER/.Xauthority
export DISPLAY=:0

/usr/bin/xrandr -display :0 --output eDP1 --auto --output HDMI1 --auto --above eDP1


이 파일을 실행 가능하게 만든다.
chmod +x /usr/local/share/hdmi-plugged-startup
And add the following udev rule:
다음 udev rule을 추가한다.
echo 'ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/local/share/hdmi-plugged-startup"' >> /etc/udev/rules.d/10-local.rules

특정 디렉토리에서 Shell 띄우기

bash -c 'cd ~/specific/dir; exec "/bin/bash"'

문제 해결

Pacman이나 Yaourt로 패키지 설치시 error: failed to commit transaction (conflicting files)

pacman -S --force $package

재부팅을 하면 화면이 제대로 동작하지 않고, /usr/local/share/hdmi-plugged-startup를 실행하면 아래의 오류가 날 때.

No Protocol specified
Error cannot open display :0.0
echo $HOSTNAME 으로 호스트 이름을 확인한다.

/etc/NetworkManager/NetworkManager.conf 파일을 열어 다음을 추가한다.
[keyfile]
hostname=<your_hostname>

xhost 권한 추가.
xhost +SI:localuser:<user>

NTFS 파티션 마운트 오류 해결

pacman -S ntfs-3g
ntfsfix /dev/ntfs-partition-name


USB를 Fat32로 포멧

pacman -Sy dosfstools
fdisk -l
mkdosfs -F 32 -I /dev/usb-partition-name


외장 디스크가 readonly로 뜰 때

sudo su -
df -Th
umount /media/mounted-name
dosfsck -a /dev/partition-name


bash: fork: retry: No child processes

/etc/security/limits.conf 파일에 다음 추가
username soft nofile 4096
username hard nofile 65536

/etc/sysctl.d/99-sysctl.conf 파일에 다음 추가
fs.inotify.max_user_watches = 20000
fs.file-max = 800000

현재 쉘 세션에서만 임시로 open files 크기를 늘려줄 때는 아래 명령어를 실행
ulimit -n 4096


X server가 실행되지 않을 때

mhwd 로 다른 그래픽 드라이버를 제거한 후, 사양에 맞는 드라이버를 재설치

mhwd -r pci video-nvidia
mhwd -r pci video-intel
mhwd -r pci video-hybrid-intel-nvidia-bumblebee
mhwd -i -f pci video-hybrid-intel-nouveau-bumblebee

https://forum.manjaro.org/index.php?topic=10120.0
https://forum.manjaro.org/index.php?topic=76.0

Asus ux31a 관련

https://wiki.archlinux.org/index.php/ASUS_Zenbook_Prime_UX31A
https://wiki.debian.org/InstallingDebianOn/Asus/UX31a
https://help.ubuntu.com/community/AsusZenbookPrime#Optimizing_for_SSD
http://community.linuxmint.com/tutorial/view/1366
https://wiki.archlinux.org/index.php/Solid_State_Drives#Advantages_over_HDDs
https://wiki.archlinux.org/index.php/ASUS_Zenbook_Prime_UX31A#HDMI_plugged_at_boot



by


Tags : , , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

애증의 사바용. Sabayon Linux.

주 OS를 리눅스로 바꾼 뒤로 Arch리눅스 기반의 Manjaro를 쭉 써왔다.
그러다 반년 전 랩탑을 바꾸면서 새로운 리눅스 배포판을 사용해 보기로 했는데,
바로 Gentoo기반의 Sabayon 리눅스다.
젠투의 장점이라면, 내가 원하지 않는 쓰잘데 없는 패키지를 설치하지 않고 딱 원하는 것만 설치할 수 있다는 것이다.
그래서 때때로 아주 기본적인 기본을 동작시키는데도 어마어마한 노력이 들어가기도 한다.
오 년 전쯤 주 OS를 리눅스로 바꿔보겠다며 일주일 동안 젠투와 씨름하다가 그래픽카드 드라이버를 못 잡고 좌절했던 기억이 떠오른다.
‘그래. 그땐 그랬지. 하지만 시대는 많이 변했으니까.’
설치하기도 편리한 젠투 기반의 배포판 사바용.
아무런 문제도 없이 설치되었고, 쓰는데도 무리가 없었다.
그런데 어느 날 갑자기 알 수 없는 오류를 내며 부팅이 되지 않았다.
빌어먹을.
‘이 기회에 다른 리눅스로 바꿔 타?’
다른 여러 배포판을 설치해 보려고 낑낑거렸지만, 대부분 리눅스 배포판에서 UEFI를 제대로 지원하지 않았다.
빌어먹을.
울며 겨자 먹기로 다시 애증의 Sabayon 리눅스를 설치했다.
이걸 쓰면서 여러 문제와 맞딱뜨린다.
버츄얼박스를 켜면 컴퓨터가 다운되질 않나….
그래도 다른 걸 새로 깔 엄두가 나지 않아서 계속 썼는데,
이번에 아주 큰 문제가 발생했다.
WIFI를 못잡는거다.
랩톱인데 무선 인터넷을 못 잡으면 끝이다.
WIFI를 잡아보려고 여러 글을 읽어보고 수많은 시도를 해봤지만, WIFI는 결코 동작하지 않았다.
신호를 못 잡는 건 아니고, 신호가 잡혀서 연결을 시도하면, 연결되지 않는 문제인데 다른 기기에선 잘 잡히는 무선 인터넷이 유독 랩톱에서만 안 잡힌다.
망할.
일주일도 넘게 와이파이랑 씨름하다가 느꼈다.
‘내가 왜 와이파이 하나 잡는데 일주일을 보내야 해?’
누군가 젠투를 사용한다면 리눅스 전문가이거나, 사디스트가 분명하다.
설령 지금은 그 둘 중 하나가 아니더라도 계속 쓰면 그렇게 될 수밖에 없겠다.
어쨌거나 나는 그 둘 중 하나가 되기 전에 젠투 기반의 Sabayon을 떠나기로 마음먹었다.
무선 인터넷 잡자고 일주일을 더 보내긴 싫으니까. 그렇다고 잡힌다는 보장도 없고.
안녕! 애증의 Sabayon.

아래는 그동안 Sabayon을 사용하며 적은 노트이다.

Sabayon 버전 정보

cat /etc/sabayon-release

커널 정보 보기

eselect kernel list

엔트로피 업데이트

equo update
equo upgrade
equo conf update

grub 설정

/etc/default/sabayon-grub

auto login

lightdm
/etc/lightdm/lightdm.conf
[SeatDefaults]
autologin-user = username
utologin-user-timeout =0

slim
/etc/conf.d/xdm
DISPLAYMANAGER="slim"
rc-update add xdm default
/etc/slim.conf
defaultuser yourusernamehere
auto_login yes

session 삭제

$HOME/.cache/sessions

VirtualBox 설치

http://wiki.sabayon.org/index.php?title=HOWTO:UsingVirtualbox
vboxdrv 오류시
modprobe -r vboxdrv
modprobe vboxdrv

Midori

http://wiki.xfce.org/midori/faq
~/.cache
export XDGCACHEHOME=/dev/shm

한글 입력

http://wiki.gentoo-kr.org/index.php?title=GentooKoreanEnv
폰트 설치해 준다.
Sabayon 10.8 mate버젼에서는 한글이 잘 안써져서 입력기를 따로 설치해야 했지만,
Sabayon 10.8 xfce버젼에서 ibus로 한글 잘 써진다.
Session and startup > Application Autostart에 ibus-daemon을 추가한다.
ibus-daemon -drx

영문키보드에서 한영키 사용

Setting -> Keyboard -> Layout
Keyboard model : Generic 105-key (Intl) PC (Generic중 아무거나 해도 되는듯)
Leyboard Layout : Korean / Korean (101/104 key compatible)
IBus Preferences -> Advanced -> Keyboard Layout에서 Use system keyboard layout에 체크한다.

CPU점유율 100%

테마 선택에 따라 CPU점유율에 차이를 보일 수 있다.
Equinox 테마를 사용했더니 자꾸 CPU 점유율 100이 되고 컴퓨터가 먹통이 된다.

OpelGL setting

sudo eselect opengl list
sudo eselect opengl set 1


xnview

xnview 구동을 위해선 libpng12를 설치해야 한다.

개발

java 설정

OpenJDK를 사용시 Intellij를 쓸 때 성능 저하가 일어나므로 Oracle Jdk Bin을 설치한다.
Oracle Jdk를 기본 vm으로 설정한다.
java-config --list-available-vms
java-config --set-system-vm=oracle-jdk-bin
env-update

Maria db 설치

  • mysql 삭제
  • maria db 설치
  • sudo mysqld_safe 실행
  • Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist 에러 발생
  • sudo /usr/share/mysql/scripts/mysqlinstalldb --basedir=/usr
  • sudo mysqld
  • /usr/bin/mysqlsecureinstallation
  • 완료
http://forums.gentoo.org/viewtopic-p-7333862.html
rc-update add mysql
rc-update del mysql


/etc/systemd/system/mysqld.service:
[Unit]
Description=MySQL Server
After=network.target


[Service]
ExecStart=/usr/bin/mysqld_safe --defaults-file=/etc/mysql/my.cnf --datadir=/var/lib/mysql --socket=/var/run/mysqld/mysqld.sock
User=mysql
Group=mysql
WorkingDirectory=/usr

[Install]
WantedBy=multi-user.target

sudo systemctl status mysqld.service
http://superuser.com/questions/384365/systemctl-enable-differs-from-systemctl-start-how

Sabayon 사용시 유용한 링크

http://wiki.sabayon.org/index.php?title=Howtooptimizeandaccelerateyoursystem
https://wiki.sabayon.org/index.php?title=HOWTO:UpgradekernelusingEntropy
https://wiki.sabayon.org/?title=HOWTO:UpgradekernelusingEntropy
https://wiki.sabayon.org/index.php?title=En:FAQ#HowDoIenableAutologin.3F
http://wiki.gentoo.org/wiki/Localization/HOWTO
http://www.gentoo.org/proj/en/perl/g-cpan.xml



by


Tags : , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

리눅스 환경에 발을 담그다. Arch 리눅스.

오래도록 MS 윈도우를 사용했습니다.
개발자로서 조금은 리눅스를 만질 일이 있었지만,
그야말로 수박 겉핥기였지요.
리눅스를 좀 잘 다뤄보고 싶었습니다.
하지만 공부를 해 볼까 버츄얼 머신에 리눅스를 깔아도, 사용 안 하게 되더라고요.
6년 전엔 큰마음 먹고 노트북에 윈도우 대신 Gentoo를 설치해 보았습니다.
데이터 백업도 안 하고 설치를 하다가 파티션을 잘못 건드려서 모든 자료가 다 날갔었지요.
게다가 일주일 동안 씨름을 했는데도, 그래픽인지 사운든지 드라이버를 하나 못 잡아서 결국 포기했던 기억이 납니다.

이번에 리눅스를 주 OS로 사용하기로 마음먹었을 때 Gentoo의 악몽이 되살아났어요.
설치와 유지 보수가 간편한 리눅스를 사용하기로 마음먹었죠.
설정이 복잡하거나 너무 마이너한 배포판은 설치하지 않기로 했습니다.

디스트로 와치(http://distrowatch.com/dwres.php?resource=popularity)를 참고하여 제게 맞는 배포판을 탐색했어요.

Mint가 가장 인기가 좋았지만 별로 내키지 않았고, Arch 가 눈에 들어왔습니다.
새로운 버전이 나왔을 때 통째로 갈아엎을 필요가 없이,
Pacman을 이용해 업데이트가 유연하게 된다는 점이 특히 마음에 들었지요.
그런데 설정에 너무 많은 시간을 쏟기는 싫었습니다.
그러다 발견한 게 만자로(Manjaro)에요.
사용자 편의에 초점을 맞춘 Arch 기반의 리눅스 배포판입니다.
Cinnamon 데스크을 넣은 Cinnarch도 괜찮아 보였지만, 만자로에 더 끌렸어요.
만자로(Manjaro)를 설치하고 두 달가량 사용을 하고 있는데 아주 만족스럽습니다.
물론 윈도우를 쓰다가 넘어왔으니 불편한 점이 많아요.
윈도우에서 주로 쓰던 소프트웨어와 대응되는 애플리케이션도 찾아야 했고,
각종 설정을 하는데도 많은 시간이 들었지요.
적응 기간 윈도우를 사용할 때보다 불편했지만, 지금은 딱히 그렇지도 않습니다.
앞으로도 리눅스를 쭉 쓰려고 해요.
나중에 좀 익숙해지면 개발에도 참여해 보고 싶습니다.

U43F with 리눅스 시스템 -'Arch linux(Manjaro)'

만자로(manjaro)리눅스를 쓰며 메모한 것들을 정리해 보았습니다.

USB 부팅 디스크 만들기

pendrivelinux.com

manjaro 설치

http://wiki.manjaro.org/index.php/Burn_an_ISO_File
http://wiki.manjaro.org/index.php/Installation_to_SSD_(quick_guide)
GRUB에서 e누른후 linux 라인에 cryptdevice를 추가해준다.
http://wiki.debian.org/SSDoptimization
https://wiki.archlinux.org/index.php/Solid_State_Drives
https://wiki.archlinux.org/index.php/Using_DM-Crypt#GRUB2
http://wiki.manjaro.org/index.php/Installation_Guide_for_Experienced_Users_0.8.2
LVM(Logical Volume Manager) 설정
https://wiki.archlinux.org/index.php/LVM

설정

커널 업데이트
http://wiki.manjaro.org/index.php/Manjaro_Kernels
커널 목록 보기
mhwd-kernel -li
커널 업데이트 하며 오래된 커널 지우기
sudo mhwd-kernel -i linux310 rmc

미러 자동 추가
pacman -S reflector
https://wiki.archlinux.org/index.php/Reflector
reflector --verbose -l 5 --sort rate --save /etc/pacman.d/mirrorlist

grub
yaourt -S grub-customizer

로케일
http://manjaro.org/2012/08/22/change-to-your-personal-locales/

커널 버젼 보기
cat /proc/version
pacman -S base-devel 로 devel 도구 설치
pacman -Syu base-devel linux-headers
pacman -Syu base-devel linux37-headers

서비스 설정
https://wiki.archlinux.org/index.php/Systemd#Basic_systemctl_usage

그래픽 카드
https://wiki.archlinux.org/index.php/Bumblebee
https://github.com/Bumblebee-Project/Bumblebee/wiki/Troubleshooting
/etc/bumblebee/xorg.conf.nvidia
한영키 먹게 하려면
Section "ServerLayout"
Identifier "Layout0"
Option "AutoAddDevices" "true"
EndSection

듀얼 모니터
https://wiki.archlinux.org/index.php/Xorg#Multiple_monitors.2FDual_screen
https://wiki.archlinux.org/index.php/DualScreen
xrandr --output LVDS1 --mode 1366x768 --output HDMI1 --mode 1920x1080 --right-of LVDS1

사운드
pacman -S lib32-alsa-lib
pacman -S lib32-libxml2

유선 인터넷
ifconfig로 인터넷 연결 확인
http://www.linuxfoundation.org/collaborate/workgroups/networking/alx에서 alx 드라이버 받음.(compat)

./scripts/driver-select alx
make
sudo make install
modprobe alx

혹은
sudo yaourt -S dkms-alx

무선 인터넷 관리자 Wicd로 변경
https://wiki.archlinux.org/index.php/Wicd

Before installing WICD I run these commands.
sudo systemctl stop netcfg
sudo systemctl stop dhcpcd
sudo systemctl stop NetworkManager
sudo systemctl stop netctl
sudo systemctl disable dhcpcd.service

After install
systemctl start wicd
systemctl enable wicd.service
gpasswd -a USERNAME users

sudo systemctl disable NetworkManager

rm /var/lib/NetworkManager/NetworkManager.state

블루투스 헤드셋 설치
https://wiki.archlinux.org/index.php/Bluetooth#Headset_and_Alsa_Devices
https://wiki.archlinux.org/index.php/Bluetooth_Headset
sudo hciconfig hci0 voice 0x0060
sudo pacman -S PulseAudio

블루투스 키보드
blueman에서 설정.
키보드에서 블루투스 신호를 보내고 잡아야 한다.

키맵이 이상하게 나오면 블루투스 키보드 연결을 해제하고,
노트북 키보드로 키맵 설정을 고정시킨다.
xmodmap -pke > ~/.Xmodmap
xmodmap ~/.Xmodmap


시작할 때 적용하려면?
~/.xprofile
~/.xinitrc
if [ -s ~/.Xmodmap ]; then
xmodmap ~/.Xmodmap
fi


https://wiki.archlinux.org/index.php/Xmodmap

exfat 마운트
pacman -S fuse-exfat exfat-utils

메모리카드 리더
1. Follow this link to know the exact model of your card reader. mine was RealTek smth smth.
and the output before the solution was like this:
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)
2. Download the suitable driver from this site:
http://www.realtek.com/Downloads/downloadsView.aspx?Langid=1&PNid=15&PFid=25&Level=4&Conn=3&DownTypeID=3&GetDown=false
3. Extract the zipped archive, then again extract the tar archive, then cd into the final directory, open the reademe file and follow the instructions.
4. After reboot, it simply worked :)
5. Note that I didn't notice a change in the output after the solution.
!not work sudo yaourt -S rts5229
원문(http://askubuntu.com/questions/20100/how-can-i-find-out-what-kind-of-card-reader-i-have)

xfce 설정
xfce4-settings-manager
윈도우 메니져에서 윈도우 관련 키 설정 가능하다.

저장된 세션 지우기
~/.cache/sessions/xfce4 를 삭제한다.

Chromium에서 Keyring을 자꾸 물어볼 때
https://wiki.archlinux.org/index.php/GNOME_Keyring

업데이트시 문제 해결

Unable to lock database가 날 때
sudo rm /var/lib/pacman/db.lck
http://wiki.manjaro.org/index.php/Pacman_troubleshooting

kalu나 package-query가 더 낮은 버전이 필요하다고 업데이트가 안 될때.
pacman -Syu
Do you want to cancel the current operation
:: and upgrade these packages now?
에 No라고 대답한다.

시스템 업그레이드시 package-query와 pacman이 충돌할 때
sudo pacman -R yaourt
sudo pacman -R package-query
then sudo pacman -Syyu
mv /etc/pacman.conf /etc/pacman.conf.backup # just in case
mv /etc/pacman.conf.pacnew /etc/pacman.conf

실행 파일 만들기 (batch)
#!/bin/sh
command
...
chmod +x

시작시 자동실행
gedit /etc/rc.local로 파일을 열어서 스크립트를 추가해 준다.

소프트웨어 설치

팩맨(Pacman)

설치
pacman -S 패키지 ( packer -S 패키지)

삭제
pacman -R 패키지

커맨드가 익숙치 않은 사용자를 위한 gui툴 소개
gtkpacman (AUR)

팩맨 미러
/etc/pacman.d/mirrorlis 파일을 수정

설치 가능한 패키지 목록 보기
$ pacman -Ss ^ibus-*

최적화 (안쓰는 패키지 삭제)
sudo pacman -Rns $(pacman -Qqtd)
Clean cache
pacman -Sc
pacman -Qdt

Yaourt (Yet AnOther User Repository Tool)

pacman -S yaourt

AUR과 동기화
yaourt -Syy

AUR 패키지 검색
yaourt package-name

설치
yaourt -S package-name
대부분의 Pacman 명령어와 Yaourt 명령어가 비슷합니다.

한글 키 입력 (ibus-hangul,fcitx 설치해봐도 잘 안되어 uim 설치.)
https://wiki.archlinux.org/index.php/Input_Japanese_using_uim
https://wiki.archlinux.org/index.php/Extra_Keyboard_Keys
https://wiki.archlinux.org/index.php/Extra_Keyboard_Keys_in_Xorg

pacman -S uim
Default input method 에 벼루만 빼고 다 버린다.
Byeoru key bindings 1
[Byeoru] on과 [Byeoru] off에 Hangul(한/영) 키 추가.
한자키에 한자키 추가.

uim 실행
uim-xim& //입력창을 보지 않는경우
uim-toolbar-gtk & //입력창을 따로 표시하는 경우
https://code.google.com/p/uim/wiki/UimSystemConfiguration
http://x86osx.com/bbs/view.php?id=knowhow&no=525&ksn=0&kss=0&ksc=0&kst=1&ksm=0&kw=:X11:

/etc/rc.conf
LOCALE="ko_KR.UTF-8"

~/.xprofile
IM="uim"
export GTK_IM_MODULE=$IM
export XMODIFIERS="@im=$IM
export QT_IM_MODULE=$IM
export XIM=$IM

http://wiki.kldp.org/wiki.php/%C7%D1%BF%B5%C5%B0 를 참조하였으나 아무런 도움이 되지 않았습니다.

아치 리눅스 글꼴
https://aur.archlinux.org/packages.php?ID=17314
https://aur.archlinux.org/packages.php?ID=49832

한글 폰트
yaourt ttf-nanumgothic_coding

http://manjaro.org/2012/08/22/change-to-your-personal-locales/

유용한 소프트웨어

글쓰기
Focus Writer
yaourt -S focuswriter

PKGBUILD
qt4 -> gambas3-gb-qt4
qmake-qt4 -> qmake
https://aur.archlinux.org/packages/focuswriter/
http://gottcode.org/focuswriter/
https://github.com/gottcode/focuswriter

linux Autohotkey
제대로 작동 안함 http://www.ironahk.net/
yaourt -S autokey

와인(Wine - Run Windows apps)
http://appdb.winehq.org/
http://www.howtogeek.com/107462/easily-install-windows-games-software-on-linux-with-playonlinux/
http://www.playonlinux.com/en/download.html
https://wiki.archlinux.org/index.php/Wine

pacman -S wine
pacman -S wine_gecko
pacman -s winetricks
http://wiki.winehq.org/Mono

/usr/share/wine/mono
설정
wine control
재부팅
wineboot -r
한글폰트
winecfg
sudo cp * ~/.wine/drive_c/windows/Fonts/
한글 설정
~/etc/wine.inf
~/.wine/system.reg
"MS Shell Dlg"="Gulim"
"MS Shell Dlg 2"="Gulim"

실행 전
export LANG=ko_KR.UTF-8
또는
export LC_ALL=ko_KR.UTF-8

regedit
[HKEY_CURRENT_USER\Software\Wine\X11 Driver]
"UseXIM"="N"

http://nemonein.egloos.com/4682100
http://kldp.org/node/93502
http://kldp.net/projects/saenaru/wiki/%EC%84%A4%EC%B9%98%EB%AF%B8%EB%A6%AC%EB%B3%B4%EA%B8%B0
http://mingiber.blogspot.kr/2008/12/crossover.html
http://www.dlldump.com/download-dll-files_new.php/dllfiles/K/kbdkor.dll/5.1.2600.0/download.html
kbdkor.dll을 system32에 win.
HKEY_CURRENT_USER\Keyboard Layout\Preload
Locale = 00000412
프로그램 제거
wine uninstaller

리눅스에서 와우(World Of Warcraft) 하기
런쳐에서 32비트 클라이언트로 실행.
p2p 전송 끔.
https://wiki.archlinux.org/index.php/World_of_Warcraft#Using_OpenGL

black textures
S3TC texture compression support. It can be enabled through driconf or by installing libtxc_dxtn.
wine reg add "HKCU\Software\Wine\Direct3D" /v AlwaysOffscreen /d enabled
VideoMemorySize 1024

primusrun opengl모드에선 안되지만 d3d9에선 실행 됨.
__GL_THREADED_OPTIMIZATIONS=1 WINEDEBUG=-all wine wow-64
https://help.ubuntu.com/community/WorldofWarcraft

optirun bash
#!/bin/sh
__GL_THREADED_OPTIMIZATIONS=1 optirun wine /home/dorajistyle/data/games/World\ of\ Warcraft/World\ of\ Warcraft\ Launcher.exe -opengl

리눅스에서 인터넷 뱅킹
Virtual box
http://www.microsoft.com/en-us/download/details.aspx?id=11575
혹은
curl과 unrar 설치후에
curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="9" bash
/home/userid/.ievms/vhd'에 저장됨.
http://deviantcj.tistory.com/336

Setting -> Storage -> IDE -> vhd 파일 추가.
Setting -> Storage -> SCSI 삭제.

처음 암호는 Password1
인증 cmd -> slmgr –rearm

리눅스 - x3f
yaourt -S xnviewmp - 속도도 만족, ui도 만족.

Permanent rotation
Also, you can rotate permanently the images based on the EXIF information. This will ensure that the images are oriented properly when viewing in any graphic programs. To do this, you select all your images and select "Tools > JPG Lossless tranformations" (or dropdownlist of symbol 'JPG lossless transformations' in toolbar). In the dialog check the button with "EXIF" on it and then press "Go". XnView will permanently rotate the images based on the EXIF orientation flag.

http://www.xnview.com/en/index.html
http://www.digikam.org/ - 돌아는 가지만 속도가 엄청 느리다.
http://www.proxel.se/x3f.html 속도 빠르고 기본 x3f 추출 기능에 충실하다.
http://www.faststone.org/FSViewerDownload.htm - wine으로 돌리는게 가능하지만 속도가 느리다.

http://www.irfanview.com/ - 지원한다고 써있지만 오류가 난다.

http://www.irfanview.com/plugins.htm

리눅스 - 포토스케이프
wine에서 gdiplus를 native library에 추가 정상 작동.
http://www.oaultimate.com/computers/install-photoscape-3-6-on-ubuntu-11-10.html
일괄변환에서 파일 읽기가 제대로 안될땐 winecfg applications에서 호환성을 윈도우 2003이나 xp로 바꾸니 된다.

Lingoes 대체. Stardict.
http://www.stardict.org/
http://artha.sourceforge.net/neki/index.php/Installation
pacman -S stardict

jpeg 최적화
yaourt -S jpegoptim
jpegoptim --dest=output_folder input_jpegs

mp3 플레이어
sudo pacman -S deadbeef

메신저
pidgin
gtalk
google-talkplugin
pidgin-gtalksharedstatus

토렌트
pacman -S transmission-qt

스크린 캡쳐
yaourt -S shutter

듀얼 모니터 설정
xrandr --output VGA1 --auto --output LVDS1 --auto --right-of VGA1
pacman -S arandr

화면 잠금
yaourt -S slimlock
image : /usr/share/slim/themes/default

날씨
pacman -S xfce4-weather-plugin

지구본,지도
pacman -S kdeedu-marble

시스템 정보.
pacman -S conky
https://wiki.archlinux.org/index.php/Conky
https://aur.archlinux.org/packages/i-nex-bzr
https://wiki.archlinux.org/index.php/Lm_sensors

Temp file clean
yaourt -S bleachbit-svn

용량 큰 파일 검색- Disk usage analyzer with an ncurses interface
sudo pacman -S ncdu

중복파일 검색 / 삭제
sudo pacman -S fdupes
하위 폴더 포함해서 중복파일 검색
fdupes -r /dir

중복 파일 중 첫번째 파일은 제외.
fdupes -f /dir

결과에서 중복 파일 제거
fdupes -d /dir

하위 폴더 포함해서 중복파일을 검사해서 첫번째 파일 빼고 모두 지운다.
fdupes -rdN /dir


빠르고 편리한 파일 검색 ack
http://beyondgrep.com/documentation/
sudo pacman -S ack
검색을 원하는 디렉토리에서 다음과 같이 사용한다.
ack "검색할 문장"


파일 비교(Meld) - Diff 툴
sudo pacman -S meld


동영상 인코딩(handbrake)
sudo pacman -S handbrake


자막 편집(aegisub)
sudo pacman -S aegisub


자막 다운로드(subdownloader)
sudo pacman -S subdownloader


smi srt 변환
승네군님의 smi 2 srt script on archlinux v3.1(http://handmade.egloos.com/5756133)
사용하려면 subs가 필요하다.
yaourt -S perl-subtitles



개발
ssh
pacman -S openssh
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub

ruby
pacman -S ruby
mongodb
pacman -S mongodb
bundle
bundle install --deployment
vendor/bundle
젬 환경 보기
gem env
번들 패스 설정
export PATH=$PATH:~/.gem/ruby/1.9.1/bin

libv8 (3.11.8.13 x86_64-linux, 3.3.10.4 x86_64-linux)
therubyracer (0.10.2)
Gemfile
if HOST_OS =~ /linux/i
gem 'therubyracer', '~> 0.10.2'
end

redis 암호 설정
/etc/redis.conf 에서 주석(#)을 제거한다.
# requirepass foobared

mongodb start
mongod --dbpath ~/work/dev/db


Ruby Gem 바이너리 경로 .bashrc에 추가.
export PATH="${PATH}:/home/dorajistyle/.gem/ruby/2.0.0/bin"


문제 해결

libpng cannot open shared object file: No such file or directory
ldd /usr/bin/gtk-update-icon-cache | grep png
LC_ALL=C sudo pacman -Syu


부팅 속도 개선
http://forum.manjaro.org/index.php?topic=6610.0
부팅 속도를 느리게 하는 원인 분석
systemd-analyze plot > plot.svg
systemd-analyze blame

readahead 활성화로 성능 개선
sudo systemctl enable systemd-readahead-collect systemd-readahead-replay

There was an error loading the theme
http://forum.manjaro.org/index.php?topic=8943.0
pacman -S mdm-themes-extra
Customize Desktop Environment for xRDP Session
http://sigkillit.com/tag/xfce/
sudo echo “startxfce4″ > ~/.Xclients
sudo chmod +x ~/.Xclients
sudo systemctl restart xrdp.service


HowTo: LVM encrypted install on SSD disk with cli installer
http://forum.manjaro.org/index.php?topic=1145.15
boot your system now, but when the grub screen comes up
do not press "enter", do not wait 5 seconds, but press "e". just read the text at the bottom of the screenshot: " ’e’ to edit the commands", that's what we need to do now.
search for the line beginning with "linux". this line will end with "ro". now insert "cryptdevice=/dev/sda3:cryptVG" before that "ro".
by pressing F10 grub will now load the kernel with our "modified" command.



by


Tags : , , , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

ssh 키 페어를 만드는 방법과 오류 해결 방법입니다. (ssh key pair generation and trouble shooting)

리눅스에서 ssh key pair 만들기

아래의 커멘드를 입력하면 ssh 키 페어가 생성 됩니다.

ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): [enter for default]
Enter passphrase (empty for no passphrase): [password]
Enter same passphrase again: [password confirmation]
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
...
user@ssh_key_pair_generation

그리고 아래의 키워드로 생성된 public key를 볼 수 있어요.

이 키를 필요한 곳에 복사하면 ssh 키 페어 설정이 완료 되죠.

cat ~/.ssh/id_rsa.pub
ssh-rsa ...
...
...
...
...
user@ssh_key_pair_generation

 


 

설명서 대로만 잘 되면 좋겠지만,
가끔 예기치 않은 문제가 발생합니다.

ssh-keygen -t rsa 명령어를 실행하고,
Enter file in which to save the key (/home/user/.ssh/id_rsa): ~/files/id_rsa
부분에서 분명 있는 경로를 입력했는데 파일이나 디렉토리를 찾을 수 없다는 메시지가 나옵니다.

open ~/files/id_rsa failed: No such file or directory.
Saving the key failed: ~/files/id_rsa.

오타를 쳤나 눈 씻고 봐도 제대로 입력했네요.

이럴 땐 cd ~/files 를 이용해 해당 디렉토리로 먼저 갑니다.

Enter file in which to save the key (/home/user/.ssh/id_rsa): ./id_rsa

위처럼 입력하면 ssh key pair가 제대로 생성되요.

여러 개의 ssh key pair를 사용하신다면, ~/.ssh/config에서 아래와 같이 설정 가능하답니다.

nano ~/.ssh/config
Host github.com
IdentityFile ~/myPublicKeyFolder/myGitHubFile
Host heroku.com
IdentityFile ~/myPublicKeyFolder/myHerokuFile

호스팅에서 .ssh 디렉토리 권한을 막아 놨을 경우.
다른 디렉토리에 만든 키를 어떻게 사용해야 할까요?

ssh-agent /bin/bash
ssh-add ~/files/id_rsa

위의 명령어를 사용하면 됩니다.

ssh 키 만들기 도구

MSysGit


참고 자료
Setting a custom path for git private ssh key on linux

by 月風



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

리눅스에서 OS 브랜드와 버전 정보를 보려면 어떻게 해야 할까요?

리눅스 OS 정보 보기

리눅스 터미널-'리눅스 OS 브랜드 버전 정보 보기'

자기 컴퓨터에 설치한 리눅스가 아니고, GUI 환경도 아닌 낯선 터미널을 만났을 때.
까만 건 화면이요.
하얀 건 글씨입니다.
'도대체 이 OS의 정체가 뭘까?'
우선 뭔지 알아야 안면을 트고 친해질 수 있죠.

uname -a

를 입력하면 기본적인 정보를 줍니다.
'나는 인텔 칩셋용 64비트 리눅스다!'
라고요.
하지만 리눅스의 브랜드와 버젼정보는 알 수 없어요.

cat /etc/*version
혹은
cat /etc/*release

를 터미널에 입력해 봅니다.
레드햇, 데비안, 수세, 슬렉웨어, 젠투 등은 이 방법으로 리눅스 브랜드와 버전을 알 수 있어요.
/etc/gentoo-release /etc/debian_version처럼 말이죠.
이 방법으로도 정보를 알아낼 수 없다?

cat /etc/issue*
명령을 날립니다.

/etc/issue 나 /etc/isssue.net 에 리눅스 브랜드와 버전이 적혀 있기도 하거든요.
저는 이 파일에서 서버의 정보를 알아냈어요.
만약 아직도 리눅스가 정체불명이다?!

그렇다면.
/var/log/var/adm 폴더의 로그를 살펴보세요.
부트메시지엔 보통 버전이 들어가 있으니까요.
mail을 처음 설치하면 환영 메일을 보내주는 OS도 있으니, /root/mbox에서 우연히 정보를 만날지도 몰라요.
이상, 모르는 리눅스를 만났을 때 이름 물어보는 법이었습니다..:D
by 月風



by


Tags : , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

우분투 9.04( Jaunty Jackalope) 에 네이트온 설치하기 (nateon on Ubuntu 9.04 installation guild)[리눅스,네이트온,linux,nateon]

이미지출처 : kldp.net

우분투 9.04( Jaunty Jackalope) 에 네이트온 설치하기 (nateon on Ubuntu 9.04 installation guild)







우선 리눅스용 네이트온을 다운받는다.(Download the nateon for linux)
http://kldp.net/frs/?group_id=1143
난 8.10용 204 revision을 설치했다.
http://kldp.net/frs/download.php/5036/nateon-1.0_204-1_i386.deb

의존성이 있는 패키지들을 설치해준다. (Install packages that has dependancy)

sudo -s
apt-get install alien
apt-get install kdelibs4c2a
apt-get install libqt3-mt
apt-get install libartslc2a <- 이게 문제 (I got a problem from here)

아래 링크에서 필요한 패키지를 받아서 설치한다.(I found require packages on below links.)
https://launchpad.net/ubuntu/hardy/i386/libartsc0/1.5.10-0ubuntu1~hardy1
https://launchpad.net/ubuntu/hardy/i386/libarts1c2a/1.5.9-0ubuntu2

그리고 네이트온을 설치한다. (Just install nateon)
sudo dpkg -i nateon-1.0_204-1_i386.deb


우와~ 설치완료! (Finish!)


그런데 라이브러리를 못찾아서 실행을 못한다. (But cannot run it cause missing library file.)

nateon: error while loading shared libraries: libartskde.so.1: cannot open shared object file: No such file or directory


rpmfind.net에서 libartskde.so.1파일이 들어간 패키지를  찾는다. (I found that library through rpmfind.)
http://rpmfind.net//linux/RPM/fedora/10/i386/kdelibs3-3.5.10-1.fc10.i386.html
이런게 있다.

받아서.

압축을 풀고. (extract file.)
alien -k -c filename ..


libartskde.so.1 파일을 라이브러리 폴더에 복사해 넣는다. (copy libartskde.so.1 to /usr/lib)
cp libartskde.so.1 /usr/lib/libartskde.so.1


한글이 안될경우 scim-qtimm 를 설치해서 한글도 쓸수 있도록 만들면..설치 완료!
(If you can't input hangul, install scim-qtimm package)



by


Tags : , , , , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

리눅스에서 ssh 서버 설정하기 (linux - ssh server configuration)










/etc/ssh/sshd_config



PermitRootLogin - Root 로그인 권한

ClientAliveInterval - sshd 접속 유지

Port 22 - 사용 포트 변경

AllowGroups/DenyGroups - ssh 로그인 할 수 있는/없는 그룹 , wildcard(*,?) 사용가능

AllowUsers/DenyUsers - 로그인 할 수 있는/없는 사용자



설정 변경을 완료하면 데몬을 한번 재시동 해주자!

/etc/init.d/sshd restart



by


Tags : , , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.