[Windows+Linux] WSL 사용 시 참고

Ubuntu 20.04 내의 파일 저장 경로

WSL 1

%localappdata%\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows어쩌고저쩌고\LocalState\rootfs\

예를 들어, C:\Users\dasom\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs

WSL 2

\\wsl$ 를 입력하면 배포판이 보인다.

\\wsl$\Ubuntu-20.04

GUI

Xming 같은 Xserver를 사용해서 WSL로 설치한 Ubuntu 등에서 GUI 를 사용할 수 있다.

WSL 1을 WSL 2로 변환하기

WSL로 설치한 항목은 다음으로 확인 가능하다.

wsl -l -v

여기서 WSL Version이 1인 것을 다음과 같이 2로 바꿀 수 있다. 예제로 Ubuntu-20.04 를 바꾸고 싶다면 다음과 같이 하면 된다.

wsl --set-version Ubuntu-20.04 2

실행 시 기본 유저 바꾸기

명령 프롬프트에서 다음을 실행한다.

ubuntu config --default-user new_dasomoli

참고

아래 글이 매우 정리가 잘 되어 있다.

[go] Ubuntu 에서 go 여러버전 사용하기

Ubuntu 리눅스에서 go의 여러 버전을 심볼릭 링크로 사용할 때 update-alternatives로 셋팅해서 사용하자.

# update-alternatives --install /usr/local/go go /usr/local/go1.17.2 1
update-alternatives: using /usr/local/go1.17.2 to provide /usr/local/go (go) in auto mode

# update-alternatives --install /usr/local/go go /usr/local/go1.16.8 2
update-alternatives: using /usr/local/go1.16.8 to provide /usr/local/go (go) in auto mode

# update-alternatives --install /usr/local/go go /usr/local/go1.14.15 3
update-alternatives: using /usr/local/go1.14.15 to provide /usr/local/go (go) in auto mode

# update-alternatives --config go
대체 항목 go에 대해 (/usr/local/go 제공) 3개 선택이 있습니다.

  선택       경로                우선순� 상태
------------------------------------------------------------
* 0            /usr/local/go1.14.15   3         자동 모드
  1            /usr/local/go1.14.15   3         수동 모드
  2            /usr/local/go1.16.8    2         수동 모드
  3            /usr/local/go1.17.2    1         수동 모드

현재 선택[*]을 유지하려면 <엔터>를 누르고, 아니면 선택 번호를 입력하시오:
#

[Linux] Gzip으로 압축된 로그 파일 다루기

logrotate를 사용하면 /var/log 아래에 gzip된 로그 파일(.gz)들이 남는다.

로그 파일을 보고 싶을 때 압축을 풀어서 봐도 되지만, 압축을 풀지 않고 다룰 수 있는 명령어들이 있다.

  • zcat: 압축된 파일 보기
  • zgrep: 압축된 파일에서 grep
  • zless: gz파일을 위한 less. zmore도 있다.

zless log.gz 이면 로그 파일 보는데 큰 문제 없을 거다.

zcat으로 | 하여 파이프를 통해 이용하는 것도 좋은 방법이다.

more는 오래된 도구로 less와의 차이는 less는 앞 쪽으로도 스크롤이 된다. more는 뒤로만 된다.

 

[Linux] logrotate 설정

로그 남길 때 그냥 주구장창 남기면 디스크가 꽉 찬다.

/var/log 아래 남는 log 들처럼 주기적으로 gzip으로 압축하고, 오래된 로그는 저절로 지워지도록 하고 싶을 때 logrotate를 쓴다.

logrotate를 설정해서 주기마다 압축해서 남기고, 때 되면 지우도록 만들자.

아래 명령은 도움말인 man page를 보여 준다.

# man logrotate

 

logrotate의 설정 파일들은 아래에서 찾을 수 있다.

/etc/logrotate.conf : logrotate의 기본 설정 파일. 여기서 /etc/logrotate.d/ 아래의 파일들을 include 하도록 되어 있다.
/etc/logrotate.d/ : logrotate를 사용해서 로그를 남기고 싶은 유틸리티들이 여기다 설정 파일을 둔다.

 

예제를 보자.

# vi /etc/logrotate.d/mysqlmon
/var/log/mysqlmon/mysqlmon.log /var/log/mysqlmon/mysqlmon.err {
        daily
        missingok
        rotate 7
        compress
        notifempty
}

위의 예제의 각 옵션은 다음과 같다.

daily: 하루 주기

missingok: 로그 파일이 없어도 에러 메시지를 쓰지 않는다.

rotate 7: 오래된 로그를 7개 남긴다.

compress: gzip으로 압축한다.

notifempty: 로그 파일이 비어 있으면 rotate하지 않는다.

다른 자세한 옵션은 man page를 참고하자.

우분투에서 rpm 패키지 설치하기

