Linux - offline(CentOS 7)/wine

[CentOS] Linux wine 설치(yum repository 이용)

기억력이 점점 나빠진다 2020. 10. 29. 14:10
반응형

 

리눅스 OS에서 윈도우즈 응용프로그램을 실행할 수 있도록 wine이란 것을 셋팅을 해보자

wine에 대한 상세 내용은 wine 홈페이지를 통해 알 수 있다

실행이 확인된 상용 프로그램과 게임들은 많은 것 같은데....

우리가 직접 개발한 MFC, WPF기반의 프로그램들이 돌아갈지는 의문이다

.Net Framework도 버전별로 검증이 된 것도 있지만 완벽히 돌아갈지는 보장 못한다는 내용도 있는걸 보니

설치후 테스트를 해봐야 알 듯 싶다

 

www.winehq.org/

 

WineHQ - Windows 프로그램을 리눅스, BSD, Solaris, macOS에서 실행하기

Windows 프로그램을 다른 운영체제에서 실행하는 오픈 소스 소프트웨어입니다.

www.winehq.org

리눅스는 CentOS 7버전으로 진행하였다

 

인터넷이 되는 환경이면 아래 두 명령어로 끝난다

# yum install epel-release

# yum install wine

 

하지만 필자는 인터넷이 되는 환경이 아니므로

local에 wine관련 패키지를 복사하여 yum repository를 구성하고 설치하는 방법으로 진행하였다

(wine 홈페이지에서 소스를 다운받아 복사하여 빌드하는 방식도 향후에 추가하도록 하겠다)

 

 

wine 소스를 다운받아 빌드하는 방법을 이용하면 가장 최신버전으로 이용할 수 있으나

필자는 offline 상태의 서버에 구성해야 하고 CentOS의 안정성을 위해 yum 명령어를 이용하였다

 

 

1. wine package 다운로드

먼저 offline 상태의 서버에 yum repository를 구성하기 위해 패키지를 다운받아 옮겨줘야한다

인터넷이 되는 환경의 서버에서 yum 명령어를 통해 필요한 패키지들을 다운받자

위의 wine 홈페이지에서 파일을 다운받을 수는 있지만 의존성 문제가 발생할 수 있어 yum으로 다운받았다

wine 홈페이지에는 Ubuntu, Debian, Fedora용 등의 다수가 있으나 CentOS는 없고,

Fedora용으로 설치하는 사람도 있으나 필자는 yum을 활용해 설치하였다

(linux 설정을 하답보면 다른 방식으로 삽질을 하다 결국 yum으로 설치하게 되는 것 같다)

 

 

# yum install wine --downloadonly --downloaddir=[다운로드할 경로]

해당 폴더에 가보면 118개 정도의 패키지가 다운받아진걸 확인할 수 있다

epel Repository뿐만 아니라 CentOS Repository에서도 의존성 라이브러리들을 다운받아 양이 많아졌다

 

 

2.  wine local yum repository 구성

다운받은 패키지들을 설치할 서버로 복사하여 local yum repository를 구성해 보자

일단 필자가 사용하는 서버는 CentOS 7버전이 설치되어있고,

해당 서버의 /root/repo/wine 경로에 local yum repository를 구성하였다

 

local yum repository 구성하는 상세한 방법은 아래 글을 참조하면 된다

 

2020/09/02 - [Linux - offline(CentOS 7)/Local YUM Repository] - [CentOS] local YUM Repository 만들기

 

[CentOS] local YUM Repository 만들기

특정 패키지들을 설치할때 인터넷이 되는 Online 환경에서 YUM명령어를 통해 쉽고 빠르게 설치를 한다 그러나 Offline 인터넷이 안되는 환경에서는 YUM명령어를 사용하여 패키지를 다운받은 후 설치�

boring-notes.tistory.com

일단 local yum repository를 만들 경로에 폴더를 만들고 다운받은 패키지 파일을 복사해 준다

# mkdir /root/repo/wine

scp 명령어나 SFTP로 옮겨주자

해당 폴더를 Repository로 지정해 주자

# createrepo /root/repo/wine

 

