기존에는 우분투에서 vim만 사용하다가, 최근 들어 불편함을 느끼고 에디터를 찾아보던 와중에 Visual Studio(VS) Code를 찾게 되었습니다. VS Code의 가장 큰 장점은 마이크로소프트라는 것과 무료라는 것입니다. 


최근 에디터 트렌드처럼 깔끔하고, 에디터 내부에서 터미널을 호출해 사용할 수 있는 것이 편한듯합니다. 그리고 C, C#, Python, Ruby과 같이 다양한 언어에 대해 빌드를 할 수 있습니다. 물론 서브라임이나 아톰도 추가 패키지를 설치해서 컴파일을 진행할 수 있지만, 원래의 용도가 빌드보다는 에디팅에 가까우므로(?) 제가 느끼기에는 어느 정도 기능적(디버깅 등) 한계가 있는 듯 합니다.


VS Code는 https://code.visualstudio.com/ 에서 다운받을 수 있습니다.

지원 플랫폼은 아래와 같이 윈도우 7, 8, 10과 Debian, Ubuntu, Red Hat, Redora, SUSE, 그리고 macOS 10.9입니다.



윈도우에서 VS Code를 사용하고자 하신다면 추가적으로 MinGW와 같은 소프트웨어를 설치해야 할 듯 합니다.


저는 우분투 17.10 64bit를 사용하고 있기 때문에, .deb 파일을 다운받았습니다.


설치는 아래의 명령어로 진행하면 됩니다.
$ sudo dpkg -i code_1.20.0-1518023506_amd64.deb 



하지만, 보통의 경우에서는 위와 같이 libconf-2-4 에러(Package libconf-24 is not installed.)가 발생하는데, libconf-2-4만 설치하려 하신다면 아래와 같이 설치가 안 되는 것을 볼 수 있습니다.


" libgconf-2-4: Depends: gconf2-common (= 3.2.6-4ubuntu1) but it is not going to be installed Recommends: gconf-service "


그렇다고, gconf-service를 설치하면 똑같은 문제가 다시 발생합니다. 결론은 의존적인 패키지를 모두 설치해 주어야 합니다.

의존적인 패키지들의 설치는 아래 명령어로 가능합니다.


$ sudo apt-get install gconf-service-backend gconf-service gconf2-common libgconf-2-4


다시, VS code의 설치로 돌아와 dpkg로 설치를 진행하면 아래와 같이 잘 되는 것을 볼 수 있습니다.



VS Code의 실행은 터미널에서 "code"를 입력하거나, 패키지 검색에서 vs code를 찾아서 실행하면 됩니다.



실행이 완료되었다면, 저는 C를 사용할 것이기 때문에 Extensions 탭에서 C를 위한 기능들을 설치해줍니다.



이상 VS Code 설치 방법 포스팅을 마치겠습니다.



최근 파일을 빌드하는 도중, gcc 버전이 6보다 낮아서 진행되지 않아 업데이트를 진행하였습니다.


apt-get update와 apt-get install gcc-6를 하면 된다고 많은 글에서 이야기하였으나, 실제로는 동작하지 않았습니다.

그래서 방법을 찾아보다가 아래의 글을 찾게 되었고, 성공적으로 업데이트를 진행하였습니다.


링크: https://gist.github.com/application2000/73fd6f4bf1be6600a2cf9f56315a2d91


업데이트 이전 gcc-v



업데이트 이후 gcc-v



업데이트 시간은 약 10분 정도 걸렸습니다.


Ubuntu 15.04 i386(Vivid Vervet, kernel version 3.19)를 사용하고 있었는데 커널 업데이트를 해야하는 일이 생겨서 최신 안정화 버전으로 업데이트하기로 하였습니다. (현재 안정화 버전은 4.10.3 입니다)


그리고 GCC는 4.9.2(Ubuntu 4.9.2-10ubuntu13)를 사용하였습니다.


리눅스 커널 빌드를 위해 libssl과 같은 라이브러리의 설치가 필요한데 라이브러리의 설치는 아래의 명령어를 통해 가능합니다.


$ sudo apt-get install -y build-essential libqt4-dev libncurses5-dev git git-core pkg-config libssl-dev


커널은 https://www.kernel.org/에서 다운로드 받을 수 있으며 아래의 명령어를 통해서도 가능합니다.


$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.10.4.tar.xz


커널 빌드는 아래의 병령어를 통해 빌드 설정, 빌드, 모듈 설치, 적용의 과정을 거치는데 아래의 명령어들을 통해 가능합니다.


