내 시스템의 다른 파티션에 Fedora와 Ubuntu가 설치되어 있습니다. 이제 "adobe reader" 또는 "kerio-control-vpnclient-8.4.2-2869-linux"와 같은 프로그램을 fedora에서 사용할 수 있도록 만들고 싶습니다. 이 프로그램은 내 Ubuntu 시스템에 설치되어 있습니다. chroot나 LXC와 같은 유사한 명령을 사용하여 Fedora에서 이러한 프로그램을 사용할 수 있게 만드는 방법을 알고 싶습니다.
답변1
chroot그것은 당신의 문제를 전혀 해결하지 못합니다. 실제로,chrootFedora가 아닌 Ubuntu에 있는 것처럼 프로그램을 실행할 수 있습니다. chroot 외부의 파일 시스템에 대한 액세스 권한을 부여하려면 복잡한 설정이 필요합니다. chroot는 격리에 더 적합합니다.
그러나 문제를 해결하는 좋은 방법은 환경 변수를 사용하는 것입니다. 어쩌면 작은 bash 스크립트가 Ubuntu 위치로 경로를 설정하고 LD_LIBRARY_PATH를 변경할 수 있습니다.
예를 들어 다음과 같습니다.
#!/bin/bash
export PATH=PATH_TO_UBUNTU_BIN:$PATH
export LD_LIBRARY_PATH=PATH_TO_UBUNTU_LIB:$LD_LIBRARY_PATH
acroread
여기서 PATH_TO_UBUNTU_BIN 및 PATH_TO_UBUNTU_LIB는 ubuntu bin 경로(예: /bin 및 /usr/local/bin 또는 acroread가 있는 위치)여야 하며 PATH_TO_UBUNTU_LIB는 Ubuntu 공유 라이브러리 디렉터리(예: /lib 또는 /lib64)에 대한 경로입니다. ).
답변2
설치하다슈루트Fedora 시스템에서. Schroot는 루트가 아닌 사용자가 미리 정의된 chroot를 사용하고 홈 디렉토리 /proc
등이 chroot에 표시되도록 배열할 수 있도록 하는 chroot 주변 래퍼입니다.
나는 schroot 가이드를 썼다64비트 Debian/Ubuntu에서 32비트 프로그램을 어떻게 실행하나요?Fedora 호스트 시스템의 경우 설정은 기본적으로 동일합니다. 주로 chroot의 배포를 조정해야 합니다. 설치하다부팅 방지 프로그램chroot에 Ubuntu 패키지를 설치합니다.
외부에서 chroot에 있는 프로그램을 호출하려면 을 호출해야 합니다 schroot
. chroot라는 chroot에 대해 이와 같은 쉘 래퍼를 사용할 수 있습니다 trusty
.
#!/bin/sh
exec schroot -c trusty -p -q -- "${0##*/}" "$@"
호출하려는 프로그램 이름을 사용하여 이 스크립트에 대한 심볼릭 링크를 만듭니다. 예를 들어, 이 스크립트가 있고 해당 명령이 신뢰할 수 있는 chroot의 프로그램을 호출하도록 /usr/local/bin/trusty
하려면 심볼릭 링크를 생성하십시오.acroread
ln -s trusty /usr/local/bin/acroread