Termux는 Android 터미널 애플리케이션이자 Linux 환경입니다.
이 저장소는 앱 자체(사용자 인터페이스 및 터미널 에뮬레이션)용입니다. 앱 내부에 설치 가능한 패키지는 termux/termux-packages를 참조하세요.
Termux 패키지 관리에 대한 빠른 방법은 패키지 관리에서 확인할 수 있습니다. 또한 apt
또는 pkg
명령을 실행할 때 repository is under maintenance or down
오류를 수정하는 방법에 대한 정보도 있습니다.
Termux Android 애플리케이션 관리자를 찾고 있습니다.
주의사항: Termux는 Android 12 이상에서는 불안정할 수 있습니다. Android OS는 32개(결합된 모든 앱에 대해 제한이 있음)를 초과하는 모든 (가상) 프로세스를 종료하고 과도한 CPU를 사용하는 모든 프로세스도 종료합니다. 실제로 쉘 프로세스를 직접 종료하지 않고도 터미널에 [Process completed (signal 9) - press Enter]
메시지가 나타날 수 있습니다. 관련 문제 #2366, 이슈 추적기, 팬텀 캐시 및 빈 프로세스 문서와 팬텀 트리밍 및 과도한 CPU 사용 프로세스를 비활성화하는 방법에 대한 이 TLDR 설명을 확인하세요. 적절한 문서 페이지는 나중에 추가될 것입니다. 킬링을 비활성화하는 옵션은 Android 12L 또는 13에서 사용할 수 있으므로 Android 11을 사용하는 경우, 특히 루팅되지 않은 경우 위험을 감수하고 업그레이드하세요.
핵심 Termux 앱은 다음과 같은 선택적 플러그인 앱과 함께 제공됩니다.
최신 버전은 v0.118.1
입니다.
주의사항: 여기에 보고된 전세계적으로 읽을 수 있는 중요한 취약점을 포함하여 다양한 버그 수정을 위해 최대한 빨리 v0.118.0
이상으로 업데이트하는 것이 좋습니다. Google Play의 Termux에 관한 정보는 아래를 참조하세요.
Termux는 앱과 패키지를 완벽하게 지원하는 Android >= 7
에 대해서만 아래 나열된 다양한 소스를 통해 얻을 수 있습니다.
2020-01-01 v0.83
에서 Android 5
및 6
에 대한 앱 및 패키지 지원이 중단되었지만 GitHub 소스를 통해 2022-05-24에 패키지 업데이트 지원 없이 앱에 대해서만 다시 추가되었습니다. . 자세한 내용은 여기를 확인하세요.
다양한 소스의 APK 파일은 다양한 서명 키로 서명됩니다. Termux
앱과 모든 플러그인은 동일한 sharedUserId
com.termux
사용하므로 기기에 설치된 모든 APK가 함께 작동하려면 동일한 서명 키로 서명되어야 하므로 모두 동일한 소스에서 설치되어야 합니다. 이를 함께 혼합하려고 시도하지 마십시오. 즉, F-Droid
의 앱이나 플러그인과 GitHub
와 같은 다른 소스의 다른 앱이나 플러그인을 설치하려고 시도하지 마십시오. Android 패키지 관리자는 일반적으로 서명이 다른 APK 설치를 허용하지 않으며 App not installed
, Failed to install due to an unknown error
, INSTALL_FAILED_UPDATE_INCOMPATIBLE
, INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
, signatures do not match previously installed version
등과 같은 설치 오류가 발생합니다. 루트나 사용자 정의 ROM을 사용하면 제한을 우회할 수 있습니다.
다른 소스에서 설치하려면 먼저 기기에서 기존 Termux 또는 해당 플러그인 앱 APK를 모두 제거한 다음 동일한 새 소스에서 새 APK를 모두 설치해야 합니다. 자세한 내용은 제거 섹션을 확인하세요. Termux를 다른 소스에서 다시 설치한 후 복원할 수 있도록 제거하기 전에 Termux 백업을 고려할 수도 있습니다.
다음 단락에서 "부트스트랩"은 작업 셸 환경을 시작하기 위해 termux-app
자체와 함께 제공되는 최소 패키지를 나타냅니다. 해당 지퍼는 여기에서 만들어지고 릴리스됩니다.
Termux 애플리케이션은 여기에서 F-Droid
로부터 얻을 수 있습니다.
Termux를 설치하기 위해 F-Droid
앱을 다운로드할 필요는 없습니다 ( Download F-Droid
링크를 통해). 각 버전 섹션 하단에 있는 Download APK
링크를 클릭하면 사이트에서 직접 Termux APK를 다운로드할 수 있습니다.
GitHub
에 업데이트가 출시된 후 F-Droid
에서 업데이트를 사용할 수 있게 되기까지 일반적으로 며칠(또는 일주일 이상)이 소요됩니다. F-Droid
릴리스는 새로운 GitHub
릴리스가 감지되면 F-Droid
에 의해 구축 및 게시됩니다. Termux 관리자는 F-Droid
에서 Termux 앱의 구축 및 게시를 제어할 수 없습니다 . 또한 Termux 관리자는 F-Droid
릴리스의 APK 서명 키에 액세스할 수 없으므로 F-Droid
릴리스와 호환되는 APK를 GitHub
에서 직접 릴리스할 수 없습니다.
F-Droid
앱은 종종 업데이트를 알리지 않을 수 있으며 업데이트를 확인하려면 앱의 Updates
탭에서 풀다운 스와이프 작업을 수동으로 수행해야 합니다. 앱의 배터리 최적화가 비활성화되어 있는지 확인하세요. 자세한 방법은 https://dontkillmyapp.com/을 확인하세요.
지원되는 모든 아키텍처에서 작동하는 범용 APK만 출시됩니다. APK 및 부트스트랩 설치 크기는 ~180MB
입니다. F-Droid
아키텍처별 APK를 지원하지 않습니다.
Termux 애플리케이션은 GitHub
에서 버전이 >= 0.118.0
GitHub Releases
또는 GitHub Build Action
워크플로에서 얻을 수 있습니다. android >= 7
의 경우 apt-android-7
변형만 설치하세요. Android 5
및 6
의 경우 apt-android-5
변형만 설치하세요.
GitHub Releases
용 APK는 릴리스의 Assets
드롭다운 아래에 나열됩니다. 새 버전이 출시되면 자동으로 첨부됩니다.
GitHub Build
작업 워크플로용 APK는 워크플로 실행의 Artifacts
섹션에 나열됩니다. 이는 리포지토리에 대한 커밋/푸시가 수행될 때마다 생성되며 릴리스를 기다리지 않고 최신 기능을 즉시 사용해 보거나 끌어오기 요청을 테스트하려는 사용자가 사용할 수 있습니다. 작업 워크플로의 경우 Artifacts
링크를 활성화/클릭하려면 GitHub
계정에 로그인 해야 합니다. GitHub
앱을 사용하는 경우 인앱 브라우저에 로그인되지 않을 수 있으므로 GitHub 계정이 로그인된 Chrome 또는 Firefox와 같은 브라우저에서 워크플로 링크를 열어야 합니다.
두 가지 모두에 대한 APK는 debuggable
하고 서로 호환되지만 다른 소스와는 호환되지 않습니다.
범용 및 아키텍처별 APK가 모두 출시되었습니다. APK 및 부트스트랩 설치 크기는 범용을 사용하는 경우 ~180MB
이고 특정 아키텍처를 사용하는 경우 ~120MB
입니다. 자세한 내용은 여기를 확인하세요.
보안 경고 : GitHub의 APK 파일은 커뮤니티와 공유된 테스트 키로 서명됩니다. 이것은 공식 개발자 키가 아니며 누구나 이를 사용하여 자체 테스트용 릴리스를 생성할 수 있습니다. https://github.com/termux/termux-app을 제외한 다른 곳에서 얻은 Termux GitHub 빌드를 사용할 때는 매우 주의하십시오. 누구나 이를 사용하여 GitHub 빌드에 설치할 수 있는 악성 Termux 업데이트를 위조할 수 있습니다. Telegram이나 기타 소셜 미디어를 통해 배포되는 Termux 빌드를 설치하는 것에 대해 다시 생각해 보세요. 귀하의 장치가 악성 코드에 걸리면 우리는 귀하를 도울 수 없습니다.
테스트 키는 @termux를 가장하는 데 사용되어서는 안 되며 어쨌든 이를 위해 사용할 수 없습니다. 이 키는 우리가 신뢰하지 않으며 사용자 생성 콘텐츠에서 사용을 감지하는 것은 매우 쉽습니다.
Alias name: alias
Creation date: Oct 4, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=APK Signer, OU=Earth, O=Earth
Issuer: CN=APK Signer, OU=Earth, O=Earth
Serial number: 29be297b
Valid from: Wed Sep 04 02:03:24 EEST 2019 until: Tue Oct 26 02:03:24 EEST 2049
Certificate fingerprints:
SHA1: 51:79:55:EA:BF:69:FC:05:7C:41:C7:D3:79:DB:BC:EF:20:AD:85:F2
SHA256: B6:DA:01:48:0E:EF:D5:FB:F2:CD:37:71:B8:D1:02:1E:C7:91:30:4B:DD:6C:4B:F4:1D:3F:AA:BA:D4:8E:E5:E1
Signature algorithm name: SHA1withRSA (disabled)
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
현재 Android 11 이상 기기용 Google Play에서 사용할 수 있는 Termux 빌드가 있으며 정책 요구사항을 통과하기 위해 광범위한 조정이 이루어졌습니다. 이는 개발 중이며 안정적인 F-Droid 빌드에 비해 누락된 기능과 버그(상태 업데이트는 여기 참조)가 있습니다. 이것이 바로 위에서 언급한 대로 F-Droid 또는 GitHub 빌드를 계속 사용해야 하는 대부분의 사용자가 이유입니다.
현재 Google Play는 F-Droid 설치를 업데이트하려고 시도합니다. sharedUserId가 제거되었으므로 업데이트가 계속 실패합니다. 계획된 0.118.1 F-Droid 릴리스에서는 PlayStore 앱에 사용되는 것보다 더 높은 버전 코드를 설정하여 이 문제를 해결할 것입니다. 한편, Google Play가 다운로드를 시도한 후 기존 설치 위에 Google Play 릴리스를 설치하는 데 실패하는 것을 방지하려면 Google Play에서 Termux 앱 페이지를 열고 오른쪽 상단에 있는 점 3개 옵션 버튼을 클릭한 다음 비활성화할 수 있습니다. 자동 업데이트 토글을 활성화합니다. 그러나 Termux 앱 업데이트는 PlayStore 앱 업데이트 목록에 계속 표시됩니다.
Google Play 빌드 테스트에 도움을 주고 싶거나 다른 소스에서 Termux를 설치할 수 없는 경우 별도의 저장소(https://github.com/termux-play-store/)에서 빌드되었다는 점에 유의하세요. 발생한 문제는 해당 저장소에만 국한될 수 있으므로 문제를 보고하는 것이 좋습니다.
사용자가 더 이상 장치에 Termux를 설치하는 것을 원하지 않거나 다른 설치 소스로 전환하는 경우 제거가 필요할 수 있습니다. 제거하기 전에 Termux 백업을 고려할 수도 있습니다.
Termux를 완전히 제거하려면 기존 Termux 또는 Termux 앱 및 플러그인에 나열된 해당 플러그인 앱 APK를 모두 제거해야 합니다.
Android Settings
-> Applications
으로 이동한 다음 해당 앱을 찾으세요. 장치에서 사용 가능한 경우 검색 기능을 사용하고 애플리케이션 목록에서 termux
검색할 수도 있습니다.
플러그인을 설치하지 않았다고 생각되더라도 Android 설정의 애플리케이션 목록을 살펴보고 다시 확인하는 것이 좋습니다.
모든 커뮤니티 링크는 여기에서 확인할 수 있습니다.
주요 내용은 다음과 같습니다.
RUN_COMMAND
의도를 통해 다른 앱의 Termux에서 명령 실행VTE(libvte): 주로 gnome-terminal에서 사용되는 GTK+용 터미널 에뮬레이터 위젯입니다. 소스, 공개 문제 및 모든(닫힌 문제 포함) 문제입니다.
iTerm 2: OS X 터미널 애플리케이션. 소스, 문제 및 문서(iTerm2 독점 이스케이프 코드 포함)
Konsole: KDE 터미널 응용 프로그램입니다. 소스, 특히 테스트는 Bugs and Wishes입니다.
hterm: Chromium의 JavaScript 터미널 구현입니다. 테스트 및 Google 그룹을 포함한 소스입니다.
xterm: 터미널 에뮬레이터의 할아버지. 원천.
Connectbot: Android SSH 클라이언트. 원천
Android 터미널 에뮬레이터: Termux 터미널 처리를 기반으로 하는 Android 터미널 앱입니다. 비활성. 원천.
Termux
앱 설정 -> <APP_NAME>
-> Debugging
-> Log Level
( Termux
앱 버전 >= 0.118.0
필요)에서 적절한 logcat
Log Level
을 설정하여 Termux
앱 및 해당 플러그인의 문제를 디버깅하는 데 도움이 될 수 있습니다. Log Level
기본값은 Normal
이며 로그 수준 Verbose
현재 추가 정보를 기록합니다. 디버깅을 마친 후에는 로그 수준을 Normal
으로 되돌리는 것이 가장 좋습니다. 그렇지 않으면 일반 작업 중에 개인 데이터가 logcat
으로 전달될 수 있고, 게다가 추가 로깅으로 인해 실행 시간이 늘어나기 때문입니다.
플러그인 앱은 명령 자체를 실행하지 않지만 Termux
앱 설정 -> Termux
-> Debugging
-> Log Level
에서 설정할 수 있는 자체 로그 수준이 있는 Termux
앱에 실행 의도를 보냅니다. 따라서 모든 정보를 얻으려면 Termux
와 해당 플러그인 앱 설정 모두에 대한 로그 수준을 설정해야 합니다.
로그 수준이 설정되면 Termux
앱 터미널에서 logcat
명령을 실행하여 실시간으로 로그를 보거나(중지하려면 Ctrl+c
) logcat -d > logcat.txt
사용하여 로그 덤프를 가져올 수 있습니다. ADB
를 통해 PC에서 로그를 볼 수도 있습니다. 자세한 내용은 여기에서 공식 Android logcat
가이드를 확인하세요.
또한 사용자는 터미널의 장기 보유 옵션 메뉴 More
-> Report Issue
옵션을 사용하고 디버그 정보를 추가하기 위해 표시된 프롬프트에서 YES
선택하여 termux 파일 stat
정보 및 logcat
덤프를 자동으로 생성할 수 있습니다. 이는 다른 문제를 보고하고 디버깅하는 데 도움이 될 수 있습니다. 생성된 보고서가 너무 큰 경우 ReportActivity
의 컨텍스트 메뉴(오른쪽 상단에 있는 3개 점)에 있는 Save To File
옵션을 사용하여 대신 파일을 보거나 공유할 수 있습니다.
사용자는 문제를 보고할 때 전체 보고서(선택적으로 민감한 정보 없이)를 게시해야 합니다. 텍스트 대신 오류 보고서의 (일부) 스크린샷 으로 열린 문제는 자동으로 닫히거나 삭제될 수 있습니다.
Off
- 아무것도 기록하지 않습니다.Normal
- 오류 로깅을 시작하고, 경고 및 정보 메시지와 스택 추적을 시작합니다.Debug
- 디버그 메시지 로깅을 시작합니다.Verbose
- 자세한 메시지 로깅을 시작합니다. termux 공유 라이브러리가 v0.109
에 추가되었습니다. Termux 앱과 해당 플러그인의 공유 상수와 유틸리티를 정의합니다. Termux 앱에서 하드코딩된 모든 경로를 제거할 수 있도록 만들어졌습니다. 일부 termux 플러그인도 이 기능을 사용하고 있으며 나머지는 나중에 사용할 예정입니다. 공유할 수 있는 상수 또는 유틸리티를 사용하는 코드를 제공하는 경우 현재 존재하지 않는 경우 termux-shared
라이브러리에서 이를 정의하고 거기에서 참조하십시오. 관련 변경 로그도 업데이트하세요. 하드코딩된 값을 사용하는 풀 요청은 허용되거나 허용되어서는 안 됩니다 . Termux 앱 및 플러그인 관련 클래스는 com.termux.shared.termux
패키지 아래에 추가되고 일반 클래스는 그 외부에 추가되어야 합니다. 코드를 제공할 때 필요한 경우 termux-shared
LICENSE
도 확인하고 업데이트해야 합니다. 외부 라이브러리나 코드의 라이선스는 존중되어야 합니다.
주요 Termux 상수는 TermuxConstants
클래스에 의해 정의됩니다. 또한 Termux를 포크하거나 자신의 패키지 이름으로 빌드하는 방법에 대한 정보도 포함되어 있습니다. 패키지 이름을 변경하려면 새로운 $PREFIX
사용하여 부트스트랩 zip 패키지와 기타 패키지를 빌드해야 합니다. 자세한 내용은 패키지 빌드를 확인하세요.
플러그인 앱에서 termux 라이브러리를 가져오는 방법은 Termux 라이브러리를 확인하고, 플러그인용 termux 라이브러리를 업데이트하는 방법은 포크 및 로컬 개발을 확인하세요.
Termux 및 해당 플러그인 앱의 build.gradle
파일에 있는 versionName
major.minor.patch(-prerelease)(+buildmetadata)
형식의 의미 체계 버전 2.0.0
사양을 따라야 합니다. build.gradle
파일에 versionName
추가하고 GitHub에서 새 릴리스에 대한 태그를 생성할 때 v0.1
대신 v0.1.0
과 같은 패치 번호도 포함해야 합니다. build.gradle
파일과 attach_debug_apks_to_release
워크플로는 버전의 유효성도 검사하며, versionName
사양을 따르지 않으면 빌드/첨부 작업이 실패합니다.
커밋 메시지는 Keep a Changelog 사양에 따른 chagelog가 create-conventional-changelog
스크립트에 의해 자동으로 생성될 수 있도록 Conventional Commits 사양을 사용해야 합니다 . 사양에 대한 자세한 내용은 저장소를 확인하세요. type
과 description
의 첫 글자는 대문자여야 하며 설명은 현재형이어야 합니다. 콜론 :
뒤에 공백이 필요합니다. 획기적인 변경을 위해서는 느낌표를 추가하세요 !
콜론 앞에 :
가 있으면 chagelog에서 자동으로 강조 표시됩니다.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
아래 나열된 types
만 변경 로그 제목에 사용된 것과 정확히 동일하게 사용해야 합니다. 예를 들어 Added: Add foo
, Added|Fixed: Add foo and fix bar
, Changed!: Change baz as a breaking change
등입니다. 선택적으로 Fixed(terminal): Fix some bug
와 같이 범위를 추가할 수도 있습니다. Added
대신 add
등 다른 것을 유형으로 사용하지 마십시오.
TermuxConstants
javadocs를 확인하세요.termux-shared
라이브러리의 TermuxConstants
사용하는 것은 아니며 com.termux
값이 하드코딩되어 있으므로 수동으로 패치해야 합니다.