KDE Neon 을 사용하고, 기존 우분투 저장소나 PPA 를 사용하다보면, 이 오류를 가끔 만나게 된다.
2019년 1월 현재, 내가 발견한, 이 오류를 뿜어내는 꾸러미는 두가지다. 하나는 Nimf, 다른 하나는 bomi. 모두 공식 PPA 는 없다.
Nimf 는 qtbase-abi-x-x-x 를 필요로 하고, bomi 는 의존꾸러미로 걸어놓은 qt5-style-plugins 이 qtbase-abi-x-x-x 에 의존하고 있다.
우분투 Bionic 기반 KDE Neon 이 처음 나왔을 때는, fcitx-frontend-qt5 도 이 오류를 피해갈 수 없었다. 따라서 한국어 입력이 되지 않았었다. KDE Plasma 는 Qt5 기반으로 만들어져있고, fcitx-frontend-qt5 이 설치되지 않으면 Qt5 프로그램에는 한글을 넣을 수가 없다.
추후 KDE Neon 측은, fcitx-frontend-qt5 를 재 빌드하여 neon 저장소에 추가해놓았다.
바로 위 문장이 이 문제의 해결책을 암시해주고 있다.
qtbase-abi-x-x-x 는 실제 꾸러미가 아니고 가상 꾸러미(Virtual Package)다. 이건 컴파일/빌드 과정에서 생겨나는 모양인 듯하고, 어떤 환경이냐에 따라 프로그램 이름(판본명)이 바뀐다.
자세한 내용은 전문 지식이 없어서 모르겠고..
우분투 18.04 에서 빌드된 qt5-style-plugins 을 KDE Neon 에서 설치하려면 qtbase-abi-5-9-5 가 없다는 오류가 발생한다. 이것은, Qt5 버전 차이에서 비롯된다.
우분투 18.04 의 Qt (qt5-default)는 5.9.5 이고, KDE Neon 은 Qt 5.11.2 를 사용하고 있다. 이 때문에 의존성에 문제가 생긴다.
각설하고, 이 문제를 해결하려면, KDE Neon 은(또는 우분투와는 다른 판본의 Qt 를 쓰는 배포판 모두) 자신만의 qt5-style-plugins 를 가져야 한다. Nimf 도 마찬가지.
즉, KDE Neon 에서는 해당 꾸러미의 소스를 내려받아 재빌드한 후, 따로 설치를 해줘야만 문제가 발생하는 프로그램들을 제대로 사용할 수 있다.
방법은 (일단은) 이렇다.
apt source --compile 꾸러미이름(qt5-style-plugins) # sudo 는 필요없다!
이 작업을 위해서는 build-essential
이 설치되어 있어야 한다. 작업 중, 의존성 문제(Unmet Dependency)가 발생하면, 해당 꾸러미들을 설치해주고 명령을 다시 내리면 된다. 추가로, devscripts
꾸러미도 필요하다.
마지막으로, /etc/apt/sources.list 에 deb-src 항목이 있어야 한다.
작업이 완료되면, Debian 꾸러미가 생성되는데(*.deb), 이 파일들을 apt install 이나 dpkg -i 로 설치해주면 끝.
이게 이 문제를 ‘제대로’ 해결하는 정공법이다.
헌데.. 여기에도 문제가 좀 있다.
apt source 명령을 사용해서 내려받는 소스는, 저장소에 있는 것인데, 이걸 그대로 컴파일/빌드하면, 저장소에 있는 것과 동일한 버전명이 부여된다.
이 때문에, apt update 시에, upgrade 가 가능한 판본이 있다는 문구가 나타나게 된다. 실제로 apt upgrade 를 해도 작업이 이뤄지진 않는데, 메시지만 이렇게 뜬다.
무시하면 되지만… 이게 또 신경이 쓰일 수도 있다.
이 문제를 해결하려면, apt source –compile 을 바로 하지말고, 소스를 받은 뒤 버전명을 살짝 고쳐준 뒤 빌드작업을 시행한다.
$ apt source qt5-style-plugins ...... $ ls -al 합계 260 drwxrwxr-x 3 neonkr neonkr 4096 1월 14 17:43 ./ drwxr-xr-x 5 neonkr neonkr 4096 1월 14 17:13 ../ drwxrwxr-x 5 neonkr neonkr 4096 1월 14 17:43 qtstyleplugins-src-5.0.0+git23.g335dbec/ -rw-r--r-- 1 neonkr neonkr 3332 4월 17 2018 qtstyleplugins-src_5.0.0+git23.g335dbec-2build5.debian.tar.xz -rw-r--r-- 1 neonkr neonkr 2527 4월 17 2018 qtstyleplugins-src_5.0.0+git23.g335dbec-2build5.dsc -rw-r--r-- 1 neonkr neonkr 245268 6월 20 2017 qtstyleplugins-src_5.0.0+git23.g335dbec.orig.tar.xz
버전명은 debian/changelog
파일에서 고쳐줄 수 있다. qt5-style-plugins 를 예로 들어보면 다음과 같다.
qtstyleplugins-src (5.0.0+git23.g335dbec-2build5) bionic; urgency=medium * No-change rebuild against qtbase-abi-5-9-5. -- Simon Quigley <tsimonq2@ubuntu.com> Sat, 14 Apr 2018 22:00:49 -0500 </tsimonq2@ubuntu.com>
판본의 역사(?)를 보면, 5.0.0+git23.g335dbec-2build1 부터 현재 5.0.0+git23.g335dbec-2build5 까지 이어오고 있다. 이걸 2build6 으로만 바꿔줘도 된다. 경험 상, 배포판이 바뀌기 전에는 이런 류의 꾸러미가 판올림이 되는 적을 못봤기에, 그냥 하나만 올려줘도 된다.
만약 새판이 나온다면 build6 이 아니라 앞 부분이 바뀔 테고, 그 때가 되면 다시 빌드를 해야하기 때문에, 버전명은 저정도로만 해줘도 된다.
아니면 그냥, 이런 식으로 과감하게(?) 해도 된다.5.0.0+git23.g335dbec-100build1
어쨌든 changelog 를 고쳐주고, 해당 디렉토리 qtstyleplugins-src-5.0.0+git23.g335dbec/ 로 이동한 후, 다음 명령을 내리면 Deb 꾸러미가 만들어진다. devscripts
꾸러미가 설치되어 있어야 한다.
$ cd qtstyleplugins-src-5.0.0+git23.g335dbec/ $ debuild -uc -uc
빌드 작업이 끝나면, 바로 상위 디렉토리에 꾸러미 파일이 생성되고, 이것을 설치해주면 된다.
이러면, 위에서 언급한 버전문제로 인한 apt update 문구는 표시되지 않는다.
위의 방법은, 언급했다시피 ‘정공법’이다.
어차피 qt5-abi-x-x-x 는 가상꾸러미이므로, 실제로 하는 일은 없다.
따라서, 다음과 같은 우회법(workaround)이 더 손 쉬울 수도 있다.
몇 달 동안 이렇게 쓰고 있었는데, 별 다른 문제는 찾지 못했다.
가장 좋은 방법은, KDE Neon 한정 PPA 인데, 아직 이런 것은 없고, 앞으로도 아마 없지 않을까. KDE Neon 사용자가 얼마나 된다고..
1 thought on “꽃삽질 : qtbase-abi-x-x-x 오류 돌아가기.”