웹사이트 검색

출애굽기 - 한 Linux 시스템에서 다른 Linux 시스템으로 Linux 바이너리를 안전하게 복사


Exodus는 한 시스템에서 다른 시스템으로 Linux ELF 바이너리를 쉽고 안전하게 복사할 수 있는 간단하면서도 유용한 프로그램입니다. 예를 들어, 데스크톱 컴퓨터에 htop(Linux 프로세스 모니터링 도구)이 설치되어 있지만 원격 Linux 서버에는 설치되어 있지 않은 경우 exodus는 데스크톱 컴퓨터에서 htop 바이너리를 복사/설치하는 방법을 제공합니다. 원격 서버로.

재배치된 링커를 직접 호출하는 실행 파일에 대해 정적으로 링크된 래퍼를 컴파일하고 원격 시스템의 ~/.exodus/ 디렉터리에 번들을 설치하여 모든 바이너리의 종속성을 번들로 묶습니다.

여기서 실제로 작동하는 모습을 볼 수 있습니다.

Linux 시스템에 Exodus 설치

다음과 같이 Python PIP 패키지 관리자를 사용하여 exodus를 설치할 수 있습니다. 아래 명령은 사용자별 설치를 수행합니다(로그온한 계정에 대해서만).

sudo apt install python-pip                [Install PIP On Debian/Ubuntu]
sudo yum install epel-release python-pip   [Install PIP On CentOS/RHEL]
sudo dnf install python-pip	             [Install PIP On Fedora]
pip install --user exodus-bundler          [Install Exodus in Linux] 

다음으로, ~/.bashrc 파일의 PATH 변수에 ~/.local/bin/ 디렉터리를 추가하여 다음을 실행합니다. exodus는 다른 시스템 명령처럼 실행 가능합니다.

export PATH="~/.local/bin/:${PATH}"

파일을 저장하고 닫습니다. 그런 다음 다른 터미널 창을 열어 Exodus 사용을 시작하세요.

참고: 또한 gcc와 musl libc 또는 diet libc 중 하나를 설치하는 것이 좋습니다( 바이너리를 패키징할 머신에서 번들 애플리케이션을 위해 정적으로 링크된 작은 실행 프로그램을 컴파일하는 데 사용되는 C 라이브러리.

Exodus를 사용하여 로컬 바이너리를 원격 Linux 시스템에 복사

exodus를 설치한 후에는 다음 명령을 실행하여 로컬 바이너리(htop 도구)를 원격 시스템에 복사할 수 있습니다.

exodus htop | ssh tecmint@server3

그런 다음 원격 시스템에 로그인하고 ~/.bashrcPATH/home/tecmint/.exodus/bin 디렉터리를 추가합니다. 다른 시스템 명령처럼 htop을 실행하기 위해 파일을 삭제합니다.

export PATH="~/.exodus/bin:${PATH}"

파일을 저장하고 닫은 후 다음과 같이 소스를 입력하여 변경 사항을 적용하세요.

source ~/.bashrc

이제 원격 Linux 시스템에서 htop을 실행할 수 있습니다.

htop

동일한 이름을 가진 두 개 이상의 바이너리가 있는 경우(예를 들어 시스템에 두 개 이상의 htop 버전이 설치되어 있는 경우 하나는 /usr/bin/htop이고 다른 하나는 /usr/local/bin/htop), -r 플래그와 함께 복사하여 병렬로 설치할 수 있으며, 원격 시스템의 각 바이너리에 별칭을 할당할 수 있습니다. .

다음 명령은 htop-1/usr/이라는 두 개의 htop 버전을 /usr/bin/grep과 병렬로 설치합니다. local/bin/htop은 표시된 대로 htop-2를 호출합니다.

exodus -r htop-1 -r htop-2 /usr/bin/htop /usr/local/bin/htop | ssh tecmint@server3

주의: Exodus에는 여러 가지 제한 사항이 있으며 ELF가 아닌 바이너리, 호환되지 않는 CPU 아키텍처, 호환되지 않는 Glibc 및 커널 버전, 드라이버 종속 라이브러리, 프로에서는 작동하지 않을 수 있습니다. -문법적으로 로드된 라이브러리 및 라이브러리가 아닌 종속성.

자세한 내용은 출애굽기 도움말 페이지를 참조하세요.

exodus -h           

Exodus Github 저장소: https://github.com/intoli/exodus

결론

Exodus는 한 Linux 시스템에서 다른 원격 Linux 시스템으로 바이너리를 복사하는 간단하면서도 강력한 도구입니다. 사용해 보시고 아래 의견 양식을 통해 의견을 보내주세요.