슬랙웨어 리눅스
[image]
1. 개요
'''Slackware Linux'''
홈페이지
리눅스 배포판 가운데 하나. 줄여서 슬랙웨어라고 부르는 경우가 더 많다.
2. 역사
현재까지 살아있는 가장 오래된 배포판. 1993년부터 배포를 시작했다. (참고로 리눅스가 사람들에게 배포되기 시작한 게 91년) 리눅스 계보를 보면 리눅스를 가르는 3가지 줄기 가운데 하나가 이 녀석이다(나머지 둘은 데비안과 레드햇). Linux distro timeline
패트릭 볼커딩이 만들었다. 날아다니는 스파게티 괴물같은 패러디 종교 가운데 하나인 바보교(Church of Subgenius)의 신자이기도 하다. 이 배포판의 이름 가운데 슬랙이라는 단어가 이 바보교와 관련이 있는 단어라고 한다.
3. 특징
'가장 유닉스다운 리눅스 배포판'이라는 기조에 따라 시스템의 권한을 최대한 사용자에게 이양했다. 이런 디자인 철학 때문에 사용자가 의도하지 않은 결과는 거의 일어나지 않는다는 장점이 있다. 반면 '''자신의 기계는 자신이 관리하라'''는, 어찌보면 불친절의 대명사 같은 배포판이다. 유지보수를 위한 노력이 오롯이 사용자에게 전가된다.
package manager를 사용하는 다른 배포판들은, 설치시부터 시스템의 정책에 적극적으로 간섭하고, 업데이트시에도 의존성 문제로 설정이 복잡해지기 쉬운 경향이 있으나, 슬랙웨어의 경우에는 인스톨때의 셋업을 제외하면 스크립트가 하는 것이 거의 없다. '''설치는 텍스트 기반'''이고 패키지 관리자는 '''tar파일 풀어서 쓰시오'''이며 환경 설정은 '''텍스트 편집기로 해당 설정 파일을 직접 수정할 것'''을 고수하는 독야청청함을 보여 준다.
막상 써보면 그리 어렵지 않은데, 허구헌날 소스 받아서 make make install 하는 기계가 될 수도 있지만, 그냥 slackpkg를 이용해 설치, 삭제, 업데이트를 편하게 할 수도 있다. CLI 환경에 익숙하다면 그리 어렵지 않게 적응할 수 있다.
다른 배포판과 대비되는 가장 큰 슬랙웨어의 특징 중 하나는 '''의존성 검사를 전혀 하지 않는다'''는 점이다. ubuntu와 같은 debian계열이나 centos와 같은 redhat 계열은 각각 apt와 yum과 같은 package manager 를 가지고 있고, package를 설치할 때에 의존성 검사를 하는 것과, 나아가 시스템 update때에 여러가지 자동화 과정이 수반되는 데 반해서, 슬랙웨어의 관리 철학은 이러한 것을 전혀 제공하지 않는 점에서 차이가 난다.
다른 리눅스 배포판 (우분투, 페도라 등)은 리눅스에 익숙하지 않은 사람들을 사로잡기 위해 그래픽 환경에 대한 의존도를 높이고 설치나 환경 설정 등도 더 많이 자동화하고 있다. 쉬운 사용을 위해 해당 배포판 자체적으로 부가적인 툴들을 따로 제공하고 있다.
아치 리눅스와 젠투 리눅스도 CLI 위주의 배포판이긴 하지만, 오리지널 유닉스를 지향하는 슬랙웨어와는 차이가 좀 있다. 슬랙웨어는 다른 배포판들과 달리 거의 모든 리눅스가 공유하는 기본적인 툴 위주로 사용을 하기때문에 원시적이다. 커널부터 시작해서 제공하는 패키지도 다른 배포판들에서 대부분 하고있는 배포판 특유의 패치나 브랜딩을 하지 않은채 순수 업스트림 바닐라로 제공하는게 대부분이다. 그리고, 그냥 제공하는것을 넘어서 상당히 오랜 시간을 들여 테스팅을 하기때문에 안정성 측면에서도 데비안과 비견될 만하다.(그리고, 데비안처럼 최신패키지가 업데이트 되는 시기도 늦다.) 말그대로, 매우 안정적임과 동시에 표준 패키지를 제공하는 표준 배포판이라 볼 수 있으며, 이것이 바로 슬랙웨어의 커다란 특징이다.[1]
반면, 젠투같은 배포판은 CLI 를 주로 이용하긴 하지만, 오히려 젠투만의 부가적인 패치나 툴들을 매우 적극적으로 이용하는 배포판이기때문에 표준과는 거리가 상당히 멀다. 소스 컴파일 방식이라 패키지 업데이트도 빠를것같지만, 부가적인 패치등을 적용하기때문에 이에 대한 테스팅등을 하는 시간이 꽤 필요하고, 이때문에 최신 패키지에 stable 딱지가 붙어 제공되기까지는 시간이 상당히 걸리는편이다.
젠투 리눅스와 달리, 아치 리눅스의 경우에는, 배포판차원에서의 부가적인 툴을 따로 만들어 제공하는것이 별로 없는데다가 BSD 스타일의 init scripts 를 사용하는것, 그리고 배포판 특유의 부가적인 패치를 거의 더하지 않는다는점까지 슬랙웨어와 공유하는 부분이 상당히 많다. 차이점을 꼽자면 pacman 이라는 패키지매니저가 의존성 해결을 자동으로 해주고, 무엇보다 안정성 우선인 슬랙웨어와 달리 빠른 업데이트를 목적으로 하고있어 최신 패키지를 가장 빠르게 제공해주는 배포판이기도 한지라, 인스톨후 달랑 CLI 가 뜨는 배포판 치고는 인기가 많다. 다만 아치리눅스가 너무 빠른 업데이트만을 우선으로 한 나머지 커널 업데이트의 경우 불안정한 경우가 많고 업데이트에 커널 업데이트가 껴있을 경우 문제가 생길 확률이 큰 배포판이라 아치리눅스와 비슷하면서도 좀더 안정적인 리눅스를 찾을때 많이 고려하게 되는 리눅스다.
슬랙웨어를 사용하면서 배우게 되는 지식/테크닉들은 다른 유닉스/리눅스 배포판에도 적용 가능한것이 많지만, 데비안, 젠투등 다른 유명 배포판들을 사용하며 알게 되는 지식/테크닉들은 해당 배포판 전용인 경우가 많다.(해당 배포판에서도 자신들이 제공하는 툴과 세팅방식을 이용할것을 권장한다.) 덕분에 다른 리눅스 배포판을 공부하면 그 리눅스 배포판을 알게되고, 슬랙웨어를 공부하면 리눅스 자체를 알게된다는 소리도 넷상에 자주 떠돌아다닌다. 거기 더해서 설명도 매우 자세하게 해 준다.
그래서 슬랙웨어 사용 경험이 있는 사람은 여러 문제를 겪고 해결하는 과정에서 우분투 등의 편한 배포판 사용 경험에 비해 많은 지식을 얻게 된다. 오픈 소스 특성상 아무리 배포판에서 관리를 잘한다 해도 여러가지 자잘한 문제들이 튀어나올 가능성이 높고, 게중에는 리눅스에 대해 조금만 알고있으면 간단히 해결가능한것들이 다수 존재하기때문이다.
하지만 단순히 호기심에서 리눅스를 처음 접하는 사람이 슬랙웨어로 시작하게 되면 일주일도 안돼서 질려 도망갈 확률이 90%는 넘을 거라는 게 문제다. 리눅스가 처음이라면 우분투 계열이나(Mint가 보통 추천된다.) Manjaro 를 사용하는 게 낫다. [2]
최근에는 AMD64 기종도 지원하기 시작했다.
그리고 2012년 9월에 ARM 슬랙웨어 14버전을 내놓았다!
4. 기본적인 세팅방법
- OS 설치: KLDP 해당 문서 참조. cfdisk로 파티션을 수정한다음 [3] root로 로그인해서 설치하면 끝. 저 홈페이지는 슬랙웨어 버전 11을 가지고 했는데 최신버전인 14.2에서는 X설정은 할 필요도 없으며 그냥 잘 된다. 설치 중간에 데스크탑 환경을 고르는 것이 뜨는데 사실상 "KDE랑 xfce 중에 뭐 쓸래?" 라고 묻는 것이나 다름없으니 둘 중 하나 고르도록 하자. Root 비번은 당연히 입력해놔야 한다.
- 사용자 추가: 설치 후 재부팅한다음 root로 로그인한다. 리눅스에서 root계정으로 계속 사용하는 것은 좀 무리이기 때문에 사용자를 하나 추가한다. adduser를 입력해서 사용자를 하나 추가한 다음 logout으로 root계정에서 나오고 새로 만든 계정으로 로그인한다. 그리고 데스크탑 환경을 띄우기 위해 startx를 입력한다. 뜨면 일단 설치는 잘 된 것이라고 보면 된다.
4.1. 한글입력
슬랙웨어엔 기본적으로 SCIM 패키지가 설치되어있다. SCIM을 사용하기 위해서는 scim.sh, scim.csh파일을 실행 가능한 파일로 만들어줘야 된다.
먼저 "/etc/profile.d/lang.sh" 파일에서 LANG 환경 변수를 UTF-8을 지원하도록 변경해준다. 7번째 줄
export LANG=en_US
의 맨 앞에 '#'을 추가하고 26번째 줄
#export LANG=en_US.UTF-8
의 맨 앞 '#'을 지운 후 저장한다(en_US.UTF-8 대신 ko_KR.UTF-8을 쓸 수도 있겠지만 이 경우 console의 언어도 한글로 바뀌는데 console font가 한글을 지원하지 않을 경우 console에서 한글이 나오면 제대로 표시하지 못한다. Slackware에 한글을 표시할 수 있는 console font는 포함되어있지 않다.).
이후 SCIM을 활성화한다.
chmod a+x /etc/profile.d/scim.sh (Bash 사용자의 경우)
chmod a+x /etc/profile.d/scim.csh (C Shell 사용자의 경우)
이후 XKB의 설정을 바꾼다. "/usr/share/X11/xorg.conf.d/90-keyboard-layout.conf" 파일(만약 별도의 xorg.conf 파일을 사용중이라면 해당 파일)에서 6번째 줄
Option "XkbLayout" "us"
를
Option "XkbLayout" "kr"
로 바꾼다. 101/104키 호환 키보드(Alt와 한/영, Ctrl과 한자의 구분이 없는 키보드 혹은 랩톱 키보드)를 사용하는 경우 추가적으로 7번째 줄
Option "XkbVariant" ""
를
Option "XkbVariant" "kr104"
로 바꾼다.
이후 X.Org를 구동하면 SCIM이 켜져 있는데(KDE 기준으로 System Tray에 키보드 모양) 영문과 한글 키보드만을 사용하기 위해 SCIM Setup에 들어가서 IMEngine의 Global Setup에서 Hangul만 Enable하면 된다.
5. 기본적인 사용방법
- 32 bit 라이브러리 설치 방법: 최신버전의 slackware는 64bit 전용이기때문에 steam 등 32bit library를 요구하는 패키지를 설치하려면 library를 따로 설치해줘야된다. 슬랙웨어 공식 문서의 multilib을 참고하자. 저기서 The quick 'n' dirty instructions을 보고 그대로 터미널에 입력하면 된다.
- 사용자 참여: 슬랙웨어 메일링 리스트는 announce 또는 security 이외에는 거의 메일을 보내지 않는다. 커뮤니티를 적극적으로 운영하지도 않는다. 다만 슬래커들이 모여 있는 커뮤니티가 있긴 있다. http://www.linuxquestions.org 을 방문하면 슬래커들이 모여 있다. 이 곳에서 슬랙웨어의 이런 저런 이야기를 할 수도 있고, package 에 문제가 있을 경우 bug report를 하면 Patrick Volkerding 본인이 등판해서 patch를 내주는 경우도 있다. 적극적으로 위키위키를 운영하는 우분투 (위키), 아치 리눅스 (위키)와 비교되는 부분이다.
5.1. 패키지 설치방법
슬랙웨어에서 gslapt와 slapt-get을 설치하면 시냅틱과 유사한 GUI를 볼 수 있다. gslapt의 preferences에서 추가할 저장소는 http://packages.slackonly.com/pub/packages/ ← 이곳에서 적당한 아키텍처를 찾아서 저장소를 추가해 둔다. + http://taper.alienbase.nl/mirrors/people/alien/slackbuilds/
http://taper.alienbase.nl/mirrors/people/alien/multilib/14.2/ http://packages.slackonly.com/pub/packages/14.2-x86/ http://packages.slackonly.com/pub/packages/14.2-x86_64/ http://software.jaos.org/slackpacks/14.2-x86_64/ ftp://ftp.slackware.com/pub/slackware/slackware64-14.2/ 이 정도만 추가해도 64비트 컴퓨터에서는 쓸 만 하다. (32비트는 64비트 저장소만 빼면 된다)
위에 한글입력에서 소개한 fcitx를 가지고 패키지 수동 설치방법을 알아보자. SlackBuild 압축파일인 fcitx.tar.gz의 압축을 풀고 그 폴더 안에 source파일인 fcitx-4.2.8.6_dict.tar.xz 를 다운받는다. 그리고 터미널에서 fcitx.SlackBuild 를 실행시킨다.[4] 기다리면 /tmp/어쩌고저쩌고.t?z파일이 만들어졌다고 뜨는데[5] 그 t?z파일이 슬랙웨어에서 설치 가능한 패키지 파일이다. 이제 installpkg /tmp/어쩌고저쩌고.t?z 를 입력하면 fcitx가 설치된다.이것은 수동설치가 필요할 때를 위한 예시일 뿐이며, 실제로 fcitx설치 시에는 gslapt로 찾아서 설치할 수도 있다. 위 미러를 추가 시에는 직접 패키지를 받을 필요성도 거의 없다.
5.2. 그래픽카드 드라이버 설치방법
그래픽카드 드라이버를 설치하려면 https://docs.slackware.com/howtos:hardware:proprietary_graphics_drivers를 참고하자. amd 카탈리스트와 nvidia 드라이버 설치방법이 나와있다. 보고 그대로 따라하면 설치된다. Nvidia의 옵티머스가 적용되는 그래픽카드라면 저기 홈페이지의 방법으로는 안 되고 bumblebee를 보고 설치하도록 하자. [6] 저기 범블비 홈페이지로 들어가면 clone or download라는 녹색 버튼이 있다. 누르면 주소가 나오는데 그걸 복사해서 터미널에
git clone https://github.com/jgeboski/Bumblebee-SlackBuilds.git
를 입력하면 파일을 자동으로 다운받는다. 이후 저기 적힌 설명대로 ./download.sh 부터 따라하면 된다.
5.3. OS 업데이트 방법
모든 OS가 그렇지만 가끔씩 패치가 나온다. 슬랙웨어에서 터미널로 OS를 업그레이드하려면 root 권한으로
slackpkg update
slackpkg upgrade-all
을 입력하면 된다. 최초로 slackpkg update를 실행하는 경우는 mirror를 설정하라면서 파일 경로를 하나 알려주는데 (/etc/slackpkg/mirrors) 그 파일을 텍스트에디터로 열고 적당한 주소를 하나 골라서 앞의 #을 없애주면 된다.
업데이트 알림은 슬랙웨어 메일링 리스트에 가입하면 메일로 받아볼 수 있다. (http://www.slackware.com/lists/ )
[1] 무미건조한 매우 일반적인 배포판같이 보이지만, 예를들어 한국인의 키를 통계내어 평균을 잡고 그 평균키와 같은 신장의 인간을 거리에서 찾아보면 오히려 찾기 힘든것과 마찬가지로, 리눅스 배포판들도 각자 자신만의 독특한 철학과 테크닉등을 무기로 하는 경우가 대부분이기때문에 실제 이런 표준적인 배포판은 매우(!) 찾아보기 힘들고, 그래서 특징이 된다. [2] 물론 슬랙웨어도 이를 기반해 설치/사용 편의성을 높인 배포판들이 있다. 벡터 리눅스나, 앱솔루트 리눅스나, 살릭스, 슬랙켈이 대표적이다. 하지만 역시 편의성이나 사용법에서는 데비안, 우분투, 페도라, 만자로 등등을 따라가지 못 한다.[3] fdisk보다 cfdisk가 더 쉽다.[4] 관리자 계정으로 해야된다면 터미널에서 su를 입력하고 root 비번을 입력한 다음 하도록 하자.[5] slackware 패키지의 주 확장자는 tgz, txz이다.[6] 옵티머스가 적용되는 그래픽카드를 쓴다면 절대로 nvidia-xconfig를 쓰지 말아야 한다.