Yum Repository 설정파일을 아래와 같이 생성해 주자

# vi /etc/yum.repos.d/wine.repo

[wine-repo]
name=Wine Local Repository
baseurl=file:///root/repo/wine
gpgcheck=0
enabled=1

 

# yum clean all

# yum repolist

위 그림과 같이 Repository가 구성된 것을 확인할 수 있다

 

 

3. wine 설치

위와 같이 local yum repository가 구성된 것을 확인한 후 wine을 설치하자

 

# yum install wine

 

설치가 잘 되는 것을 확인할 수 있다

 

터미널에서 wine 명령어를 쳐보면 실행이 되는걸 확인할 수 있는데 

아래와 같이 명령어를 쳐보니 4.0.4버전이 설치된걸 알 수 있다

# wine --version

 

인터넷이 연결되어있고, CentOS 데스크탑 UI가 설치된 버전에서는 관련 패키지들을 다운받겠냐는 알림창이 나와 편하게 설치할 수 있다(그러나 우리의 환경은 항상 오프라인 상태라 따로 작업이 필요하다)

wine 명령어를 치다 보면 저런 팝업창이 뜨는데 설치를 누르면 다운받아지나 필자의 환경은 offline이라 역시나 안된다

닷넷 기반 프로그램을 돌릴 예정이라 mono 패키지는 설치를 해주어야 할 것 같다

 

위 팝업창에 적힌 홈페이지로 이동하면 mono 패키지에 관한 내용이 나오는데

소스에서 컴파일 하는 방법, 자동으로 설치하는 방법(online), 수동으로 설치하는 방법에 대해 나와 있는데

필자의 OS는 폐쇄망이기 때문에 수동으로 다운받아 설치하였다

 

아래 홈페이지에서 다운받을 수 있는데

https://dl.winehq.org/wine/wine-mono/

 

Index of /wine/wine-mono

 

dl.winehq.org

반응형

필자는 4.0.4 이므로 mono는 4.7.5로 다운받았다

 

wine-mono-4.7.5.tar.gz 를 다운 받았다

다른버전은 아래 그림을 참고하여 해당 버전을 다운받으면 된다

 

 

 

그런데....

wine 설치 이후 재부팅 해보니 x-window동작이 잘안되는 듯 하다

여러번 테스트를 해봤는데 wine설치하며 필요한 의존성 패키지들에서 문제가 일어난 듯하다

wine자체는 아닌것 같은데... epel Repository에서 받은 패키지들 문제인지 CentOS 업데이트를 안해서인지

설치된 패키지들이 불안정해 진듯 하다

그래서 소스를 다운받아 컴파일하는 방법을 사용해야 할 듯하다...

역시나 offline 상태에서는 패키지들 관리가 너무 어려운 것 같다

 

위와 같은 문제는 CentOS 7을 최신으로 업그레이드 해보니 해결되었다

필자와 같이 CentOS버전이 최신이 아니면 아래글을 참조하여 업그레이드를 해보자

2020/10/13 - [Linux - offline(CentOS 7)/Local YUM Repository] - [CentOS] 버전 업그레이드 하는 법(offline iso파일 활용)

 

[CentOS] 버전 업그레이드 하는 법(offline iso파일 활용)

기존에 설치한 CentOS 버전을 보니 최신버전이 아닌것을 확인하고 최신버전으로 업데이트를 해보기로 한다 인터넷이 연결된 상태면 자동으로 뜨거나 yum update 명령어를 이용해 쉽게 설치 가능하��

boring-notes.tistory.com

 

 

4. winetricks, mono, gecko 설치

이후 winetricks, mono, gecko설치를 진행하였으나 CentOS 7에서는 64bit에서 32bit 응용프로그램이 원활히 구동이 안되고, .net 4.0이하는 64bit를 지원해 주지 않는점 등 어려움이 발생하였다.

인터넷이 연결된 환경에서도 mono, gecko의 설치가 제대로 되지 않는 점이 발생하여

소스 컴파일을 통해 wine의 32bit, 64bit 설치를 해야하고 환경도 잡아줘야 한다

자세한 내용은 조만간 올리도록 하겠다

 

반응형