만약 지금 사용하는 커널의 설정을 그대로 사용하고 싶으시면 make mrproper 대신에 /boot/config-xx 파일을 커널 빌드 디렉터리의 .config 파일에 덮어씌우면 됩니다.


$ make mrproper

$ make menuconfig

$ make -j4

$ sudo make modules_install

$ sudo cp .config /boot/config-`make kernelrelease`

$ sudo make install

$ sudo reboot


중간에 make menuconfig를 입력하면 아래와 같은 화면이 나오는데, 혹시 개인적으로 수정할 것이 있으면 해당 항목을 enable 해주고, 없으면 Save를 눌러 .config 파일로 저장하고 Exit를 누르면 됩니다.




마지막 명령어인 reboot을 하고 나서 'uname -a' 명령어를 통해 커널 버전을 확인할 수 있습니다.



정상적으로 4.10.3 버전으로 업데이트 되었습니다.


Ubuntu 14.04 이후 버전을 사용하면서부터 부팅 시 아래와 같은 'System program problem detected' 에러가 발생하였습니다.



Report problem을 클릭하면 'com.ubuntu.apport.apport-gtk-root' 를 실행할 때 문제가 발생했다고 합니다.



gtk는 리눅스에서 X윈도우를 위한 툴인데 이러한 문제는 apport 파일 수정을 통해 해결 가능합니다.



1. apport 수정


apport 파일 수정을 아래의 명령을 터미널에 입력해서 수정할 수 있습니다.

$ sudo vi /etc/default/apport


파일을 열면 아래와 같이 enabled=1로 설정되어 있습니다. 



그러면 1로 되어있는 부분을 아래와 같이 0(enabled=0)으로 수정해 줍니다.



그리고나서 esc 키를 누르고 shift+zz 혹은 :wq! 로 vi를 종료합니다.



2. 재부팅


아래의 명령어를 통해 재부팅을 하고 나면 에러가 해결된 것을 볼 수 있습니다.

$ sudo reboot




우분투를 설치하면 기본적으로(버전에 상이) OpenSSL이 설치되어있습니다.


우분투 15.04의 경우 apt update/upgrade 이후에도 2014년 버전이 설치되어 있습니다.


따라서 최신 버전의 OpenSSL로 업데이트를 해주어야 합니다(현재(16년 4월) OpenSSL의 최신 버전은 1.1.0입니다). 


OpenSSL의 최신버전은 아래의 공식 홈페이지에서 확인할 수 있습니다.


https://www.openssl.org/


업데이트를 위해서 git을 설치해야 합니다. git은 아래의 명령을 통해 설치할 수 있습니다(sudo 혹은 슈퍼유저로 진행해야합니다).


sudo apt-get install  git


1. OpenSSL 다운


OpenSSL의 최신 버전은 여러 사이트에서 다운할 수 있지만, git을 사용해서 다운받는 방법으로 진행하겠습니다.


OpenSSL은 아래와 같이 https://github.com/openssl/openssl에서 다운로드 및 소스를 볼 수 있습니다.



다운로드는 아래의 명령을 통해 가능합니다.


git clone  https://github.com/openssl/openssl.git



2. OpenSSL 설치 및 업데이트


다운로드가 끝나면 OpenSSL 디렉터리로 이동합니다.


해당 디렉터리에서 아래의 명령어를 통해 OpenSSL의 설치 및 업데이트를 할 수 있습니다.

(특정 디렉터리는 --prefix와 --openssldir 구문을 통해 configure 과정에서 지정할 수 있습니다)


./configure
make
sudo make install


3. OpenSSL 버전 확인


터미널에서 openssl을 입력하면 OpenSSL 터미널로 이동하게됩니다.

(OpenSSL > version)


OpenSSL 터미널에서 version 명령을 입력하면 현재의 버전을 확인할 수 있습니다.

(현재 제가 설치한 버전은 OpenSSL 1.1.0-pre5-dev xx XXX xxxx 입니다)



우분투에서 Java SE Development Kit(JDK)를 설치하는 방법입니다.


저는 Ubuntu 15.04 64-bit에서 설치를 진행하였습니다.



1. JDK 다운로드


JDK는 오라클 사이트에서 다운받을 수 있습니다(아래의 주소 클릭 시 이동합니다).


http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html



주소로 이동을 하면 위와 같이 Java SE Development Kit 다운로드 화면이 나타납니다. 


Accept License Agreement를 클릭하여야 다운로드가 가능하므로 꼭 클릭해야 합니다.

이후 자신의 버전에 맞는 것을 선택하여 다운로드 합니다.


저는 64비트 리눅스를 사용하고 있으므로 Linux x64에 해당하는 파일(jdk-8u77-linux-x64.tar.gz)을 다운받았습니다.

