이전 32비트 시스템에서 Ubuntu 8.04를 실행하는 데 사용된 이전 독점 소프트웨어를 실행하려면 컨테이너를 만들어야 합니다. 나는 필요한 라이브러리를 최신 버전에 연결하여 연속적인 OS 업그레이드에서 소프트웨어를 조정해 왔지만 이제는 더 이상 그렇게 할 수 없는 지점에 이르렀습니다(적어도 쉽지는 않습니다).
그러나 Playonlinux를 사용하면 특수 라이브러리가 포함된 컨테이너를 생성할 수 있으며 이전 Windows 프로그램은 Windows 3.11에 있다고 "믿고" 2018비트 시스템의 Linux 64인 외계 세계에 있다는 사실을 모른 채 작동합니다. .. 가능하다면 누군가 내 Linux 32비트 소프트웨어를 조정하는 방법을 알고 있다면 더 쉬울 것입니다.
"Fakeroot" 같은 단어가 떠오르는데 어디서부터 시작해야 할지 모르겠습니다.
완전한 답변이 불가능하더라도 단서를 환영합니다.
추신. 나는 데비안 9를 사용하고 있습니다
답변1
기반으로우분투 위키의 이 페이지, 한 가지 방법은 Ubuntu 8.04 chroot에서 프로그램을 실행하는 것입니다. 이 지침에서는 Ubuntu 또는 기타 Debian 파생물(또는 Debian 자체)을 가정합니다.
설치
debootstrap
및schroot
:sudo apt install debootstrap schroot
32비트 Ubuntu 8.04(Hardy Heron이라고도 함)용 구성 파일을 만들고 이름을 지정
/etc/schroot/chroot.d/hardy_i386.conf
하고 다음 콘텐츠를 포함합니다.[hardy_i386] description=Ubuntu 8.04 Hardy for i386 location=/srv/chroot/hardy_i386 personality=linux32 root-users=mephisto run-setup-scripts=true run-exec-scripts=true type=directory users=mephisto
(
mephisto
적절한 사용자 이름으로 바꾸십시오. 쉼표를 사용하여 여러 사용자를 지정할 수 있습니다).우분투 8.04를 설치합니다:
sudo mkdir -p /srv/chroot/hardy_i386 sudo debootstrap --variant=buildd --arch=i386 hardy /srv/chroot/hardy_i386 http://old-releases.ubuntu.com/ubuntu/
chroot 사용을 시작하세요:
schroot -c hardy_i386 -u root
(이렇게 하면 chroot 에 있는 것처럼 로그인하게 되는데
root
, 이는 물론 적절할 수도 있고 그렇지 않을 수도 있습니다).
기본적으로 chroot는 홈 디렉토리를 바인드 마운트하므로 위험할 수 있습니다. 필요한 경우 에서 /home
해당 행을 주석 처리하여 이 기능을 비활성화 할 수 있습니다 /etc/schroot/mount-defaults
.
답변2
가상 머신(예:키보드 가상 머신또는가상 상자이와 같은 경우 )는 또는 같은 컨테이너 시스템보다 chroot
더 나은 선택 입니다.docker
lxc
Ubuntu 8.04는 오래되었습니다(2008). Wheezy(2013-2016)보다 훨씬 오래되었으며 wheezy조차도 현재 커널과 libc6이 있는 최신 시스템에서 실행하기 어렵습니다(*) docker
. 아마도 컨테이너에 있는 것보다 컨테이너에 있는 것이 chroot
더 쉬울 것 입니다. 그러나 나는 그것을 믿지 않을 것입니다.
가상 머신에 Ubuntu 8.04를 설치하는 것은 매우 간단합니다. 설치 프로그램 ISO를 다운로드하고 VM을 설정한 다음(예: libvirt의 virt-manager
GUI 사용) ISO를 사용하여 VM을 부팅하면 됩니다.
또는 다양한 "물리-가상" 기술을 사용하여 기존 컴퓨터를 가상 머신에 복제할 수 있습니다. IMO, Ubuntu 8.04를 새로 설치한 다음 고대 애플리케이션을 실행하도록 특별히 구성하는 것이 가장 좋습니다.
(*) 예를 들어, 1년 전에는 libc6과 jessie의 다른 라이브러리를 docker에서 실행하기 위해 wheezy 컨테이너에 설치해야 했습니다. 문제는 실행 중인 호스트가 docker
libc6 2.24로 업그레이드되었으며 wheezy 컨테이너의 이전 libc6이 이를 사용할 수 없다는 것입니다. 컨테이너를 jessie로 업그레이드하는 것이 더 합리적일 것입니다. 그러나 컨테이너에서 실행 중인 애플리케이션은 jessie에서 실행하기에는 너무 오래되었습니다. 그래서 나는 끔찍한 프랑켄 헐떡거림을 했습니다.
귀하의 응용 프로그램이 Windows 3.11 응용 프로그램인 것 같습니다(또는 단지 비유일 수도 있습니다...확실하지 않음). VM을 사용하면 Ubuntu 8.04를 실행할 필요조차 없을 수도 있습니다. 이 경우이고 적절한 이전 버전의 Windows(예: 95, 98 또는 XP. KVM 자체에서 Windows for Workgroups 3.11을 실행할 수도 있음)에 대한 유효한 라이센스가 있는 경우 이를 VM에 설치한 다음 VM에 애플리케이션을 설치합니다.
유효한 라이센스가 없으면 시도해 볼 수 있습니다리액트OS, Windows의 무료 소프트웨어 복제품(주로 Windows Server 2003과의 호환성을 목적으로 하지만 이전 버전의 Windows에서 소프트웨어를 실행할 수도 있음). 그건 그렇고, ReactOS와 WINE 개발 사이에는 많은 교차가 있습니다.
그렇지 않으면 Ubuntu 8.04 + WINE이 가상 머신에서 제대로 실행됩니다.
답변3
고대 Linux 배포판을 실행하는 데 매우 뛰어나고 간단한 파일 공유 기능을 갖춘 86box와 같은 PC 에뮬레이터를 사용해 볼 수 있습니다.