Playonlinux는 여기 블로그에서 자주 소개한 프로그램입니다.

다만 요즘은 Lutris나 다른 프로그램으로 많이 대체하고 있습니다.

 

문제는 저는 이미 Playonlinux가 많이 편하다는겁니다... 그리고 이미 사용중인 프로그램도 꽤 많고요. lutris로 실행이 가능하긴하지만 lutris를 또 설치하기도 귀찮기도 합니다.

 

아무튼.. playonlinux의 호환성 문제를 해결하려고 했던 기록을 남깁니다.

 

우선. Anaconda3와의 문제입니다.

 

Anaconda3를 설치하면 저는 기본적으로 conda init을 하게끔 옵션을 줍니다. 

앞에 요렇게 (base)가 뜨게 해서 필요할때마다 바로 conda activate (사용자환경) 이렇게 쓸수있게 해놓습니다.

 

문제는... 이게 Playonlinux에서 사용하는 Python이랑 충돌이 난다는겁니다. 기본 Anaconda의 Base 파이썬과 시스템에 설치된 Python은 서로 다르기 때문에 문제를 펑펑 일으킵니다.

 

기본적으로 Anaconda를 설치하면서 만들어진 파이썬에서 wx가 없기에 이를 설치하도록 유도합니다만...

Anaconda에서 제공하는 wx는 지금 시스템에 설치된 cairo와 호환성 문제를 일으킵니다. cairo나 기타등등조차 anaconda에서 제공한걸로 때우면 될 수도 있습니다만... 이건 이것대로 일일이 귀찮아지는 문제를 일으킵니다.

 

그래서 Playonlinux를 실행시에 deactivate 하도록 만들어야 합니다.

 

우선 Anaconda 실행시 바로 conda가 실행 가능한 이유는 .bashrc에 이런 코드가 추가되기 때문입니다.

 

anaconda가 설치된 곳의 bin을 우선시 해서 PATH설정을 해서 python이란 명령을 내리면 (anaconda가 설치된 곳)/bin/python을 실행하도록 하는 겁니다. 즉, 해당 위치의 PATH를 삭제해 버리면 다시 python명령은 시스템에 설정된 python으로 다시 돌아온다는 의미가 됩니다.

 

그래서 playonlinux 스크립트의 일부를 수정합니다.

sudo nano /usr/share/playonlinux/playonlinux

혹은

sudo gedit /usr/share/playonlinux/playonlinux

sudo mousepad /usr/share/playonlinux/playonlinux

 

 등등으로 편한 텍스트 에디터를 관리자권한으로 /usr/share/playonlinux/playonlinux 파일을 엽니다.

 

그러면 특유의 Playonlinux의 4잎클로버 로고가 보이게 되고 이 아래에 다음과 같이 적습니다.

 

export PATH=$(REMOVE_PART="아나콘다가 설치된곳/bin" sh -c 'echo ":$PATH:" | sed "s@:$REMOVE_PART:@:@g;s@^:\(.*\):\$@\1@"')

 

"아나콘다가 설치된곳/bin"

이게 어딘지 모른다면 ~/.bashrc 파일을 열고

export PATH= "(여기 부분):$PATH"

해당 부분을 복사해서 붙여넣으면 됩니다.

 

sudo apt install python3-wxgtk4.0

그리고 패키지 시스템에서 제공하는 wxgtk 패키지를 설치하면 됩니다.

 

--------다만---------

python3.12 이상부터는 playonlinux에서 사용하는 패키지중 asyncore가 deprecated 되었습니다. 본래는 파이썬 기본패키지였으나 이제는 사라졌기에 3.12가 아닌 구버전을 쓰거나 3.12에 맞춰서 다시 설치해줘야 합니다.

 

하지만 방법은 있습니다.

https://github.com/simonrob/pyasyncore

 

GitHub - simonrob/pyasyncore: Make asyncore available for Python 3.12 onwards

Make asyncore available for Python 3.12 onwards. Contribute to simonrob/pyasyncore development by creating an account on GitHub.

github.com

여기서 제공하는 모듈을 playonlinux 폴더에 설치하면 됩니다.

 

