rez의 이해 및 설치

sonnie·2024년 5월 30일
0

rez

목록 보기
1/2
post-thumbnail

Rez란 무엇인가요?

Rez는 중앙 저장소에 프로그램을 쉽게 설치하고 관리할 수 있도록 도와주는 도구입니다.

쉬운 예를 들어보면, 여러개의 컴퓨터 게임을 한다고 가정했을 때, 게임 프로그램을 여러개 설치해야 합니다. Rez는 이러한 프로그램들을 한 저장소에 설치하고, 필요한 만큼만 가져와서 사용하게 해줍니다. 이렇게 하면 컴퓨터가 빨라지고, 필요한 프로그램을 찾고 설치하는 시간이 줄어듭니다.

즉, Rez는 중앙 저장소라는 큰 저장 공간에서 프로그램을 가져와서 필요한 곳에 사용합니다. 이를 통해 개발자들이 더 쉽게 프로그램을 만들고 관리할 수 있습니다.

공식 홈페이지에서 자세한 내용을 확인 할 수 있습니다.

해당 글은 linux 기준으로 작성되었습니다.


Rez의 기본 사항

  • 패키지 정의: rez를 설치한 후 프로그램을 설치 할 때 package.py 파일을 사용해 프로그램을 설치합니다. 이 파일의 내용은 1. 패키지가 무엇을 필요로하는지(종속성), 2. 패키지가 할 일(명령) 그리고 3. 패키지 정보(메타데이터)가 적혀있습니다.

  • 동적 환경 구성: Rez는 필요한 패키지들을 찾아서 연결하고, 이 패키지들이 함께 작동할 수 있도록 환경을 만들어줍니다.


rez 환경을 구축하는 기본적인 흐름(과정)

  1. rez 설치
  2. 패키지 다운로드
  3. 패키지 빌드
  4. 패키지 테스트
  5. package.py 파일을 작성 후 프로그램 빌드
  6. 로컬 PC에 5번과 동일한 프로그램 설치

1. Rez 설치하기

  • rez는 python 3.7이상을 지원합니다.

  • 두가지 방법으로 설치 할 수 있습니다, git clone을 사용하거나, 최신 릴리스에서tar.gz 파일을 다운로드하는 것입니다. git clone보다 최신 릴리스를 다운로드하는 것을 추천합니다.

  1. Git Clone:

    git clone https://github.com/AcademySoftwareFoundation/rez
  2. Git Releases: 다운로드 후 압축을 해제합니다.
    최신 릴리즈 다운로드 클릭

  3. 설치 파일 실행: 다운로드한 파일로 들어가 터미널을 열고 설치합니다.

    ]$ python ./install.py

    만약, 중앙(공용)서버에 설치하는 경우 해당 서버에 rez를 다운로드 한후 경로를 지정해야합니다.
    설치가 완료되면 다음과 같은 메시지가 나타납니다:

    SUCCESS! To activate Rez, add the following path to 
    $PATH:/opt/rez/bin/rez 
    You may also want to source the completion script (for bash):
    source /opt/rez/completion/complete.sh

    이 메시지는 .bashrc 파일에 Rez 경로를 등록하라는 메시지입니다. 만약, 터미널에서 rez-env를 실행시켰으나 실행되지 않는다면, 또는 중앙 서버에 설치한 경우, PATH를 중앙 서버 위치를 설정해야 합니다. 아래 이미지는 여러 패키지가 설치된 최종 .bashrc의 내용입니다.
    export PATH부분만 참고하세요

source /opt/rez/completion/complete.sh의 경로의 complete.sh 파일로 진입하면, 관련 명령어 확인이 가능합니다.

# complete.sh

_rez_complete_fn()
{
    COMPREPLY=($(COMP_LINE=${COMP_LINE} COMP_POINT=${COMP_POINT} _rez-complete))
}

complete -F _rez_complete_fn rez
complete -F _rez_complete_fn rezolve
complete -F _rez_complete_fn rez-bind
complete -F _rez_complete_fn rez-build
complete -F _rez_complete_fn rez-config
complete -F _rez_complete_fn rez-context
complete -F _rez_complete_fn rez-plugins
complete -F _rez_complete_fn rez-env
complete -F _rez_complete_fn rez-help
complete -F _rez_complete_fn rez-interpret
complete -F _rez_complete_fn rez-release
complete -F _rez_complete_fn rez-search
complete -F _rez_complete_fn rez-view
complete -F _rez_complete_fn rez-suite
complete -F _rez_complete_fn rez-selftest

