리눅스 AppImage 실행 및 아이콘 추가

2025. 2. 7. 20:51·리눅스

리눅스의 appimage는 파일 형태로 프로그램을 실행할 수 있는 형태이다.
따라서 설치를 할 필요가 없고, 이 파일의 위치를 자유롭게 옮겨도 바로 실행가능하다.
또한 삭제도 이 파일하나만 삭제하면 되기 때문에 관리하기 편하다는 장점이 있다.

1. Fuse 설치

fuse를 설치하지 않으면 다음과 같이 오류가 발생한다.

dlopen(): error loading libfuse.so.2 , AppImages require FUSE to run

Ubuntu 22.04 이하 버전은

sudo apt-get update
sudo apt-get install fuse libfuse2

Ubuntu 22.4 이상 버전은 아래 명령어를 실행해 주자.

sudo apt update
sudo apt install libfuse2

2. 권한부여

chmod +x {filename}.AppImage

3. 프로그램 실행

./{filename}.AppImage

+) GUI에서 실행

우클릭> 속성> 권한> 파일을 프로그램으로 실행허용을 체크해 주고, 다시 한번 파일을 더블클릭

4. 바로가기 생성

만약 이렇게 파일을 클릭해서 실행시키는 것이 아닌, 설치 프로그램처럼 실행시키고 싶다면,

sudo mv {path}/{filename}.AppImage /opt/{filename}/{filename}.AppImage
sudo nano /usr/share/applications/{filename}.desktop

위 명령어를 통해 먼저 AppImage 파일을 적절한 경로에 옮겨주고(꼭 저 경로일 필요 없으나 보통 저렇게 하는 게 관리하기 편함)
.desktop파일을 생성해준다. .desktop 파일 안에는 아래와 같은 형식으로 적어준다 .({} 부분을 자신이 바꾸면 된다. )

[Desktop Entry]
Name={APP_NAME}                  # ex) obsidian
Comment={APP_DESCRIPTION}        # ex) editor
Exec={AppImage_PATH}             # ex) /opt/obsidian/obsidian.AppImage
Icon={APP_ICON_PATH}             # ex) /home/user/obsidian.png
Type=Application              
Categories={APP_CATEGORIES}      # ex) IDE
Terminal=false

다 작성하고는 나와서, 아래 명령어를 통해 재설정해주면 된다.

sudo update-desktop-database

5. 아이콘 등록

위에서 .desktop을 작성할 때 Icon 경로를 작성하는데 자신이 원하는 Icon을 등록해도 되고,

이 AppImage에 내장되어 있는 원래 아이콘 파일을 등록시킬 수도 있다.

./{YOUR_PATH}.AppImage --appimage-extract

자신이 아까 옮겨둔 AppImage경로 뒤에 명령어를 사용하여 image를 추출할 수 있다.

위의 코드를 사용하면 squashfs-root 라는 폴더가 해당 폴더에 생성되고

find squashfs-root -name "*.png"
find squashfs-root -name "*.svg"

위의 명령어로 png나 svg형식의 파일이 쭉 나올 것이다.
그중 자신이 원하는 파일의 이름하나만 기억하고 해당 아이콘을 등록하면 된다.

sudo cp {AppIconName}.png /usr/share/icons/hicolor/128x128/apps/{AppIconName}.png
sudo gtk-update-icon-cache /usr/share/icons/hicolor

위의 명령어로 자신이 원하는 아이콘을 경로에 등록해주고, .desktop 파일에 아이콘 경로가 아닌 방금 위의 코드에서 자신이 등록한 AppIconName을 등록해 주면 된다.

이후, 아까 extract 한 squashfs-root 폴더는 삭제해 줘도 된다.

[Desktop Entry]
Name={APP_NAME}
Comment={APP_DESCRIPTION}
Exec={AppImage_PATH}
Icon={AppIconName}  # 확장자 없이 위에서 정한 파일 이름
Type=Application
Categories={APP_CATEGORIES}
Terminal=false
728x90

'리눅스' 카테고리의 다른 글

Ubuntu 22.04 vscode 한글 오류  (0) 2025.03.19
sudo 명령어 timeout, nopasswd  (0) 2025.02.07
terminals database is inaccessible  (0) 2024.11.07
Linux google-drive mount(google-drive-ocamlfuse)  (0) 2024.10.14
Failed to initialize NVML: Driver/library version mismatch  (0) 2024.10.14
'리눅스' 카테고리의 다른 글
  • Ubuntu 22.04 vscode 한글 오류
  • sudo 명령어 timeout, nopasswd
  • terminals database is inaccessible
  • Linux google-drive mount(google-drive-ocamlfuse)
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (471)
      • 알쓸신잡 (79)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    이것이취업을위한코딩테스트다
    백준
    DFS
    나동빈
    dp
    이분탐색
    그리디
    파이썬
    이코테
    BFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3

HOME

HOME

상단으로

티스토리툴바