문제 상황
OS : Ubuntu 24.04 LTS
한글 입력기 : ibus
App Center에서 Obsidian 검색해서 설치했는데 한글 입력이 안됨.
다른 프로그램에선 한글 입력, 한영 변환 다 잘 되는데 옵시디언에서는 다 안됨.
chatgpt와 구글링에 의존하여 버그 해결책을 찾기 시작함.
시간 없으면 바로 맨 아래로 가서 해결책 정리부터 보면 됨.
해결 과정
1. locale 파일 수정
터미널에서 sudo nano /etc/default/locale를 입력한 뒤 아래와 같이 파일 수정.
LANG=ko_KR.UTF-8
LANGUAGE=ko_KR:ko
LC_ALL=ko_KR.UTF-8
재부팅했더니 터미널이 안 열림.
CTRL+ALT+F3 눌러서 다시 돌아가 원래대로 되돌린 후 sudo locale-gen --purge 입력. 출처
2. fcitx 설치
ibus 대신 다른 한글 입력기 사용해봄.
안됨.
3. appimage로 설치
옵시디언 홈페이지에서 Linux 버전 appimage 다운 받고
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
이것들을 터미널에 입력하고 appimage 실행했더니
➜ 다운로드 ./Obsidian-1.6.3.AppImage
dlopen(): error loading libfuse.so.2
AppImages require FUSE to run.
You might still be able to extract the contents of this AppImage if you run it with the --appimage-extract option. See https://github.com/AppImage/AppImageKit/wiki/FUSE for more information
오류가 떠서 libfuse.so.2 설치.
sudo apt install libfuse2
설치해도 직접 실행 안되길래 extract 옵션 사용해봄.
./Obsidian-1.6.3.AppImage --appimage-extract
실행은 되는데 여전히 한글 입력 안됨. export 어쩌구~=ibus 입력한 뒤에 실행해도 안됨.
4. gtkrc 수정
Obsidian이 사용하는 그래픽 라이브러리와 입력기 설정이 충돌할 수 있습니다.
~/.gtkrc-2.0 또는 ~/.config/gtk-3.0/settings.ini 파일을 확인하여 입력기 설정을 추가합니다.
gtkrc라는 그래픽 라이브러리가 입력기 설정과 충돌할 수도 있다고 함.
nano ~/.gtkrc-2.0
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
gtkrc-2.0 파일에 위 세 문장 추가.
nano ~/.config/gtk-3.0/settings.ini
[Settings] gtk-im-module=ibus
gtk-3.0 파일에 문장 추가.
이후 재부팅해보았으나 역시 안됨.
5. scimm-qtimm 설치 시도
리눅스중 KDE환경이나 QT기반하에서 제작된 많은 프로그램은 SCIM 환경만으로는 한글 입력이 안될수도 있습니다.
그럴때는 시냅틱 패키지 관리자에서 scim-qtimm 을 깔아주면 간단히 해결됩니다.
검색했더니 이런게 있어서 설치해보려고 했으나 패키지 자체가 없음.
발행일이 2007년도인 것으로 보아 옛날 이야기인듯.
6. 옵시디언 개발 언어 검색
옵시디언이 Electron 기반으로 만들어졌다는 사실을 알아냄
chatgpt에게 알려줬더니 살짝 다른 해결책을 주기 시작함. 출처
7. Snap 패키지 환경 변수 설정
Electron 기반의 애플리케이션에서 한글 입력이 제대로 작동하지 않는 문제는 입력기(IM) 설정과 관련된 문제일 가능성이 큽니다. 특히, 입력기(IM)의 호환성과 관련된 설정이 제대로 되어 있지 않거나, Electron 애플리케이션이 이를 제대로 인식하지 못하는 경우가 있습니다.
기본적으로, Snap 패키지로 설치된 Obsidian이 시스템의 IME 설정을 제대로 인식하지 못할 수 있습니다. 이 경우 다음과 같은 해결 방법을 시도해 볼 수 있습니다:
Snap 패키지는 격리된 환경에서 실행되므로, 환경 변수를 Snap 패키지에 맞게 설정해야 합니다. 이를 위해 Snap의 환경 변수를 설정합니다.
sudo snap set system locale.supported=ko_KR.UTF-8 sudo
snap set system locale.default=ko_KR.UTF-8
sudo snap set system gtk.im-module=ibus
sudo snap set system qt.im-module=ibus
sudo snap set system x11.display-im=ibus
환경 변수 설정하고
sudo systemctl restart snapd
Snap 데몬 재시작 하고
snap run obsidian
재시작 해봤는데 안됨.
8. chromium-args 설정 변경
Electron 애플리케이션은 기본적으로 Chromium 엔진을 사용합니다. 이 경우 chromium-args를 사용하여 입력기 모듈을 지정할 수 있습니다.
nano ~/.config/obsidian/args
--enable-features=UseOzonePlatform
--ozone-platform=wayland
--gtk-version=4.0
--gtk-im-module=ibus
이 네 문장 추가하고 다시 옵시디언 실행해보았으나 여전히 안됨.
9. Electron 디버깅 모드 사용
ELECTRON_ENABLE_LOGGING=true ELECTRON_ENABLE_STACK_DUMPING=true snap run obsidian
터미널에 이거 입력해서 로그를 살펴보고
gpt한테도 검토 요청 했으나 별 다른 이상 발견 못함.
10. Snap 패키지 보안 권한 조정
Snap 패키지는 보안상의 이유로 앱이 시스템 리소스에 대한 접근을 제한할 수 있습니다. 이를 조정하여 문제를 해결할 수 있습니다.
sudo snap connect obsidian:desktop-legacy
sudo snap connect obsidian:wayland
sudo snap connect obsidian:x11
sudo snap connect obsidian:network
이거 터미널에 입력한 뒤에 gpt에서 나온 다른 해결책 어디까지 적용하고 실행해봤는진 기억이 안 나는데,
appimage 실행하려 했더니
11. chrome-sandbox 파일 소유권 및 권한 설정
➜ ~ ~/다운로드/Obsidian-1.6.3.AppImage [42283:0614/153920.672268:FATAL
.cc(158)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /tmp/.mount_ObsidiwkkMuP/chrome-sandbox is owned by root and has mode 4755. [1] 42283 trace trap (core dumped) ~/다운로드/Obsidian-1.6.3.AppImage
이런 오류가 뜸.
나머지는 해결책 정리에 정리함.
해결책 정리
1. 옵시디언 홈페이지에서 AppImage 파일 다운
2. 터미널로 AppImage 파일 추출
~/다운로드/Obsidian-1.6.3.AppImage --appimage-extract
3. 추출된 디렉토리로 이동
cd squashfs-root
4. chrome-sandbox 파일 소유권 및 권한 설정
sudo chown root:root chrome-sandbox
sudo chmod 4755 chrome-sandbox
5. AppRun 파일 실행해서 한글 써지는지 테스트
./AppRun
문제 원인
Electron 기반의 AppImage 애플리케이션이 안전하게 실행되기 위해서는 chrome-sandbox 파일의 SUID 비트가 설정되어 있어야 합니다. SUID 비트를 설정하면, 해당 파일이 실행될 때 파일 소유자의 권한으로 실행됩니다. 이를 통해 보안상의 문제를 예방하고, 필요한 시스템 자원에 접근할 수 있도록 합니다.
4번 명령어가 뭔지 물어봤더니 chatgpt가 알려준 내용.
내가 중간에 extract를 한 번 시도해봤었는지 아닌지 기억이 잘 안 남.
애초에 appimage extract해서 깔았으면 아무것도 안해도 바로 한글 입력됐던거 아닌지 의심됨.
'🔨 Tools > Ubuntu' 카테고리의 다른 글
Ubuntu : Unity Hub 설치 후 로그인 안됨 (0) | 2024.07.22 |
---|---|
Ubuntu : 재생/일시정지 단축키 설정 (0) | 2024.07.11 |
Ubuntu : 앱 아이콘 남은거 삭제하는 방법 (0) | 2024.06.17 |