(rpm보다 tar.gz파일이 편해 해당 파일을 다운로드 하였습니다.)



2. JDK 압축 해제


JDK의 다운로드가 완료되면 해당 디렉터리로 이동하여 아래의 명령어로 압축을 해제합니다.


tar xfz jdk-8u77-linux-x64.tar.gz


3. 경로 설정


압축 해제를 완료하면 JDK의 경로를 bashrc에 추가해 주어야 합니다.


bashrc를 수정하기 위해서 아래의 명령어를 입력합니다(sudo 혹은 슈퍼유저로 진행해야 합니다).


sudo vi ~/.bashrc


해당 파일에 아래의 부분을 추가합니다.

(기존에 설정된 PATH가 존재한다면 해당 경로의 마지막(:$PATH 이전)에 :(콜론)을 추가한 뒤 다른 경로를 추가합니다)


export PATH=JDK 디렉터리/bin:$PATH

export JAVA_HOME=JDK 디렉터리:$JAVA_HOME
 

파일에 추가를 완료하면 :wq 혹은 Shift+ZZ를 통해 저장 및 종료를 합니다.


이후 아래의 명령으로 수정된 부분을 적용해줍니다.


source ~/.bashrc


4. 적용 확인


위에서 추가한 부분이 잘 적용되었는지 확인하기 위해서 터미널에서 'javac -version'을 입력합니다.


설정이 정상적으로 되었다면 아래와 같이 출력됩니다.


sh@sh-virtual-machine:~$ javac -version
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
javac 1.8.0_77




간혹 우분투에서 apt-get에 관련된 명령어 update, upgrade, install 등을 사용할 때 작은 프로그램의 다운로드 및 설치에 많은 시간이 소요되는 경우가 있습니다. 

이러한 경우는 현재 본인이 사용하는 회선의 문제이거나 apt-get 저장소(repository)의 문제일 수도 있습니다.


특히 우분투 영문 버전 혹은 해외 사이트에서 다운 받은 경우 apt-get의 저장소가 'us.archive.ubuntu.com'과 같은 해외 도메인으로 되어있는 경우 vim과 같은 프로그램의 설치에서 많은 시간을 보내게 됩니다.


한국 사이트에서 받은 경우나 위치설정을 한국으로 해놓은 경우 저장소가 'kr.archive.ubuntu.com'으로 설정이 되어있어서 그나마 빠르고 안정적으로 프로그램의 설치가 가능합니다.


그래서 이러한 apt-get 저장소를 변경하는 방법에 대해서 알려드리려 합니다.


apt-get에 대한 정보는 우분투의 /etc/apt/ 디렉터리에 있습니다.


이제 해야 할 일은 apt 디렉터리에 있는 'sources.list'라는 만일을 위해 백업을 해두고 저장소의 주소를 바꿔주는 것입니다.


# cd /etc/apt/sources.list

# sudo cp sources.list sources.list.bak

# sudo vi sources.list


sources.list 파일을 열어보면 아래와 같이 각 작업에 대한 저장소 주소를 저장하고 있습니다.






여기서 변경해야 할 주소는 'kr.archive.ubuntu.com/ubuntu'와 'security.ubuntu.com'입니다. 일일이 바꾸기에는 힘들고 번거로우므로 때문에 vi의 명령어를 사용해 한 번에 변경합니다.

(vi에서 입력 모드가 아닌 커맨드 모드에서 입력하여야 합니다.)


최근 ftp.daum.net에서 ftp.daumkakao.com으로 주소가 바뀌었습니다(그림은 참고용입니다).


:%s/kr.archive.ubuntu.com/ftp.daumkakao.com/




:%s/security.ubuntu.com/ftp.daumkakao.com/




이제 파일을 저장(:wq 혹은 Shift + zz)을 하고 터미널로 빠져나와서 apt-get의 저장소를 갱신해 줍니다.


# sudo apt-get update


아래와 같이 정상적으로 변경된 저장소에서 정보들을 업데이트하는 것을 볼 수 있습니다.




이상 apt-get의 저장소 변경에 대한 포스팅을 마칩니다.

  1. lestock 2018.02.11 14:54 신고

    감사합니다! 유용한 정보네요. 중간에 문자열 교체 명령어 security.ubuntu.com으로 바꿔주시면 좋을듯 합니다. 업데이트 속도가 아주 빨라져서 너무 좋네요!! ^^ 감사합니다.

    • SH_SH 2018.02.14 19:17 신고

      안녕하세요!
      감사합니다. 수정하였습니다



