-
-
Notifications
You must be signed in to change notification settings - Fork 27
Build Instructions ko
Kevin Kim edited this page Aug 16, 2025
·
1 revision
Nimf는 Docker 기반 통합 빌드 시스템을 제공하여 모든 Linux 배포판에서 일관된 빌드 환경을 제공합니다.
# 특정 배포판용 빌드
./scripts/build-docker.sh ubuntu.2404
./scripts/build-docker.sh debian.bookworm
./scripts/build-docker.sh fedora.latest
./scripts/build-docker.sh arch
# ARM64 빌드
./scripts/build-docker.sh ubuntu.2404.arm64
./scripts/build-docker.sh debian.bookworm.arm64
./scripts/build-docker.sh fedora.latest.arm64
# 모든 환경에서 테스트 빌드
./scripts/build-docker.sh --all
# 추가 옵션들
./scripts/build-docker.sh ubuntu.2404 --interactive # 빌드 후 셸 실행
./scripts/build-docker.sh debian.trixie --clean # 기존 이미지 삭제 후 빌드# 소스에서 직접 빌드
git clone --recurse-submodules https://github.com/hamonikr/nimf
cd nimf
./autogen.sh
./configure --prefix=/usr --enable-gtk4 --enable-bundled-libhangul
make -j$(nproc)
sudo make install- 입력 엔진: 한국어(내장 libhangul), 일본어(anthy), 중국어(rime)
- 클라이언트 모듈: GTK2/3/4, Qt5/6 완전 지원
- 서비스 모듈: ayatana-appindicator, 향상된 Wayland, XIM
- 개발 파일: 헤더, 라이브러리, pkg-config 파일
- 100+ 언어: m17n 기반 다국어 입력 엔진
- 선택적 설치: 필요한 경우에만 설치
dist/
├── ubuntu.2404/ # Ubuntu 24.04 패키지
├── debian.bookworm/ # Debian Bookworm 패키지
├── debian.trixie/ # Debian Trixie 패키지
├── fedora.latest/ # Fedora 패키지
├── opensuse/ # openSUSE 패키지
└── arch/ # Arch Linux 패키지
| 배포판 | 아키텍처 | 패키지 형식 | 상태 | 빌드 방법 |
|---|---|---|---|---|
| Ubuntu 22.04+ | x86_64 | .deb | ✅ 안정 | Docker |
| Ubuntu 24.04+ | x86_64, ARM64 | .deb | ✅ 안정 | Docker |
| Debian Bookworm | x86_64, ARM64 | .deb | ✅ 안정 | Docker |
| Debian Trixie | x86_64, ARM64 | .deb | ✅ 안정 | Docker |
| Debian Sid | x86_64 | .deb | ✅ 안정 | Docker |
| Fedora Latest | x86_64, ARM64 | .rpm | ✅ 안정 | Docker |
| openSUSE Leap 15.6 | x86_64, ARM64 | .rpm | ✅ 안정 | Docker |
| Arch Linux | x86_64 | .pkg.tar.zst | ✅ 안정 | Docker |
# 빌드만 수행 (패키지 생성 안함)
./scripts/build-docker.sh ubuntu.2404 --build-only
# 패키지만 생성 (빌드 스킵)
./scripts/build-docker.sh debian.bookworm --package-only
# 빌드 후 대화형 셸 실행
./scripts/build-docker.sh fedora.latest --interactive
# 기존 이미지 삭제 후 새로 빌드
./scripts/build-docker.sh arch --clean
# 모든 환경에서 테스트
./scripts/build-docker.sh --all
# 도움말 보기
./scripts/build-docker.sh --helpsudo apt install build-essential devscripts debhelper autoconf automake \
libglib2.0-dev intltool gtk-doc-tools libgtk-3-dev libgtk2.0-dev \
qtbase5-dev qt6-base-dev libayatana-appindicator3-dev librsvg2-bin \
libhangul-dev anthy libxkbcommon-dev libxklavier-dev libm17n-dev \
m17n-db librime-devgit clone https://github.com/hamonikr/nimf.git
cd nimf
debuild -b -uc -us
# 패키지 설치 (v1.4.0 모듈형 구조)
cd ..
sudo dpkg -i nimf_*.deb
# 다국어 지원 추가 (선택사항)
sudo dpkg -i nimf-i18n_*.deb
# 입력기 설정
im-config -n nimf# Ubuntu 22.04에서는 반드시 모든 패키지를 최신으로 업데이트 후 빌드
sudo apt update && sudo apt upgrade -y
# qtbase5-private-dev 패키지 충돌 방지# 특정 브랜치 사용 (Ubuntu 21.10 이전 버전)
git clone -b before-ubuntu21.10 https://github.com/hamonikr/nimf.git
# 의존성 자동 설치
sudo mk-build-deps --install debian/control
# 또는 수동 설치
sudo apt install -y libglib2.0-dev intltool libgtk-3-dev libgtk2.0-dev \
qtbase5-dev qtbase5-private-dev libappindicator3-dev librsvg2-bin \
libhangul-dev libanthy-dev anthy librime-dev libxkbcommon-dev \
libwayland-dev wayland-protocols libxklavier-dev libm17n-dev m17n-db \
gtk-doc-tools devscripts build-essential debhelper
cd nimf
debuild -b -uc -ussudo dnf install anthy-devel gcc-c++ glib2-devel gtk-doc gtk2-devel \
gtk3-devel intltool libappindicator-gtk3-devel libhangul-devel \
librime-devel librsvg2-tools libtool libxkbcommon-devel \
libxklavier-devel m17n-db-devel m17n-lib-devel qt5-qtbase-devel \
qt5-qtbase-private-devel qt6-qtbase-devel qt6-qtbase-private-devel \
wayland-devel wayland-protocols-devel rpm-buildgit clone https://github.com/hamonikr/nimf.git
cd nimf
# RPM 빌드 스크립트 사용 또는 Docker 빌드 권장
./build.sh --docker fedorasudo pacman -S base-devel git glib2 gtk3 gtk2 qt5-base qt6-base \
libappindicator-gtk3 librsvg noto-fonts-cjk libhangul anthy \
librime libxkbcommon wayland libxklavier m17n-lib m17n-db gtk-docgit clone https://github.com/hamonikr/nimf.git
cd nimf
# makepkg.conf 수정 (오류 방지)
sudo sed -i 's/CFLAGS=.*/CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wno-error=deprecated-declarations"/' /etc/makepkg.conf
makepkg -s
sudo pacman -U nimf-*.pkg.tar.zst
# 환경 변수 설정
echo 'export GTK_IM_MODULE=nimf
export QT4_IM_MODULE="nimf"
export QT_IM_MODULE=nimf
export XMODIFIERS="@im=nimf"
nimf' >> ~/.xprofilesudo zypper install gcc-c++ glib2-devel gtk2-devel gtk3-devel \
libqt5-qtbase-devel libappindicator3-devel librsvg-devel \
libhangul-devel anthy-devel librime-devel libxkbcommon-devel \
wayland-devel libxklavier-devel m17n-lib-devel gtk-doc rpm-build# HamoniKR 저장소 추가
wget -qO- https://update.hamonikr.org/add-update-repo.apt | sudo -E bash -
# 패키지 설치
sudo apt install nimf nimf-libhangul
# 전체 언어 지원
sudo apt install libnimf1 nimf nimf-anthy nimf-dev nimf-libhangul nimf-m17n nimf-rime
im-config -n nimf# 추가 의존성 설치
sudo apt install fakeroot libgtk-3-bin
# 빌드 시간: 약 40분 이상 소요
git clone https://github.com/hamonikr/nimf.git
cd nimf
debuild -b -uc -us
# 설치
cd ..
sudo dpkg -i libnimf1_*.deb nimf_*.deb nimf-libhangul_*.deb
im-config -n nimf
reboot# 특별한 ARM 브랜치 사용
git clone -b manjaro-arm --single-branch https://github.com/hamonikr/nimf.git
# 의존성 설치
sudo pacman -S meson ninja qt5-tools
# 빌드
cd nimf/manjaro-arm
makepkg -s
# 설치
sudo pacman -U nimf-*.pkg.tar.xz
# 환경 설정
echo 'export GTK_IM_MODULE=nimf
export QT4_IM_MODULE="nimf"
export QT_IM_MODULE=nimf
export XMODIFIERS="@im=nimf"
nimf' >> ~/.xprofile
sudo rebootgit clone --recurse-submodules https://github.com/hamonikr/nimf.git
cd nimf
./autogen.sh
./configure --prefix=/usr --enable-gtk-doc --enable-bundled-libhangul
make -j$(nproc)
sudo make install# 기본 옵션
--prefix=/usr # 설치 경로
--disable-hardening # 하드닝 비활성화
# 입력 엔진 토글
--disable-nimf-libhangul # 한국어 입력 비활성화
--disable-nimf-anthy # 일본어 입력 비활성화
--disable-nimf-m17n # 다국어 입력 비활성화
--disable-nimf-rime # 중국어 입력 비활성화
# UI 툴킷 지원
--enable-gtk4 # GTK4 IM 모듈 빌드
--enable-qt6 # Qt6 지원 활성화
--with-gtk=3|4 # nimf-settings의 GTK 버전 선택
# 플랫폼 지원
--disable-x11 # Wayland 전용 빌드 (X11 비활성화)
# 시스템 통합
--with-im-config-data # im-config 데이터 설치
--with-imsettings-data # imsettings 데이터 설치im-config -n nimfimsettings-switch nimf# ~/.bashrc 또는 ~/.zshrc에 추가
export GTK_IM_MODULE=nimf
export QT4_IM_MODULE=nimf
export QT_IM_MODULE=nimf
export XMODIFIERS=@im=nimf
# 시스템 전역 설정 (/etc/environment)
sudo tee -a /etc/environment << EOF
GTK_IM_MODULE=nimf
QT4_IM_MODULE=nimf
QT_IM_MODULE=nimf
XMODIFIERS=@im=nimf
EOF-
gettext 버전 오류
AM_GNU_GETTEXT_VERSION 오류 발생 시→ 자동으로 해결됨 (
autogen.sh에서 자동 수정) -
Qt6 관련 오류
Qt6 라이브러리를 찾을 수 없음→
--disable-qt6옵션 사용 또는 Qt6 패키지 설치 -
Docker 권한 오류
sudo usermod -aG docker $USER newgrp docker -
Ubuntu 22.04 패키지 충돌
# 모든 패키지를 최신으로 업데이트 후 빌드 sudo apt update && sudo apt upgrade -y
-
Manjaro 컴파일 오류
# makepkg.conf에서 deprecated-declarations 경고 무시 sudo sed -i 's/CFLAGS=.*/CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wno-error=deprecated-declarations"/' /etc/makepkg.conf
# 상세 로그 출력
./build.sh --verbose
# Docker 빌드 로그 확인
docker logs nimf-build-ubuntu
# 수동 디버그 빌드
G_MESSAGES_DEBUG=nimf ./configure --enable-debug
make -j$(nproc)# Ubuntu/Debian
sudo apt update && sudo apt install -f
# Fedora
sudo dnf check-update && sudo dnf install --best --allowerasing
# Arch Linux
sudo pacman -Syu# Ubuntu/Debian
sudo apt purge '*nimf*'
sudo apt autoremove
# Fedora
sudo dnf remove nimf
# Arch Linux
sudo pacman -Rns nimfsudo make uninstall # 소스 디렉토리에서rm -rf ~/.config/nimf
sudo rm -rf /etc/nimf- Installation Guide - 빌드된 패키지 설치 방법
- Configuration - Nimf 설정 및 사용법
- Troubleshooting - 문제 해결 가이드