지난 글에서 KDE neon에서 Network Manager와 씨름했던 경험을 소개했는데, 사실 그날 마주한 골칫거리가 이것 하나뿐만은 아니었습니다. VPN 테스트 절차의 일환으로, 시간을 아끼고자 Kubuntu에서 사용하던 보안이 강화된 브라우저 프로필을 neon으로 그대로 복사해 왔습니다. 광고 차단부터 사용자 에이전트, 팝업 차단, WebRTC 설정까지 모든 것을 처음부터 다시 구성하는 일은 도저히 감당할 생각이 나지 않았기 때문입니다. 실제로 Firefox의 매력적인 특징 중 하나는 프로필을 머신 간에 손쉽게 복사할 수 있다는 점이며, 저도 지금까지 수없이 이 방법을 성공적으로 활용해 왔습니다.
그런데 이상한 일이 벌어졌습니다. Firefox를 실행할 때마다 기본 브라우저로 설정할지 묻는 메시지가 매번 떴고, 선택 여부와 무관하게 같은 질문이 반복됐습니다. 더 심각한 것은 브라우저 환경설정의 기본값으로 설정(Make default) 버튼을 눌러도 아무 반응이 없다는 점이었습니다. 결국 직접 문제를 해결해야 했습니다.

증상 확인
처음에는 프로필 가져오기 때문에 생긴 문제라고 의심했습니다. '기본값으로 설정' 버튼은 전혀 작동하지 않았고, Plasma의 애플리케이션 설정에서 파일 연결을 변경해도 Firefox는 여전히 같은 메시지를 띄웠으며 상태도 바뀌지 않았습니다.


이어서 Firefox 초기화(새로 만들기)를 시도했지만 소용이 없었고, 브라우저를 완전히 삭제하고 기존 프로필까지 모두 지운 후에도 시스템은 Firefox를 기본 브라우저로 받아들이지 않았습니다. Plasma 자체의 기이한 문제처럼 보였지만, 온라인을 검색해 보니 다양한 운영체제에서 비슷한 증상이 보고되고 있었습니다. 영화 <더티 러튼 스컨드럴스>의 에밀 슈프하우젠 박사처럼, 이제 좀 더 강경한 조치가 필요한 순간이었습니다.
내부 살펴보기와 대안
목표는 두 가지입니다. Firefox를 기본 브라우저로 만드는 것, 그리고 성가신 알림 창을 없애는 것입니다. 후자는 간단합니다. 환경설정에서 해당 체크박스의 선택을 해제하면 더 이상 묻지 않습니다. 하지만 전자, 즉 Firefox가 실제로 기본 브라우저로 인식되도록 만드는 것이 진짜 과제입니다.
그 출발점은 ~/.config/mimeapps.list 파일입니다. 이 파일에는 사용자별 파일 형식과 프로그램 간의 연결 정보가 담겨 있어, 시스템이 파일을 열 때 올바른 애플리케이션을 실행할 수 있게 해 줍니다. 일반적으로 다음과 같은 내용이 포함되어 있어야 합니다.
[Added Associations]
video/mp4=vlc.desktop;
[Default Applications]
application/x-extension-htm=firefox.desktop
application/x-extension-html=firefox.desktop
application/x-extension-shtml=firefox.desktop
그런데 제 파일에는 Firefox가 들어가야 할 자리에 전혀 다른 값이 기록되어 있었습니다.
application/x-extension-html=user-firefox-XXXXX.desktop

온라인을 검색하다 관련 버그 리포트를 발견했습니다. 저장소 패키지와 직접 내려받은 tarball을 함께 사용하는 식으로 Firefox를 여러 개 병렬 설치한 경우에 초점을 맞춘 사례였습니다. 해당 값을 손으로 수정한 뒤 브라우저를 다시 실행했지만 역시 실패했습니다. 더 기묘한 점은, 어떤 이유에서인지 '기본값으로 설정' 버튼을 클릭하면 오히려 mimeapps.list 파일에 이런 연결 정보가 기록된다는 사실이었습니다.
그래서 더 근본적인 방법에 나섰습니다. 핵심은 바로 update-alternatives입니다. 우분투 계열 시스템에는 작업별 기본 프로그램을 명령줄에서 변경할 수 있는 도구가 마련되어 있습니다. 예컨대 www 관련 작업의 기본 프로그램(브라우저)을 다음과 같이 바꿀 수 있습니다.
sudo update-alternatives --config x-www-browser

시스템은 Chrome이 기본 브라우저로 등록되어 있다고 알려왔습니다. 제가 그렇게 설정한 적이 없기에 상당히 의외였고, 어쩌면 KDE neon 특유의 문제일 수도 있습니다. 어쨌든 자동(auto) 모드에서 수동(manual) 모드로 전환하고(2번 선택) Firefox를 지정했습니다. 다음 명령으로 결과를 확인할 수 있습니다.
xdg-open file.html
이 명령은 HTML 파일의 기본 처리 프로그램으로 지정된 애플리케이션을 실행합니다. 수동 변경 후 실행 결과는 Firefox였습니다. 브라우저 환경설정 메뉴에는 여전히 잘못 표시되지만, 시스템 차원에서는 모든 기능이 정상적으로 동작합니다. 문제 해결입니다.
마치며
나이가 들수록 현명해진 탓인지, 아니면 회의적인 시선이 늘어난 탓인지 모르겠지만, 소프트웨어 품질이 끊임없이 하락하고 있다는 느낌을 지울 수 없습니다. 안정적이고 견고한 제품을 만드는 데 쓰이는 노력은 줄어들고, 화려한 유행어와 겉으로 보이는 혁신 속도에 더 많은 자원이 투입되고 있습니다. 이는 Firefox 하나의 문제가 아니라 업계 전반의 문제입니다. 그 결과 사용자들은 합리적이고 예측 가능한 동작 대신, 곳곳에서 튀어나오는 난잡하고 사소한 버그들을 감당해야 합니다. 추상화가 곧 상호작용이 되는 미래, 어서 오십시오.
그나저나 본론으로 돌아가서, 우분투 계열 배포판에서 Firefox를 사용하다가(그리고 Firefox 사용은 언제나 좋은 선택입니다) 브라우저 시작 시 이상한 문제를 겪거나 기본 브라우저로 설정되지 않는다면 update-alternatives 도구로 수동으로 확실히 고칠 수 있습니다. 이번 글에서는 mimeapps.list 점검 등 몇 가지 방법을 함께 다뤘으니, 원래 기능을 되찾는 데 도움이 되기를 바랍니다. 평소라면 이런 문제는 드물고, 지난 10년간 Firefox가 설정을 기억하지 못한 경우는 Linux Mint와 KDE neon에서 단 두 번 정도밖에 경험하지 못했습니다. 그래도 문제가 생겼으면 해결하면 될 일이죠. 끝!
그럼, 즐거운 컴퓨팅 되세요.