Termux
Original author(s) | Fredrik Fornwall |
---|---|
Initial release | 30 May 2015 |
Stable release | 0.118.1[1] (16 June 2024 ) |
Repository | https://github.com/termux/termux-app |
Written in | Java, C, C++ |
Operating system | Android |
Platform | x86-64, ARM64, i686, ARMv7 |
Size | 105 MB |
Type | Terminal Emulator, Command-line interface |
License | GPLv3 only |
Website | termux |
Termux is a free and open-source terminal emulator for Android which allows for running a Linux environment on an Android device. Termux installs a minimal base system automatically; additional packages are available using its package manager, based on Debian's. [2]
Most commands available in Linux are accessible in Termux, as well as built-in Bash commands. There are several other shells available, such as Zsh and tcsh.[3]
Overview
[edit]Packages are cross-compiled with Android NDK and have compatibility patches to get them working on Android. Since all files are installed in the application directory, rooting is not required.[4]
There are more than one thousand packages available, and users can submit requests for new ones. Alternatively, packages can be compiled from source, as Termux supports a variety of build tools including CMake, Meson, GNU Autotools, as well as compilers for C++, Rust, Go, Swift, and other programming languages. Termux can also install interpreters for languages like Ruby, Python, and JavaScript.
Terminal-based text editors such as Emacs and Vim can be installed. It is also possible to execute GUI applications in Termux by using a VNC server and installing a desktop environment (Xfce, LXQt, MATE) or window manager.[5]
Another popular use case for Termux is its ability to run containers of various Linux distributions which would normally use the chroot
command without requiring root privileges by using PRoot.[6] This provides access to many more packages through the package manager of the distribution of choice than would directly be accessible in Termux, though popular application container formats such as Flatpak and Snap can't be used without root access as they require filesystem mounting permissions.
User interface
[edit]Termux's user interface is fairly simple, only displaying the extra keys row and the terminal output. Color scheme and font can be changed through Termux: Styling.
The extra-keys row can also be customized. Users can add more function keys and controls by editing ~/.termux/termux.properties
.
Termux has mouse/touch support which can be used to interact with programs such as htop and other ncurses-based applications. Scrolling is done by swiping up or down in the terminal buffer.
Configuration
[edit]Users configure Termux by editing ~/.termux/termux.properties
.
Add-ons
[edit]Termux also includes 7 add-ons:
- Termux:API: exposes Android functionality to CLI applications
- Termux:Styling: allows changing the color scheme and font of the terminal
- Termux:Boot: executes Termux commands at boot
- Termux:GUI: allows for some Termux apps to have a GUI using default Android resources; does not work with X11/Wayland apps
- Termux:Widget: lets users run scripts in a dedicated widget or a shortcut in the Home screen
- Termux:Float: runs terminal session in a floating window
- Termux:Tasker: integrates Tasker with Termux
Add-ons must be installed from the same source as the application so that the same User ID is used.
History
[edit]Termux was initially released in 2015. Support for requesting packages and features was added through GitHub issues in the app's repository. People can also contribute to the project by adding new features and packages.
In January 2020, the Termux development team ended support for devices running Android 5-6, making Android version 7 the minimum OS requirement.
Termux v0.101
was the last version to be updated in the Google Play Store. Since November 2020, Google Play has enforced apps targeting API level 29, which breaks the execution of binaries in private application directories. According to Google:
Untrusted apps that target Android 10 cannot invoke
exec()
on files within the app's home directory. This execution of files from the writable app home directory is a W^X violation. Apps should load only the binary code that's embedded within an app's APK file.[7]
The Termux development team suggests moving to F-Droid in order to continue getting updates, as F-Droid does not impose such restrictions. It is also possible to download APK files from the project's GitHub repository.
In May 2021, Bintray, which had been the primary host for the Termux packages, shut down its services.[8] Termux migrated to Hetzner, another hosting service.[9]
Installation
[edit]The installation process extracts the bootstrap archive from the APK file, sets correct permissions for the executable, and sets up directories like the home directory. The Play Store version of Termux isn't being updated anymore, users are encouraged to install Termux from F-Droid or GitHub in order to receive latest updates.
Package management and distribution
[edit]Packages in Termux are installed through the application's package manager (pkg
) and use the .deb format. However, normal Debian packages cannot be installed as Termux is not FHS compliant.[10] Users can also build and submit packages.
Package availability
[edit]Termux has more than 1000 packages available as of 2021.
Package repositories
[edit]Termux has 3 repositories available. Repositories included in the default Termux bootstrap installation include:
main
is the main repository containing all CLI utilities and other popular Linux tools and language compilers/interpreters.x11-repo
contains X11-based packages and graphical applications.root-repo
contains packages useful for rooted devices. Some of these packages can be used without root, but functionality may be limited.
References
[edit]- ^ "Release 0.118.1". 16 June 2024. Retrieved 19 June 2024.
- ^ Seth Kenlon (August 11, 2020). "Use a Linux terminal on your Android phone". opensource.com. Retrieved August 17, 2021.
- ^ "ZSH - Termux Wiki". Termux. July 30, 2020. Retrieved August 17, 2021.
- ^ "The Termux Wiki". Termux. July 30, 2021. Retrieved August 17, 2021.
- ^ "Graphical Environment - Termux Wiki". Termux. July 30, 2021. Retrieved August 17, 2021.
- ^ termux/proot-distro, Termux, 2024-11-03, retrieved 2024-11-03
- ^ "Behavior changes: apps targeting API 29+". Android Developers. Retrieved 2021-12-01.
- ^ "Into the Sunset: Bintray, JCenter, GoCenter, and ChartCenter". JFrog. 2021-02-03. Retrieved 2021-12-01.
- ^ "Termux". Termux. Retrieved 1 June 2023.
- ^ "Differences from Linux - Termux Wiki". termux.com. 30 July 2021. Retrieved 18 August 2021.
External links
[edit]- Media related to Termux at Wikimedia Commons
- Official website
- Termux Android package at the F-Droid repository
- Termux on GitHub
- Termux packages on GitHub
- Termux wiki
- Download Termux APK Latest Version