pip로 설치하는건 위험하니까 (시스템 파이썬입니다. 다시 말씀드리자만...)

playonlinux의 스크립트가 존재하는 곳에 이 모듈을 직접 설치합니다.

 

git clone https://github.com/simonrob/pyasyncore.git

sudo cp -rf pyasyncore/asyncore/ /usr/share/playonlinux/python/

rm -rf pyasyncore

 

이렇게 하고 playonlinux 를 실행하면...

 

호환성을 맞춰가면서 실행 성공!

Playonlinux의 일부 어딘가 덜그럭거리기는 하지만 어찌됐든 실행에 성공 했습니다!!!

,

최근 Nvidia드라이버의 상태가 이상한건지 아니면 커널의 상태가 이상한건지 우분투의 nvidia드라이버간 궁합이 이상한듯 합니다.

우분투에선 추천드라이버라는게 있어서 보통 이걸 씁니다만 추천드라이버가 바뀌는 경우가 있습니다.

원인은 커널업데이트인데 커널이 보안하고 직접적인 관련이 있는걸 생각하면 일종의 보안업데이트로 인한 문제라고 봐야할겁니다.

즉, 윈도에서 보안업데이트로 간간히 드라이버충돌이 나는것처럼 리눅스도 업데이트로 인해 드라이버 충돌이 나는겁니다.

그런데 무슨 이유인지 커널은 업데이트가 됐는데 드라이버는 업데이트가 안 되었다거나(dkms관련 오류) 커널은 업데이트가 안 됐는데 드라이버만 업데이트가 되는 일이 가끔 일어납니다. (이쪽은 저장소 관련 이슈)

그리고 이게 커널패닉을 일으키는듯 합니다.

반대로 드라이버 설치 스크립트가 꼬이는 바람에 문제를 일으키기도 합니다.
그러니 업데이트 리스트를 보고 커널이나 드라이버가 업데이트리스트에 있다면 한번 고민을 해보고 업데이트를 미루거나 날 좋을때 기도하면서(?)하는걸 추천드립니다.

,

rar포맷은 많은 곳에서 쓰이고 있습니다. 특히 분할압축할때 엄청 좋은 걸로 유명합니다.

rar.part0 rar.part1 ...

이런식으로 된걸 보실 수 있는데 어떻게 보면 압축프로그램중에서 잔뼈가 굵은 winrar에서 지원하는 포맷이기에 그러합니다.

 

우리나라야 막강한 반디집이 있다보니 그렇게 썩 중요하지 않지만 (매번 문제가 터지는 알집은 논외) 해외에선 Winrar가 사실상 표준이다보니 RAR포맷을 자주 사용합니다. 물론 진짜 사실상 표준인 ZIP포맷은 더 잘 지원합니다.

 

아무튼 이렇게 많이 쓰이는 포맷이다보니 리눅스에서도 잘 지원되리라는건 자명한데 의외로 데비안은 RAR을 기본지원하지 않습니다. 심지어 리눅스 민트에서도 기본 지원이 안 되는듯 합니다.

 

일단 간단하게 지원 하는 방법은

p7zip-rar 패키지를 설치하면 됩니다.

 

sudo apt install p7zip-rar

 

이렇게 하면 7zip에서 지원하는 rar라이브러리가 설치되면서 기본압축프로그램(Xarchiver Engrampa File-roller 등)에서 RAR이 지원되는 걸 볼 수 있습니다.

,

