ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 쉘 스크립트, yum 으로 설치한 패키지는 어느 디렉토리에 있을까?
    Development 2020. 5. 29. 13:56

    혼자 사용하는 서버는 환경 설정을 자유롭게 할 수 있습니다. 자주 사용하는 경로의 지정이나 무언가를 설치했을 때 경로까지 익숙함을 바탕으로 찾아내는데 어려움이 없을 겁니다. 하지만, 서버의 운영체제 버전이 조금 다르다던가 계정 정책의 차이 등으로 패키지가 어디에 설치되었는지 헤메는 경우가 종종 생깁니다.

    서버 환경으로 CentOS 를 자주 사용하다보니 패키지 설치는 거의 yum 을 사용합니다. 간혹 커스텀한 구성이 필요하여 직접 빌드하는 경우를 제외하면 관리가 편하기 때문에 yum 을 쓰는 편이죠. 오늘 아침, 자주 안들어가던 서버에서 mtr 패키지가 필요해서 yum 으로 설치했으나 실행이 되지 않는 문제가 있어서 패키지 설치 디렉토리를 찾느라 잠시 헤프닝이 있었습니다. 

    // yum 은 패키지는 잘 설치해 주지만, 설치된 위치를 알려주진 않습니다
    $ sudo yum install mtr
    Loaded plugins: fastestmirror, security
    Setting up Install Process
    Loading mirror speeds from cached hostfile
     * centos-sclo-rh: mirrors.aliyun.com
     * epel: xxxx.xxxx.xxx
    Resolving Dependencies
    --> Running transaction check
    ---> Package mtr.x86_64 2:0.75-5.el6 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ======================================================================================================================
     Package                 Arch                       Version                            Repository                Size
    ======================================================================================================================
    Installing:
     mtr                     x86_64                     2:0.75-5.el6                       base                      54 k
    
    Transaction Summary
    ======================================================================================================================
    Install       1 Package(s)
    
    Total download size: 54 k
    Installed size: 96 k
    Is this ok [y/N]: y
    Downloading Packages:
    mtr-0.75-5.el6.x86_64.rpm                                                                      |  54 kB     00:00
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing : 2:mtr-0.75-5.el6.x86_64                                                                            1/1
      Verifying  : 2:mtr-0.75-5.el6.x86_64                                                                            1/1
    
    Installed:
      mtr.x86_64 2:0.75-5.el6

    설치는 잘 되었으나 Shell 환경에 지정된 Path 에 잡혀있지 않은지 실행이 되지 않았습니다. 패키지가 설치된 경로를 찾아야 할 때는 rpm 을 사용하면 좋습니다. rpm 과 grep 으로 패키지가 설치되어 있는지 찾아보거나 rpm 에 옵션을 지정하여 패키지 설치 경로를 확인할 수 있습니다. 

    // 설치된 패키지의 이름을 확인
    $ rpm -qa | grep mtr
    mtr-0.75-5.el6.x86_64
    
    // 설치된 패키지의 경로를 확인
    $ rpm -ql mtr
    /usr/sbin/mtr

    일반적인 설치 경로인데 왜 실행이 안되었을까요? 그건 리눅스의 환경 변수중 명령어를 실행할 수 있는 경로의 집합을 나타내는 $PATH 에 경로가 빠져 있기 때문입니다. 한 번 확인해 보고 누락된 경우 추가를 해보도록 하겠습니다. 매번 전체 경로를 넣고 실행하기는 좀 번거롭겠죠? 실제로는 profile 설정 등에서 추가해 주어야 다음번 로그인시에도 경로가 추가된다는 점 잊지 마시구요.

    // 꼴랑 두개 들어가 있네요
    $ echo $PATH
    /bin:/usr/bin
    
    // 기존 $PATH 값에 콜론으로 연결하여 경로를 지정합니다
    // 잘 들어갔는지 절대 알려주지 않으니 echo 로 다시 확인을...
    $ PATH=$PATH:/usr/sbin
    $ echo $PATH
    /bin:/usr/bin:/usr/sbin

     

    댓글 0

NoPD