최근 우분투의 버전이 여러개 필요해져서 우분투 공식 홈페이지(http://www.ubuntu.com/)에서 다운을 받으려 하였습니다.


하지만 우분투 공식 홈페이지에서는 아래와 같이 14.04 LTS와 15.10 버전만 다운로드가 가능하였습니다.



우분투 공식홈페이지 다운로드http://www.ubuntu.com/download/desktop



우분투 공식 홈페이지에서는 브라우저를 통한 다이렉트 다운로드 외에 토렌트 파일을 통해 다운로드를 할 수 있었지만 토렌트를 사용할 수 없는 환경에서 작업중이었기 때문에 다이렉트 다운로드를 사용하기로 했습니다.


토렌트로는 12.04 LTS 버전도 다운이 가능하였습니다.



토렌트로 우분투 다운로드http://www.ubuntu.com/download/alternative-downloads

 


하지만 문제는 다운로드 속도가 너무 느려서 한참 걸린다는 것이었습니다. 다행히도 예전처럼 us.ubuntu.com 에서 파일을 받아오지 않고 neowiz.com에서 다운로드 받기 때문에 속도가 비교적 안정적으로 나오는듯 합니다.


우분투  14.04 LTS 64bit을 다운로드 하면 아래와 같이 제가 사용하는 회선에서 약 500KB/s ~ 1000KB/s 정도 나오고 있습니다.






그래서 여러 버전이 필요하기도 하였고 하나 받는데도 너무 오래걸려서 다운로드 받을수 있는 곳을 찾아보았습니다.


다행히도 다음(daum)에서 국내 서버로 우분투와 각종 리눅스들의 다운로드를 제공해 주었습니다.


다음 ftp: http://ftp.daum.net

주소를 입력하실때 필수적으로 http://를 붙여서 접속해야 합니다. 붙이지 않으면 ftp://ftp.daum.net으로 연결되어 정상적인 접근이 불가능합니다.


다음 서버에서는 아래와 같이 12.04, 14.04, 15.04, 15.10 버전과 Kubuntu와 같은 캐노니컬 우분투의 다운로드도 제공해 주었습니다.



다음 서버 우분투 다운로드http://ftp.daumkakao.com/ubuntu-releases/



속도를 비교해 보기 위해서 동일한 버전인 14.04.3 버전을 다운받아 보았습니다.






네오위즈 서버와 비교했을때 약 8배의 다운로드 속도인 4.0MB/s ~ 4.5MB/s 정도로 괜찮은 속도를 보여주었습니다.




우분투에서 apt-get과 같은 작업을 할 때 sudo 명령을 통해 진행하거나 배쉬 쉘을 수정할 때와 같은 슈퍼유저 권한을 얻어오는 작업이 귀찮기도 하였고 몇 가지 불편사항으로 인해 우분투를 시작할 때 사용자 계정이 아닌 루트 계정으로 로그인되도록 설정하였다.


저는 Ubuntu 15.04 LTS를 사용하고 있어서 14.04와 15.04를 기준으로 설명하겠습니다.




Ubuntu 14.04 및 15.04 LTS에서 기존의 계정이 아닌 root 계정으로 부팅할 때 로그인시키려면 아래의 두 가지 파일을 수정해야 합니다.



- /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf


- /etc/lightdm/lightdm.conf




1. 50-unity-greeter.conf 수정


1) 해당 파일을 편집기로 불러옵니다. (vim/nano 등)


# sudo vi /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf


2) 다음 내용을 추가 혹은 수정합니다.


greeter-show-manual-login = true



3) 저장





2. lightdm.conf 수정


1) 해당 파일을 편집기로 불러옵니다. (vim/nano 등)


# sudo vi /etc/lightdm/lightdm.conf


2) 아래의 내용으로 수정합니다.


autologin-user = username


autologin-user = root



3) 저장




3. 재부팅





혹시 위의 설정 이후 재부팅 과정에서 발생하는 오류는 아래와 같이 해결할 수 있습니다.




-문제 해결-



1. error found when loading /root/.profile 와 같은 에러가 발생한다면 다음과 같이 해결합니다.


1) /root/.profile 을 수정합니다. (root)


# vi /root/.profile


2) 해당 파일의 다음 내용을 수정합니다.


mesg n

tty -s && mesg n



3) 저장




2. stdin is not a tty 에러 발생은 다음과 같이 해결할 수 있습니다.



1) .profile을 불러옵니다(root)


# sudo vi .profile



2) 'msgn n'을 아래로 대체합니다.


if \`tty -s\`; then
mesg n
fi



모든 과정이 정상적으로 설정되었다면 다음 재부팅 시에는 에러 없이 명령 프롬프트에서 #을 볼 수 있습니다.