패키지에서 템플릿을 추출하는 중: 100%
패키지를 미리 설정하는 중입니다...
(데이터베이스 읽는중 ...현재 311192개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../base-files_13.3_amd64.deb ...
Unpacking base-files (13.3) over (13.1) ...
base-files (13.3) 설정하는 중입니다 ...
Updating /etc/profile to current default.
(데이터베이스 읽는중 ...현재 311201개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../libc-l10n_2.38-14_all.deb ...
Unpacking libc-l10n (2.38-14) over (2.37-18) ...
Preparing to unpack .../systemd-timesyncd_256.2-1_amd64.deb ...
Unpacking systemd-timesyncd (256.2-1) over (255.5-1) ...
Preparing to unpack .../locales_2.38-14_all.deb ...
Unpacking locales (2.38-14) over (2.37-18) ...
Preparing to unpack .../libsystemd-shared_256.2-1_amd64.deb ...
Unpacking libsystemd-shared:amd64 (256.2-1) over (255.5-1) ...
dpkg: considering deconfiguration of systemd, which would be broken by installat
ion of libc6:amd64 ...
dpkg: yes, will deconfigure systemd (broken by libc6:amd64)
Preparing to unpack .../libc6_2.38-14_amd64.deb ...
De-configuring systemd (255.5-1), to allow installation of libc6:amd64 (2.38-14)
 ...
De-configuring libc6:i386 (2.37-18), to allow configuration of libc6:amd64 (2.38
-14) ...
Checking for services that may need to be restarted...
Checking init scripts...
Unpacking libc6:amd64 (2.38-14) over (2.37-18) ...
dpkg: error processing package libc6:amd64 (--configure):
 package libc6:amd64 2.38-14 cannot be configured because libc6:i386 is at a dif
ferent version (2.37-18)
처리하는데 오류가 발생했습니다:
 libc6:amd64
오류: 시간 제한을 넘었습니다

 

 

대충 어떤 상황이었냐면 deb-helper를 설치하기 위해 설치를 하던 도중 패키지 업그레이드가 이루어진 상황이다.

기존에는 2.37-18 버전의 libc6을 쓰고 있었고 deb-helper를 설치하려고보니 최신버전인 libc6 2.38-14버전을 설치하는 중에 무슨 일인지 버그로 꼬여버린것.

 

특히 중간에 있는

 

package libc6:amd64 2.38-14 cannot be configured because libc6:i386 is at a dif
ferent version (2.37-18)

 

요 문구가 가장 중요한데 i386(32비트)패키지와 libc6패키지의 버전이 달라 오류가 난다고 떽떽 거리는 상황이다. 보통은

sudo apt -f install

이 명령어로 해결되어야 정상이지만 무슨 문제인지 계속 저 문구가 뜨면서 해결이 안 되는 상황

 

특히 i386의 버전이 낮아서 안 되요!!! 이 소리니까 이걸 최신판으로 먼저 바꿔주면 되는데 무슨일인지 amd64패키지만 열심히 올리려고 하고 있다.

 

그러면 수동으로 저 버전의 패키지를 먼저 설치하면 되는거 아닌가라는 생각에 데비안 홈페이지에서 libc6:i386의 최신 버전 패키지를 다운로드

https://packages.debian.org/sid/i386/libc6/download

 

Debian -- Package Download Selection -- libc6_2.38-14_i386.deb

Download Page for libc6_2.38-14_i386.deb on Intel x86 machines If you are running Debian, it is strongly suggested to use a package manager like aptitude or synaptic to download and install packages, instead of doing so manually via this website. You shoul

packages.debian.org

 

sudo dpkg -i libc6_2.38-14_i386.deb

요렇게 해서 설치하고(설치중 오류가 없음..)

 

sudo apt -f install

이러니까 패키지 오류가 한번에 싹 풀린다.

 

이래서 unstable버전이라고 하는가보다. 돌겠네 진짜.

 

,

윈도우를 사용하다보면 강제 종료된 후 사용하던 창들이 다시 켜지는 경우가 있습니다.

이를 xfce4에서도 지원을 하는데 일명 세션 복원이라고 합니다.

 

문제는 처음에 세션복원이 되면 편리한데 다음에도 또 다음에도 해당 세션이 복구된다는 겁니다. 재부팅 되면 이게 리셋이 되어야 하는데 리셋이 안 되는거지요.

 

그럴 때는 저장된 세션을 지워버리면 됩니다.

 

~/.cache/sessions

위 경로에 가보면 저장된 세션이 존재합니다.

이 파일들 때문에 자꾸 firefox와 thunar가 자동실행 된다.

 

그냥 이걸 가뿐하게 지워주세요.

 

그리고 SaveOnExit를 지원하지 않게 하겠다면

xfconf-query -c xfce4-session -p /general/SaveOnExit -s false

안 되면

xfconf-query -c xfce4-session -p /general/SaveOnExit -n -t bool -s false

 

위 명령어로 SaveOnExit를 꺼주시면 됩니다. 이러면 그냥 강제 종료되면 다시 복귀되지 않습니다만 뭐... 깔끔하잖아요?

,

1.1.1.1 Warp는 Cloudflare에서 제공하는 일종의 VPN서비스입니다.

사실 VPN이지만 속도도 준수하고 무료서비스로도 쓰는데 충분합니다.

 

가끔 1.1.1.1을 쓰면 안 되는 사이트들이 있지만 그렇게 많지는 않습니다. 애초에 Cloudflare가 한국 지사가 있는 서비스 업체라서 도리어 해외 서버의 딜레이를 줄여주는 역할을 합니다. 원래 이런 용도로 나온 것이기도 하고요.

 

본래는 모바일용으로만 나왔지만 데스크탑용으로도 나왔고 당연히 네트워크 서비스이기에 주요 리눅스에서도 사용이 가능합니다. 다만 Redhat과 Debian/Ubuntu 용으로만 나온 상태입니다.

 

https://developers.cloudflare.com/warp-client/get-started/linux/

 

Linux desktop client · Cloudflare WARP client docs

You have two ways of installing WARP on Linux, depending on the distro you are using:

developers.cloudflare.com

여기서 보면 쉽게 쓸 수 있게 되어있습니다.

 

방법은 Ubuntu/Debian 기준 (https://pkg.cloudflareclient.com/)

curl https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
sudo apt-get update && sudo apt-get install cloudflare-warp

위의 내용을 싹 터미널에 던져넣으면 cloudflare-warp가 설치 됩니다.

 

그 다음 사용에 동의 해주셔야 합니다.

warp-cli register

위 명령 사용후 나오는 내용에 동의를 위해 키보드 Y를 눌러줍니다.

그러면 Success라고 뜹니다.

 

그다음 warp를 활성화 하기 위헤

warp-cli connect

이제 Warp가 활성화 되었으니 해외 회선 속도가 어느정도 올라간 것이 확인 될 겁니다.

,

Virtualbox가 만들어진지는 꽤 오래되었습니다만 최신 커널에 언제나 대응하고 있었습니다.

다만 이번에는 조금 느려진 탓인지 대응이 좀 늦었군요.

 

커널 업데이트 후에 Virtualbox를 실행할때마다

vboxdrv.sh: failed: Look at /var/log/vbox-setup.log to find out what went wrong.

There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.  If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
them. Please see your Linux system's documentation for more information.

요런 문구가 뜨거나

 

메시지대로

sudo /sbin/vboxconfig 명령을 내려서

커널 모듈을 새로 설치를 하려고 하면

vboxdrv.sh: failed: Look at /var/log/vbox-setup.log to find out what went wrong.

요런 문구가 뜰 수가 있습니다.

 

이유는 커널 6.4버전이 되면서 일부 코드가 이사를 가서 그렇습니다.

 

힌트는 https://discussion.fedoraproject.org/t/6-4-10-200-fc38-x86-64-created-problems-with-virtual-box/87492/7

 

6.4.10-200.fc38.x86_64 - created problems with Virtual Box

Works great now, thanks to the package maintainer at rpmfusion. 🤠

discussion.fedoraproject.org

여기서 찾을 수 있는데 

/usr/share/virtualbox/src/vboxhost/vboxnetflt/linux/VBoxNetFlt-linux.c

위 파일을 열고

#include <net/gso.h>

위 코드를 추가해 주시면 됩니다.

 

 

그 다음 sudo /sbin/vboxconfig을 하면 문제없이 빌드가 되면서 실행이 잘 될겁니다.

이상하리 만큼 이번에는 대응이 늦었습니다.

,

CUDA는 언제나 문제를 일으킵니다

윈도우에선 화가날 지경으로 잡혔다 말았다 합니다. 이쪽은 그냥 포기하는게 낫습니다.

리눅스요? 그나마 낫지만 역시 잡혔다 말았다 합니다. 커널 업데이트라도 하면 안 잡히는 일이 잦아집니다

 

그럴때 가장 좋은건..

그냥 드라이버 다시 까는겁니다.

 

네 정말입니다. 간단하게도 업데이트나 그런게 아니라 지금까지 써온 버전을 다시 까는것이 가장 현명한 선택입니다.

 

sudo apt remove nvidia-*

재부팅

sudo apt install nvidia-driver

재부팅

 

이러니까 다시 잘 잡히네요. 아마도 CUDA관련 라이브러리를 싹 지웠다가 다시 깔면서 해결이 된 것 같습니다.

 

윈도우에서 안 잡힐때는 그냥 윈도우를 포맷하는게 정답같습니다...

,

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt install libgl1-mesa-dri:i386 libgl1:i386
sudo apt-get upgrade steam -f
sudo apt install nvidia-driver-libs:i386

 

이건 Nvidia유저들에게서만 나오는 문제라고 한다.

따라서 가장 마지막 명령어인 nvidia-driver-libs:i386 이 가장 핵심 명령어이다.

,

Nvidia 드라이버는 우분투에서 참 애환이 담긴 드라이버입니다.

바이너리 버전만 배포되기에 우분투 개발자들도 처리 하지 못할 문제를 일으킬 뿐더러 가끔 사용자들도 배포판 업그레이드를 못하게 막는 물건입니다.

 

하지만 이를 쓸 수 밖에 없는 이유가 이보다 더 안정적인 드라이버가 없습니다. Nouveau는 여전히 불안정한 면이  있고 그 외에는 드라이버가 전무합니다.

하드웨어적으로 라데온으로 바꾸는 방법도 있는데 이쪽은 아시다시피 더했으면 더했지 덜하지 않습니다. 그나마 오픈소스 드라이버가 안정적인 라데온이기에 이쪽은 대안이 있기는 합니다.

 

그럼에도 Nvidia카드를 선호하는이유는 아무래도 CUDA때문일 가능성이 높습니다. 현재 AI가 대두된 상황이고 AI개발에 가장 좋은 조합이 Nvidia카드에 우분투입니다. 대다수 라이브러리들이 우분투에서 Nvidia카드로 학습하는 것을 기반으로 내놓고 있지요.

 

그럼 Nvidia 드라이버를 안정적으로 쓰는 방법은 무엇이 있을까요?

 

그냥, 안정적이라고 검증된 구버전을 쓰는 것입니다. 하지만 가끔 멋대로 드라이버가 업그레이드 되기도 하며 이에 따라 꼬이기도 합니다.

이번에 제가 그런 꼴을 당했는데 원인은 우분투 저장소에서 제가 사용하던 버전을 내려버린 것입니다. 무슨 문제가 있긴 있었겠지요.

 

제가 사용하던 버전은 515버전입니다. 그전에 wayland에서 일어나던 문제가 처음으로 해결된 버전입니다. 그리고 전 여기에 정착해서 잘 쓰고 있었는데 우분투에서 멋대로 525버전을 설치하더니 환경이 모두 꼬이고 말았습니다. 그래서 드라이버를 재설치하려고보니 설치가 자꾸 안 되네요.

 

찾아보니 방법이...

 

우선 그래도 GUI로 부팅이 된다면 추가 드라이버를 실행합니다. 

그리고 Nouveau로 우선 되돌려 줍니다. 이건 우분투 개발자들이 관여하기에 다른게 꼬여도 문제는 일으키지 않습니다. 

그리고 재부팅 한 다음 다시 드라이버를 설치하면 됩니다.

 

하지만 GUI도 안 뜨고 완전 박살이 난 상태라면 콘솔까지는 뜰겁니다.

 

어찌됐든 인터넷은 연결될테니 다음 명령으로 처리합니다.

sudo apt update

sudo apt dist-upgrade

sudo apt install nvidia-driver-XXX

여기서 XXX는 설치가 가능한 버전입니다. 스마트폰이든 다른 PC든 인터넷에 들어가서 현재 우분투 버전에서 설치가 가능한 드라이버 버전을 찾아보세요. 그리고 재부팅하면 정상적으로 드라이버가 설치되어 작동할 겁니다.

,