2. Rez 시작하기

rez 설치 후 PATH까지 지정 했다면, 필수 패키지를 설치해야합니다.
rez-bind는 시스템에 이미 설치된 소프트웨어를 나타나게하며, rez 패키지를 생성합니다. 바인딩은 --quickstart로 합니다.

  1. 필수 패키지 설치: rez-bind --quickstart 명령어를 입력합니다.
    rez-bind --quickstart
  2. 새로운 가상환경 실행: python가상환경을 실행을 test해 봅니다.
    rez-env python
    --which는 rez환경에 연결되어있는 python경로를 찾는 명령어 입니다.
    ]$ rez-env python -- which python
    /home/ajohns/packages/python-2.7.8/platform-linux/arch-x86_64/os-Ubuntu-12.04/bin/python

해당 글은 packgaes.py를 새로 작성한 후 적용 방법입니다.
packgaes.py 의 작성방법은 다음 시리즈에서 알려드리도록 하겠습니다.

패키지 빌드하기

rez-build는 rez환경에 패키지를 설치하는 명령어 입니다.
package.py가 만들어져있는 위치에서 터미널을 열고 명령어를 실행합니다.

간략한_빌드_순서 : 패키지를 설치할 폴더를 만든 후 package.py의 이름의 파일을 만들어 필요한 프로그램 정보를 입력합니다.

하단의 내용은 package.py를 만들었다 가정 후 해당 폴더의 터미널에서 실행하는 과정입니다.

  1. 패키지 빌드 및 설치:

    rez-build --install
    or
    rez-build -i -p /home/userpath

    경로 -p
    설치 -i
    설치는 --install 혹은 -i(단축어) 로 사용합니다.

    rez-build 를 하게되면 일반적으로 /home/packages/에 설치됩니다. 설치 경로를 지정하고 싶을 때는 -p /경로/를 입력하여 지정해줍니다.

패키지 테스트

예) rez 설치 후 경로 : cd example_packages/hello_world hello_world안의 packges.py를 빌드한다고 했을때, 해당 폴더에서 터미널을 열어 명령어를 입력합니다.

  1. 패키지 환경 실행 (설치) :

    rez-env hello_world
  2. 패키지 테스트 :
    rez-env를 사용하여 패키지가 구성된 환경을 불러 올 수 있습니다.

    ```bash
    ]$ rez-env hello_world
    
    You are now in a rez-configured environment.
    resolved by ajohns@workstation.local, on Sun Jul 31 14:43:54 2016, using Rez v2.0.rc1.44
    
    requested packages:
    hello_world
    ~platform==osx    (implicit)
    ~arch==x86_64     (implicit)
    ~os==osx-10.11.5  (implicit)
    
    resolved packages:
    arch-x86_64        /home/ajohns/packages/arch/x86_64                                            (local)
    hello_world-1.0.0  /home/ajohns/packages/hello_world/1.0.0                                      (local)
    os-osx-10.11.5     /home/ajohns/packages/os/osx-10.11.5                                         (local)
    platform-osx       /home/ajohns/packages/platform/osx                                           (local)
    python-2.7.11  /home/ajohns/packages/python/2.7.11/platform-osx/arch-x86_64/os-osx-10.11.5  (local)
    
    > ]$ █
    ```

    rez-env hello_world를 터미널에 입력하면 hello_world구성 환경에 진입해 있는 것 입니다.
    프롬프트 앞에 붙은 캐럿( )은 rez로 구성된 하위 쉘 내에 있음을 알려주는 시각적 신호입니다. Rez는 현재 환경을 업데이트하지 않고 대신 하위 쉘을 구성하고 그 안에 사용자를 배치합니다.

    ```
    > ]$ hello
    Hello world!
    ```

    패키지를 사용하게 됩니다.

  • 쉘 안에서 패키지와 목록을 확인하고 싶은 경우 rez-context명령어를 실행하면 됩니다.

  • 환경실행 종료는 exit or Control+D입니다.

profile
VFX TD 꿈나무

0개의 댓글