Linux에서 필요한 작업을 위해 필요한 패키지들을 설치하는 일이 윈도우와는 달리 상당히 번거롭고 혹은 까다롭고 심지어는 불가능할수도 있다.

가장 대표적으로는 apt-get install some_package_name

으로 설치가 되는 경우는 Linux 버전이 최신 버전이거나 사용하는 cpu가 통상적으로 많이 사용되는 경우들이다. 이런 경우는 repository에 해당 패키지가 있기 때문에 쉽게 설치가 된다.

동일한 Ubuntu에서도 CPU architecture가 다를 경우는 역시 설치에 문제가 많이 발생한다.


우선 사용중인 Linux가 어떤 종류인지 확인해 보자. 명령어는

# grep . /etc/*-release


다음과 같이 리눅스 종류와 버전 정보가 나타난다.

아래의 경우는 Ubuntu 16.04인 경우이다.


/etc/lsb-release:DISTRIB_ID=Ubuntu

/etc/lsb-release:DISTRIB_RELEASE=16.04

/etc/lsb-release:DISTRIB_CODENAME=xenial

/etc/lsb-release:DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

/etc/os-release:NAME="Ubuntu"

/etc/os-release:VERSION="16.04.3 LTS (Xenial Xerus)"

/etc/os-release:ID=ubuntu

/etc/os-release:ID_LIKE=debian

/etc/os-release:PRETTY_NAME="Ubuntu 16.04.3 LTS"

/etc/os-release:VERSION_ID="16.04"

/etc/os-release:HOME_URL="http://www.ubuntu.com/"

/etc/os-release:SUPPORT_URL="http://help.ubuntu.com/"

/etc/os-release:BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

/etc/os-release:VERSION_CODENAME=xenial

/etc/os-release:UBUNTU_CODENAME=xenial


다음은 리눅스 커널이 몇 bit인지를 확인해 보자


# getconf LONG_BIT


이 경우 32bit인경우 32, 64bit인 경우는 64의 값을 출력해 준다.


다음은 사용중인 cpu architecture가 무엇인지를 알아보자


# dpkg --print-architecture


여기서 amd64, i386, armhf 등의 해당 정보가 표시된다.

이러한 정보들을 가지고 패키지가 정상적으로 설치되지 않을 경우 활용할수 있는 정보들이다.

repository를 추가해서 설치하거나, 소스를 다운로드 받아서 새롭게 컴파일하는 등의 방법이 있으나 본 포스트에서는 Ubuntu(Debian 계열)의 경우 해당 버전, architecture등에 맞는 설치 패키지들이 잘 준비가 되어 있고 이것을 그냥 다운로드 받아서 dpkg라는 패키지 설치 명령어로 설치하는 방법에 대해서 정리하고자 한다.


참고로 repository를 추가하는 방법은


vi  /etc/apt/sources.list 파일을 열어서 해당 repository를 추가 및 저장한 후


# apt-get update를 한 후 apt-get install로 해당 패키지 설치를 시도해 보면 된다.


아래 사이트는 Ubuntu와 같은 Debian 계열의 각종 리눅스 종류와 버전들, 각종의 programming language들에 필요한 대한 매우 다양한 종류의 설치 패키지(.deb)가 잘 마련되어 있다. 


https://packages.debian.org/sid/


예를 들어 Python에서 사용할 Kivy 패키지를 찾고자 한다면 웹브라우저 상의 Ctrl-F로 Python을 찾는다. 찾아진 Python 항목을 클릭해서 들어가면 다음과 같은 웹 페이지가 열린다.


https://packages.debian.org/sid/python/


이 페이지에서 역시 Ctrl-F로 Kivy 항목을 찾는다. 그러면 다음과 같은 항목들이 있을 것이다.


python-kivy (1.9.1-1+b1 [alpha, amd64, arm64, armel, armhf, hppa, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, m68k, mips, mips64el, mipsel, powerpc, powerpcspe, ppc64, ppc64el, s390x, sparc64, x32], 1.9.1-1 [sh4])

Kivy - Multimedia / Multitouch framework in Python (Python 2)


python-kivy-examples (1.9.1-1)

Kivy - Multimedia / Multitouch framework in Python (examples)


여기서 python-kivy를 설치하고자 할경우 위의 첫 번째 항목을 클릭해서 들어가면 해당 패키지에 대한 설명과 관련 의존성 패키지들(dependency packages)이 모두 나와 있고 아랫쪽에 내려가면 python-kivy에 대한 Architecture별로 다운로드 받을수 있도록 목록이 나와있다.

해당 architecture를 선택해서 들어가면 다운로드 받을수 있는 ftp들 목록이 나온다. 원하는 목록에 대해 마우스 우측 클릭해서 해당 경로의 url 주소를 가지고 Linux에서 wget을 이용해서 다운로드 받은후(xxx.deb) dpkg로 설치하면 된다.


wget http://ftp.kr.debian.org/debian/pool/main/k/kivy/python-kivy_1.9.1-1+b1_armhf.deb 


혹은 리눅스의 웹브라우저로 위의 사이트에 들어가서 직접 다운로드 해도 된다.

설치는 다음과 같이


dpkg -i python-kivy_1.9.1-1+b1_armhf.deb 


리눅스의 경우 패키지 설치는 매우 다양한 변수들에 영향을 받는다. 따라서 상황따라 대처해야 하는수 밖에 없다.




몇 가지 리눅스 명령어


1) getconf LONG_BIT

 -. 현재의 리눅스 시스템이 32비트인지 64비트인지 확인

 -. 예) # getconf LONG_BIT


리눅스 상에서 가끔 실행파일을 실행시켜 보면 "cannot execute binary file: Exec 형식 오류"과 같은 에러가 발생할수가 있다. 이건 리눅스가 32비트인데 64비트 실행파일을 실행하고자 할때의 경우에 발생한다.


2) wget

 -. http, https, ftp 프로토콜을 이용하여서 웹에 있는 특정 파일을 다운로드

 -. 예) wget http://www.som.co.kr/qt-opensource-linux-x64-5.8.0.run


리눅스의 웹 브라우저등으로 웹 상의 파일을 다운로드 할수도 있으나 부득이 터미널 창에서 웹의 파일을 다운로드 받아야 할 경우 wget으로 편리하게 다운로드 받을수 있다.


3) apt-cache pkgnames | grep 패키지_이름

 -. 현재의 리눅스에 설치되어 있는 패키지 프로그램을 찾고자 할 때 사용

 -. 예) apt-cache pkgnames | grep wget

        (wget이 설치되어 있는지 확인할수 있다)


4) lpq 

 -. 프린트 큐에 있는 작업의 목록을 보여주는 명령어

 -. 예) lpq

         EPSON-L365-Series is ready

         no entries


5) cat /proc/cpuinfo

-. cpu에 대한 전체적인 정보가 나온다.


6) dpkg --print-architecture

-. Linux Kernel architecture 확인

-. 여기서 나오는 정보는 amd64, arm64, armhf, i386 등의 정보가 나온다.


7) ls -sh

-. 파일 목록을 보여줄때 파일 사이즈를 Kb, Mb의 형식으로 표시(파일이름과 사이즈 정보만 표시됨). 디폴트는 byte단위로 표시됨

-. 여기서 s는 size, h는 human readable형식을 뜻한다.

-. 만일 자세한 정보를 같이 표시할려면 ls -lsh







+ Recent posts