출애굽기 - 한 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
그런 다음 원격 시스템에 로그인하고 ~/.bashrc
의 PATH에 /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 시스템으로 바이너리를 복사하는 간단하면서도 강력한 도구입니다. 사용해 보시고 아래 의견 양식을 통해 의견을 보내주세요.