커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > Unix/Linux 처음 시작하기 도움말
검색 : 사이트 WHOIS 웹서버 종류

리눅스 배포판(배포본) (26)
OS 설치 (10, 글 4, 자료 8)
매뉴얼 / 맨페이지 (8, 자료 2)
FreeBSD, OpenBSD (*BSD) (17, 글 1, 자료 6)
GNU / GPL(General Public License) (4, 자료 3)
명령어 사용하기 (10, 글 5, 자료 12)
정규 표현식(정규식) (5, 자료 3)
FAQ / 리눅스,유닉스 일반 (4, 자료 4)
OS간 비교 / 대체 프로그램 비교 (9, 자료 3)

  리눅스에서 프로그램 설치 작성일 : 2010/02/12 12:32
 
  • 글쓴이 : 조명욱 ( http://onlyperl.egloos.com )
  • 조회수 : 7654
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      리눅스나, 윈도우, 맥이나 솔라리스 등 어떠한 운영체제 라도, 운영체제 자체가 목적이 될 수는 없습니다.
    운영체제는 어디까지나 시스템이 목적에 맞는 작업을 수행 할 수 있도록, 보조 하는 역할을 수행 하게 됩니다. 그런 의미에서 진정으로 리눅스를 잘 사용한다는 것은 리눅스에서 제공하는, 혹은 운영되는 어플리케이션을 얼마나 잘 활용하느냐에 따라 달린 것 아닌가 합니다.

    리눅스는 처음에 범용 운영체제이기 보다는 개발자들의 장난감에 가까웠습니다. 뿐만 아니라 기존의 유닉스에 호환되는 운영체제이기도 했습니다. 뿐만 아니라 사용에 있어 너무나 자유로운 운영체제이다 보니 사용하는 개개인 마다의 환경이 달라 지게 됩니다.
    그러다 보니, 지금도 악명을 떨치고 있는 tarball 형태의 소스컴파일 설치가 나타나게 됩니다. 물론 믿어 지지 않겠지만, 이것 또한 굉장한 자동화가 이루어진 설치 매커니즘 입니다.
    이 후부터, 리눅스의 역사는 커널의 발전과 함께, 사용자들의 편의성 향상에 지대한 관심을 갖게 됩니다. 물론 이 과정에서 리눅스의 설치 매커니즘 또한 눈부신 발전을 이루게 됩니다.

    리눅스에서 프로그램 설치 방법을 크게 4가지로 분류 할 수 있습니다.

     
    1. 소스 설치
    2. 바이너리 설치
    3. 패키지 매니저 를 이용한 설치
    4. 중앙 리파지토리를 이용하는 패키지 매니저를 이용한 설치.

     


    순서에 따라 좀 더 쉽게 설치 할 수 있는 방법이 개발 되었다고 보시면 됩니다. 이것은 중간에 누군가의 손으로 한번 처리 과정을 거쳤다는 것을 의미 하며, 누구나 동일하게 사용하기 때문에 점점 더 표준화된 사용 모델이라고 이해 하시면 됩니다.
    반대로, 역순으로 갈수록 더 자유 로운 커스터마이징이가능 하고, 더 많은 프로그램이 존재 하며, 더 사용하기 어렵습니다.

    요즘에 배포되는 리눅스의 경우, 워낙 편리하게 잘 만들어졌기 때문에, 4단계만 잘 활용 하면 어려움 없이 리눅스 사용이 가능 합니다.
    다만, 여러 단계에 대해 설명 하는 이유는, 그냥 이해만 하고 있으면, 4단계에서 발생 하는 예외적인 문제에 대해서 처리가 가능하기 때문 입니다.

    단계 별로, Mysql 설치를 통해, 좀더 자세히 보도록 하겠습니다.


    1. 소스를 이용한 설치

    소스 컴파일은 리눅스에서 가장 고전적인 어플리케이션 설치 방법 입니다. 가장 피곤한 방법중의 하나이기도 합니다. 하지만 누군가가 패키징을 해놓지 않았다면, 이 방법을 통해서 설치 할 수밖에 없습니다. 보통은 tarball 형태로 제공이 되며, 압축을 풀게 되면 README 파일 혹은 INSTALL 이라는 파일에 설치 방법을 기술 해 놓습니다. 이 말은 어플리케이션 마다 설치 방법이 조금씩 다를 수 있다는 것을 의미 합니다. 물론, 보통의 경우 GNU autotools를 이용해서 배포 되기 때문에 설치 방법이 비슷 합니다.

    보통의 경우,
     1. Configure
    2. Make
    3. Make test
    4. Make install
     


    과정을 거칩니다. Make test 과정은 생략 가능 합니다.
    보통의 오픈 소스 어플리케이션들은 GNU autotools를 채택하고 있는데, 다중 플랫폼에서 빌드 할수 있도록 환경 설정이나 소스 트리를 구성하기도 하고, 사용자가 원하는 옵션에 따라 소스를 빌드 할 수 있도록 자동화 해 줍니다. 이것은 처음 접하는 사용자에게는 어렵기는 마찬가지 이지만, 어느 정도 자동화 되어 있다는 것을 의미 합니다.

    소스 컴파일을 하려면 우선 시스템에 빌드 도구가 설치 되어 있어야 합니다. 빌드 도구가 설치 되어 있지 않다면? 여기서 우리는 한가지 딜레마가 생깁니다. 빌드 도구들을 소스를 받아 오더라도 그것을 설치 하려면, 또 다시 빌드 도구가 필요 하게 됩니다.
    이런 경우, 빌드 도구를 빌드 도구가 설치 되어 있는 다른 시스템에서 빌드를 해오거나, 이후에 설명할 패키지를 이용해 설치 해서 이용 할 수 있습니다. “소스 컴파일을 이용한 설치” 자체만으로는 해결 할 수 없는 문제 입니다. 최초에 리눅스를 만들었던 토발즈도 minix라는 시스템에서 리눅스와 그에 필요한 컴파일러등을 빌드 했습니다. 그리고 처음 리눅스를 공개 할때도, 처음에 리눅스를 빌드하기 위해서는 미닉스가 필요 하다고 이메일에 첨부 했었습니다.

    우선, 빌드를 해보기 위해서 빌드 그룹을 설치 하겠습니다. 이것 또한 필요한 것만 설치 하면 좋겠지만, 우선은 빌드 해보는 것 자체가 중요하기 때문에 한번에 빌드 그룹을 설치 하겠습니다.

     yum groupinstall "Development Libraries" "Development Tools" 


    물론 쓸데 없는 이런저런 것들도 많이 설치 됩니다. 어디까지나 예제 일 뿐입니다. 실제 서비스 운영에는 필요한것만 설치 하시기 바랍니다.


    그러면 지금부터 mysql server 를 소스로 설치 해보겠습니다.

    우선 mysql.com 에 접속해서 mysql 소스를 다운로드 받습니다.



    현재 다운로드를 받게 되면 mysql-5.1.43.tar.gz를 기본으로 릴리즈 하고 있습니다.

    tar.gz 파일은 tar + gzip을 이용해서 압축이 되어 있다는 의미 입니다. 설치를 하려면 우선 압축을 해제 해야 합니다

     tar zxvf mysql-5.1.43.tar.gz 


    압축이 풀리면 mysql-5.1.43 디렉토리가 생성이 되는데, 디렉토리 안으로 이동 합니다.

     cd mysql-5.1.43 


    디렉토리 안으로 이동을 하면 INSTALL-SOURCE 이름의 파일이 있는데, 설치 하는 방법에 대해서 자세히 설명해 놓고 있습니다. 너무 자세히 말입니다. 다 읽지 못 할정도로 말입니다.

    일단 설치를 진행 하도록 하겠습니다.

    위에서 설명한 것처럼 configure, make, make install 단계로 설치는 진행 됩니다.

    우선 configure 를 진행 합니다. Configure 는 기본 적으로

     ./configure  


    만을 실행 하면 사용이 가능합니다. 필요에 따라 옵션을 넣기도 하구요.

     ./configure --help  


    를 입력 하면 설치에 필요한 환경 설정을 옵션으로 줄 수 있습니다.

     ./configure --prefix=/usr/local/mysql --sysconfdir=/etc --enable-assembler --with-mysqld-ldflags=-all-static --without-debug --enable-thread-safe-client 


    이것은 제가 예전에 mysql을 빌드 할 때 주로 사용 하던 옵션 입니다.
    보통 설치시에 필요한 도구들이 설치가 안되면 에러가 나고, configure가 중단 됩니다. 하지만 위에서 필요한 빌드 도구들을 모두 설치 해버렸기 때문에 이상 없이 설치 될 것입니다.

    다음은 make 단계 입니다. Configure가 이상 없이 진행 되었다면, 아무런 에러 없이 단계가 종료 될 것 입니다.
     make  


    빌드가 완료 되면, 컴파일된 소스들을 사용할 위치에 실제로 배포 해야 합니다.
    배포는 make install 단계를 이용해서 진행 됩니다.

     make install 


    이 단계가 완료 되면, 일단 프로그램 자체는 설치가 완료 된 것입니다.

    그런데, 프로그램 설치가 완료 되었다고 해서 모든 설치가 완료 된 것이 아닙니다.
    실제 사용을 위해서는 프로그램 설치 외에도 추가 작업이 필요 합니다.
    어떻게 보면 소스 설치 시 부담이 되는 요소 중에 하나 입니다

    Mysql의 경우 서버 데몬입니다. 그리고 다른 프로그램에게 라이브러리 형태의 서비스를 제공 하며, 최초 설치시 기본 디비를 생성 해줘야 합니다.

    Mysql은 서버 데몬 입니다.
    보통의 데몬은 구동시에 보안을 위해서 root 사용자가 아니라 일반 사용자나 전용 사용자로 구동을 하게 됩니다. 그러므로 mysql의 경우에는 mysql 이라는 기본유저를 통해서 구동 하게 됩니다.
    우선, mysql 사용자를 시스템에 추가 합니다.

     useradd -M mysql 


    설치한 mysql의 디렉토리를 mysql이 접근 읽고 실행 할 수 있도록 변경 해줍니다

     chown -R root.mysql /usr/local/mysql 


    데몬으로 구동할 때 참조할 설정 파일을 생성 합니다.
    기본적으로 소스에 설정 파일이 들어 있기 때문에 대부분의 경우 단순히 지정된 위치에 카피 하하는 것 으로도 사용이 가능 합니다 여기서 지정 된 위치란 configure 시에 --sysconfdir=/etc 을 지정 해줬었는데 이 위치를 말 합니다.

     cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf 


    서비스 데몬이므로 서비스 등록을 하고, 시스템 부팅시 자동으로 시작 할 수 있도록 해줍니다.
    기본적으로 mysql에서 제공 하는 시작 스크립트를 사용 할 수 있습니다.

     cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld 


    부팅시 자동으로 시작 할 수 있도록 런레벨에 등록 합니다.

     cd /etc/rc3.d
    ln -s ../init.d/mysqld S98mysqld
     

    그리고 리눅스에서 서비스 관리툴로 on/off 가능 하도록 ntsysv에 등록 합니다.

     cd /etc/init.d
    chkconfig --add mysqld
     


    mysql은 다른 어플리케이션에 라이브러리를 제공 합니다.
    리눅스에는 동적으로 라이브러리를 제공 해주는 ldconfig가 존재 합니다. Mysql의 라이브러리도 여기에 등록 해야 합니다. /etc/ld.so.conf 파일을 열어서, 설치한 mysql의 라이브러리 경로를 제공 넣습니다.

     echo “/usr/local/mysq/lib/mysql” >> /etc/ld.so.conf  


    이렇게 하면 설정 파일에 등록이 됩니다. ldconfig 명령을 통해서 설정한 파일을 다시 읽어 들려서 라이브러리 동적 링크를 활성화 시킵니다.

     ldconfig -v 


    마지막으로 mysql의 기본 데이터베이스를 생성 합니다.

     cd /usr/local/mysql/bin
    ./mysql_install_db
     


    기본 디비가 생성이 완료 되고 나면, mysql server를 구동하는 mysql user가 디비 파일을 핸들링 할 수 있도록 쓰기 권한을 부여 합니다.

     chown -R mysql.mysql /usr/local/mysql/var  


    보통의 경우 디렉토리와 그 하위 경로에 대해서 소유 권한을 바꿔 줍니다.

    이제 mysql 서비스를 구동 할 수 있습니다.

     /etc/init.d/mysqld start  


    최적화
    보통 여기 까지 소스를 컴파일 하고 나면 이제는 최적화를 생각 하는 단계 이기도 합니다.
    설치 단계에서의 최적화는 필요한 기능만을 설정한다거나, 컴파일러 옵션을 지정 해 주거나 등등의 일을 합니다.

    Mysql 설치 매뉴얼에 보면,

     CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \
    CXXFLAGS="-O3 -mpentiumpro -mstack-align-double \
    -felide-constructors -fno-exceptions -fno-rtti
     


    컴파일시 이런 옵션들을 줄 수 있다고 합니다. 그래서 configure 할때 앞에 붙여 줄 수 있습니다. 이런 옵션들을 사용 해서 빌드를 하게 되면, 생성 되는 어셈블리 코드들이 붙이지 않았을때와 다르게 생성이 됩니다. 시간이 나신 다면, 다르게 해서 퍼포먼스 테스트를 해보시기 바랍니다.
    그리고 이것은 mysql 에서 언급된 옵션들을 바탕으로 제가 사용한던 옵션을 조합해서 만든 것 입니다.

     CFLAGS="-O3 -march=pentiumpro -pipe -fPIC -fomit-frame-pointer -ffixed-ebp -felide-constructors" CHOSCHOST="i686-pc-linux-gnu" CXX=gcc CXXFLAGS="${CFLAGS}" MAKEOPTS="-j5" ./configure --prefix=/usr/local/mysql --sysconfdir=/etc --enable-assembler --with-mysqld-ldflags=-all-static --without-debug --with-charset=euckr --enable-thread-safe-client  


    사실, mysql AB 사에서는 사용자가 소스를 컴파일해서 사용하는 것을 권장 하지 않습니다.
    그들이 최적화 해서 배포하는 바이너리를 사용하기를 권장 하고 있습니다.

    지금까지 보여드린 방법은 일반적인 서비스 데몬을 설치 하는 방법을 mysql server를 통해서 예시를 들어 봤습니다. 사실 설치 자체 보다 그 후에 해줘야 하는 보조 작업들이 더 많은 것을 알수 있습니다

    또 한가지 소스설치의 문제 점은 삭제가 쉽지 않다는 것입니다.
    일부 패키지의 경우 make uninstall 을 지원 하기도 하지만, 이것 또한 소스를 가지고 있어야 한다는 약점이 존재 합니다. 그렇기 때문에 리눅스에서 관리하는 기본 트리에 맞춰 넣기 힘듭니다.
    그래서 mysql을 설치 할 때 설치 되는 파일들을 /usr/local/mysql 디렉토리에 몰아 두었습니다.
    사실 라이브러리 파일들을 /usr/lib 혹은 /lib 에, 실행 파일은 /bin 혹은 /usr/bin 등등에 기본트리에 맞춰 넣으면 더욱 리눅스 답게 어플리케이션 운영이 될 것 입니다. 하지만 업그레이드 삭제를 생각 하면 쉽지 않습니다. 그래서 라이브러리 파일은 동적링크를 해줘야 하고, 실행 파일은 path를 걸어줘야 하고 man 파일은…. 등등 여러 작업이 추가적으로 발생 하게 됩니다.
    소스설치의 가장 피곤한점 중에 하나는, 보안 버그 같은 것이 나왔을 때, 업데이트의 개념이 아니라 다시 설치를 해야 한다는 것입니다.

    결국, 소스 설치는 설치, 운영, 메인터넌스의 모두의 약점을 가지게 됩니다.


    2. 바이너리를 이용한 설치

    사실 소스 설치를 한번 해보고 나면, 바이너리 설치가 너무 편하다고 느끼게 됩니다. 하지만 바이너리 설치도 한계를 띄게 됩니다. 첫 째는 라이브러리 버전을 맞춰 줘야 하는것입니다. 둘째는, 단지 빌드 과정이 빠질 뿐이지 소스 설치의 나머지 과정은 동일하게 진행 해야 한다는 것입니다. 물론, 나에게 빌드 툴은 필요 없겠지요.

    리눅스에서의 바이너리들은 필요한 라이브러리들을 모두 포함 하고 있지 않습니다. 동적으로 링킹을 하고 있습니다. libtools를 이용해서 동적라이브러리에 대한 application binary interface를 제공합니다. 위에서 mysqld을 설치 할 때 ldconfig 명령이 이 도구 입니다. 아무튼, 동작하기 위해서는 빌드 할 때 참조한 공유 라이브러리가 버전에 맞게 모두 있어야 합니다.

    우리가 소스 설치 한 mysql 만 하더라도 동작 하기 위해서는 몇가지 라이브러리가 필요 합니다. 우리는 ldd 명령어를 이용해서 바이너리가 참조 하는 라이브러리를 확인 할 수 있습니다.\

     [root@Cetest1 bin]# ldd mysql
    linux-gate.so.1 => (0x00613000)
    libncursesw.so.5 => /usr/lib/libncursesw.so.5 (0x0064a000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x008ec000)
    libmysqlclient.so.16 => /usr/local/mysql/lib/mysql/libmysqlclient.so.16 (0x00849000)
    libcrypt.so.1 => /lib/libcrypt.so.1 (0x00110000)
    libnsl.so.1 => /lib/libnsl.so.1 (0x0058e000)
    libz.so.1 => /usr/lib/libz.so.1 (0x00635000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00142000)
    libm.so.6 => /lib/libm.so.6 (0x00f86000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x006db000)
    libc.so.6 => /lib/libc.so.6 (0x00c31000)
    libdl.so.2 => /lib/libdl.so.2 (0x0022b000)
    /lib/ld-linux.so.2 (0x002d2000)
     



    결론 적으로 설치 자체는 간단합니다.
    Mysql.com 으로 접속을 해서 바이너리로 제공 되는 mysql 패키지를 다운 로드 받아 오면 됩니다.



    패키지를 리눅스 제너릭으로 선택 하면 mysql에서 linux를 위해서 빌드 한 바이너리를 받을 수 있습니다.

    여기서 우리는 OS 종류와 설치된 glibc에 맞게 다운로드를 받으면 됩니다. 32bit 기준으로 센트OS 4,5 가 설치 된경우 glibc 2.3 , 32bit 버전으로 받으면 됩니다.



    물론 여기서도, tar 버전을 받으면 됩니다.
    설치 또한 간단합니다.

    적절한 위치로 카피를 한다음, 압축만 풀어 주면됩니다.

     cp mysql-5.1.43 /usr/local/
    tar zxvf mysql-5.1.43-linux-i686-glib2.3.tar.gz
     


    나머지는 소스 설치와 동일하게 권한, 서비스 등록, 유저 생성 등의 작업을 해주면 됩니다.
    이것 또한 사용할 시스템에 빌드 도구만 필요 없고, 직접 빌드 할 필요가 없다 뿐이지, 소스 설치에서 발생 하는 모든 피고함을 그대로 가지고 있습니다.


    3. 패키지 매니저를 이용한 설치

    소스 설치나 바이너리 설치의 불편 한 점 때문에 레드헷 계열이나, 데비안 계열의 리눅스 에서는 일찍이 패키지 매니저를 이용해서 어플리케이션들을 관리 했습니다.
    레드햇에서는 rpm, 데비안에서는 dpkg를 이용해서 어플리케이션을 설치 하거나, 삭제 할 수 있습니다. rpm이나 dpkg의 패키징 파일들은 rpm, deb 확장자를 가집니다. 패키지 파일은 압축 파일로서 배포되는 파일들 외에 설치 전 실행 스크립트, 설치 후 실행 스크립트 등을 가짐으로서 사용자가 어플리케이션을 사용하기 위해 해야 하는 일들을 자동으로 해줍니다.
    뿐만 아니라 자체 파일 데이터베이스를 유지 함으로서, 설치 파일을 삭제 할때도 패키지 단위로 삭제를 지원하며, 보안 침해 되었을 시 위변조를 확인 할 수 있도록 무결성 검사 까지 지원을 해줍니다.


    그런데 우리는 여기서 client, debuginfo, devel, shared 등을 제공 한는 것을 확인 할 수 있습니다.


    소스 설치를 할 경우에는 빌드를 위해서 소스를 전체로 내려 받아서 빌드를 하지만, 패키지의 경우 내게 필요한 기능만을 받아서 설치 하면됩니다. Mysql을 실제로 구동하지 않고 원격지에 접속하여 사용하는 어플리케이션이라면, shared 와 client 패키지 정도만 설치되면 됩니다. 굳이 server까지 함께 설치 할 필요는 없습니다.

    설치는 레드헷의 경우 rpm 명령어로 간단하게 설치 할 수 있습니다.

     [root@Cetest1 coffeejava]# rpm -ivh MySQL-server-5.1.43-1.glibc23.i386.rpm
    Preparing... ########################################### [100%]
    1:MySQL-server ########################################### [100%]

    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    To do so, start the server, then issue the following commands:
    /usr/bin/mysqladmin -u root password 'new-password'
    /usr/bin/mysqladmin -u root -h Cetest1 password 'new-password'
    Alternatively you can run:
    /usr/bin/mysql_secure_installation
    which will also give you the option of removing the test
    databases and anonymous user created by default. This is
    strongly recommended for production servers.
    See the manual for more instructions.
    Please report any problems with the /usr/bin/mysqlbug script!
    The latest information about MySQL is available at http://www.mysql.com/
    Support MySQL by buying support/licenses from http://shop.mysql.com/
    Starting MySQL.[ OK ]
    [root@Cetest1 coffeejava]#
     


    설치 자체는 매우 간단 합니다만, 위에서 언급 되었던 공유라이브러리가 서버에 설치 되어 있지 않으면, 의존성 에러를 표시 하면서 패키지의 설치가 거부 되어 버립니다.
    보통 최소 설치된 서버에서 rpm 패키지 하나를 설치 하면, 3~4씩 의존성 에러를 내고, 의존성 해결 하기위해 설치 하는 패키지 마저도 의존성 에러를 내는 경우가 발생 합니다. 뿐만 아니라 서로 의존성을 가진 3~4의 패키지는 한꺼번에 설치 해줘야만 하는 경우도 있습니다.
    이것이 이전에 사용 되던 rpm 을 이용한 패키지 관리의 가장 어려운 점이었습니다.
    여기서는 단지, rpm 으로 설치 되는 것을 보여 드리기 위한 것이므로, mysql 패키지 설치는 아무런 에러가 발생 하지 않을 것입니다.

    이에 반해 dpkg를 이용하는 데비안의 경우, 중앙집중화된 패키지 제공 시스템이 존재 했습니다. 전통적으로 dselect 를 이용 해서 설치할 패키지와 의존성에 필요한 패키지를 이용해서 설치를 해줍니다. 물론 데비안에서는 사용자가 직접 컴파일 설치 또한 비권장이었습니다. 당신이 컴파일한 것보다, 그 프로그램을 개발한 개발자가 직접 빌드 한 것이 더 좋다는 것 이었습니다.

    몰론, 데비안 계열에서도 상용 리눅스로 판매 되는 수세의 경우에는 Yast 라는 시스템이 존재 했습니담, 유료 인만큼 많은 사용자가 혜택을 입기는 힘들었습니다.

    결국, dselect란 존재는 리파지토리를 이용하는 패키지 매니저의 시발점이 됩니다.

    사실, rpm 에도 의존성을 해결 할 수 있는 팁이나, 무결성 체크, 의존성 무시 등등의 옵션들이 있습니다만, 지금은 별로 쓰이지 않으므로 생략 합니다.


    4. 리파지토리를 이용하는 패키지 관리자

    최근에 사용하는 fedora, centos, ubuntu 등을 사용하면, 위에서 언급된 프로그램 설치 방법들을 거의 사용할 일이 없습니다. 사실 윗 단계들은 이단계를 보다 쉽게 이해 할 수 있고, 다만 여기서 설치 할 수 없는 예외적인 패키지를 설치 하기 위함 입니다.
    리눅스가 서버외적으로 일반 사용자에게 가장 접근하기 힘들었던 점 중에 하나였던, 프로그램의 설치 및 제거가 훨씬 진보 하게 됩니다. 그것은 패키지간에 발생 했던 의존성을 한번에 해결해주었습니다. 또한 사용자가 일일이 패키지를 찾아 다니지 않고, 명령어 한줄로 간단하게 시스템에 어플리케이션을 설치 할 수 있게 됩니다. 어떻게 보면 윈도우 보다 더욱 편리한 부분중에 하나 입니다. 아이폰에서 app store에서 어플리케이션 내려 받듯 내려 받기만 하면됩니다. 차이점은 대부분 무료라는 것 입니다.

    레드헷 에서는 yum , 우분투에서는 apt-get 명령어가 많이 쓰이게 됩니다. 우분투 그래픽에서는 시냅틱이라는 걸출한 그래픽 프로그램 또한 있습니다.
     yum list 

    라는 명령어 한 줄이면, 설치 할 수 있는 패키지 리스트를 확인 할 수 있습니다.

    필요한 패키지를 찾는 다면,
     yum search 패키지 관련 키워드  

    로 검색 또한 가능 합니다. 만약, 필요한 어플리케이션은 있는데, 이름을 모른다면 관련 키워드를 넣어서 검색 하면, 낚여 올라 옵니다. 읽어 보고 적절히 선택해서 설치 하면 됩니다.

    패키지의 정보 확인은
     yum info 패키지 명 

    으로 확인이 가능합니다.

    패키지의 설치 및 삭제는
     yum install 패키지명
    yum remove 패키지명
     

    으로 실행 할 수 있습니다.

    뿐만 아니라, 몇몇의 패키지 그룹을 제공 하게 되며, 개발 환경, 그래픽 유저 인터페이스 등 많은 패키지가 함께 설치되어야 오류 없이 동작하는 경우 패키지 그룹을 제공 합니다.

    그룹단위 또한 위와 간단하며 다만 옵션에 group이라는 키워드가 붙습니다.
     Yum groupinstall “Devel Tools”  

    위에서 소스 컴파일 하기 위해서 이미 해보았습니다.

    이 단계 까지 오게 되면, 더 이상 위에서 했던 고민들은 더 이상 문제가 아닙니다.
    이제 문제의 핵심은, 얼마나 유용한 패키지를 알고 있으며, 그 패키지가 제공하는 리파지토리를 확보 하는것입니다.
    리파지토리의 설정은
     /etc/yum.repos.d  

    에서 리파지토리 별로 파일로 생성 되어 있습니다.

    우분투 리눅스의 경우 기본적으로 대부분의 패키지들이 리파지토리에 포함되어 있습니다만, Centos나 Fedora 의 경우 배포본 이념에 따른 정책으로 인해, 몇몇의 패키지들이 포함되지 않고 배제 되어 있으며, 써드파티에서 제공하는 리파지토리를 통해서 그런 패키지들을 설치가 가능 합니다.

    서버의 사용을 위해서 CentOS를 설치 했다면, 우선 Fedoraproject 에서 사용하는 epel을 설치 합니다. Centos는 red hat enterprise linux를 기반으로 제작되었는데, rhel은 extention 패키지는 epel을 통해서 배포 합니다.

     su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm'  

    이외에도 rpm 기타 리파지토리를 용할 수 있습니다.

     su -c 'rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
    su -c 'rpm -Uvh http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
     

    물론 페도라를 설치 했다면,
     su -c 'rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm 

    이 정도만 설치 해주면 어려움 없이 사용 가능합니다.

    우분투를 사용 한다면, 왠만한 패키지를 기본 리파지토리에서 제공 하고 있기 때문에, 설정 파일에서 봉인 해제만 적절하게 해줘도 왠만큼 사용이 가능합니다.

    별로 필요 없어 보이지만, 여기서 mysql-server를 설치 하자면

     yum install mysql-server 
    이렇게만 해주면 완료 됩니다.
    지금까지 단계별로 리눅스에서 어플리케이션 설치에 대한 정리 입니다.
    개인 적으로 서비스나 데스크탑 운영론 적인 측면에서, 소스 설치는 운영에 있어 손이 너무 많이 갑니니다. 특히, 초심자의 경우에는 매뉴얼이나 책에 있는 옵션을 그대로 답습해서 상황에 맞지 않게 빌드를 해서 사용 하는 경우도 많습니다.

    개인 적으로는 누군가(개인 단체이든, 레드헷이든~ ) 꾸준히 업데이트를 해주고, 리눅스 디렉토리 구조에 맞게 관리 하는것이 더 좋다고 생각 합니다.

      커피닉스 카페 최근 글
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Mobile 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Web Front 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Server 개발 팀장을 모십니다.
    [12/21] 브라우저별 SHA1 퇴출 시점
    [09/15] [구인] 시스템엔지니어 (경력)
    [08/05] Re: 칼리리눅스 텔넷관련
    [08/04] 칼리리눅스 텔넷관련
    [06/29] 또 다른 무료 SSL 인증서, Let's Encrypt
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~