sudo apt-get install alien

sudo alien <rpm filename>
sudo dpkg -i <deb filename>

근데, i386용 패키지라고 64비트에서 안될 때가 있는데, 다음 과정을 거치면 될 수도 있다.

sudo alien –to-tgz <rpm filename>

sudo alien –to-deb <tgz filename>

Ubuntu 14.04에서 ia32-libs 대신 gcc-multilib

64비트 배포판에서 32비트 executable이 실행이 안되길래 strace로 보니 /lib/ld-linux.so.2를 찾다가 못찾아서 실행이 중단된다.

ia32-libs 깔려고보니..

ia32-libs 패키지가 없어지고 gcc-multilib meta 패키지로 대체된 듯 하다.

sudo dpkg --add-architecture i386
sudo apt-get install gcc-multilib

우분투 LiveCD로 grub 복구하기

매번 할 때마다 그냥 그때그때 찾아서 했는데, 이제 찾는 것도 귀찮다…..

1. Live CD로 부팅한 후 https://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCIQFjAA&url=http%3A%2F%2Fhowtoubuntu.org%2Fhow-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd&ei=tC1nVYDRKoalmQWr64LwAw&usg=AFQjCNEezfvAX1O1qULcr-1Cptqi-ps7Iw&sig2=lVwEJ0u7IuDDgGZfJnzjwQ&bvm=bv.93990622,d.dGY 의 내용대로 함.


요약하면, sudo gparted 하여 우분투 설치 파티션 알아냄. 거의 ext4 파티션. 나의 경우 /dev/sda4

sudo mount /dev/sda4 /mnt

sudo mount –bind /dev /mnt/dev &&

sudo mount –bind /dev/pts /mnt/dev/pts &&

sudo mount –bind /proc /mnt/proc &&

sudo mount –bind /sys /mnt/sys

sudo chroot /mnt

grub-install /dev/sda

grub-install –recheck /dev/sda

update-grub

exit &&

sudo umount /mnt/sys &&

sudo umount /mnt/proc &&

sudo umount /mnt/dev/pts &&

sudo umount /mnt/dev &&

sudo umount /mnt

2. Default 설정 등 파일은 /etc/default/grub 에 있음. 설정 바꾼 후 update-grub 하면 그대로 설정됨.

GRUB_DEFAULT=0

#GRUB_HIDDEN_TIMEOUT=0

GRUB_HIDDEN_TIMEOUT_QUIET=true

GRUB_TIMEOUT=5

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”

GRUB_CMDLINE_LINUX=””

[Ubuntu] root 인증서 설치

프록시를 사용하는 환경에서 https 프로토콜을 사용할 때 인증 오류가 나는 경우, ca-certificate 인증 문제일 경우가 많다. 프록시 사용에 따른 인증서를 제공한다면 이걸 시스템 전역적으로 설치해주면 해결된다. 절차는 간단하다.

$ sudo mkdir /usr/share/ca-certificates/extra
$ sudo cp foo.crt /usr/share/ca-certificates/extra/
$ sudo dpkg-reconfigure ca-certificates

하고나서 껐다켜야 잘 되던데? 왜그런거지..

출처: http://askubuntu.com/questions/73287/how-do-i-install-a-root-certificate

[Ubuntu] Adobe AIR 설치

http://askubuntu.com/questions/87447/how-can-i-install-adobe-air 에 나와 있다.
옮겨 적자면…

Alternately, you can install a prebuilt .deb

There is air 2.6 (last supported Linux one) available here for both architectures (Both use 32 bit underneath but at least it works). Thanks to prusswan for pointing it out.

Make sure you have 32 bit libs it’ll need:

sudo apt-get install ia32-libs

I downloaded the AMD64 one (adobeair_2.6.0.19170_amd64.deb) and installed on my computer (am64 with Precise Pangolin 12.04)

sudo dpkg -i adobeair_2.6.0.19170_amd64.deb

Then I installed the application that needed Adobe Air in the first place and it worked.

Update for Ubuntu 13:10+,

Trying this technique, i get “Package ia32-libs-gtk is not installed”

I looked up the package and tried installing those dependencies and other related packages I can think of directly:

sudo apt-get install gtk2-engines:i386 libart-2.0-2:i386 libcairo2:i386 libcanberra-gtk0:i386 libdatrie1:i386 libgail-common:i386 libgconf2-4:i386 libgtk2.0-0:i386 liblua5.1-0:i386 libpango1.0-0:i386 libpixman-1-0:i386 libqt4-network:i386 libqt4-test:i386 libqtcore4:i386 libthai0:i386 libbonobo2-0:i386 libglade2-0:i386 libgnomecanvas2-0:i386 libidl0:i386 liborbit2:i386 libwmf0.2-7:i386 gtk2-engines-murrine:i386

But that didn’t work for either the deb or original binary.