nyuuzyou/wikis huggingface dataset:
Node.js

Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside a web browser. Node.js lets developers use JavaScript to write command line tools and for server-side scripting—running scripts server-side to produce dynamic web page content before the page is sent to the user's web browser.
In Termux Node.js is available in current and LTS versions which can be installed by
 pkg install nodejs
 pkg install nodejs-lts
Only one of versions can be installed at a time.
Due to our infrastructure limits, we do not provide older versions of packages. If you accidentally upgraded to unsuitable NodeJS or NodeJS-LTS version and do not have backups to rollback, do not complain! We recommend doing backups of $PREFIX for developers and other people who rely on specific software versions.
== Package management ==
After installing Node.js, npm package manager will be available. Here is a quick tutorial about its usage.
Installing a new package globally:
 npm install -g {package name}
Uninstall package installed globally:
 npm uninstall -g {package name}
List packages installed globally:
 npm list -g
If you working with Node.js packages project-wide, i.e. they should not be installed into
$PREFIX, then remove command line argument -g.
In addition to npm, a Yarn package manager can be used as well. You can install
it with
 pkg install yarn
When installing Node.js packages, it is highly recommended to have a Termux packages
build-essential and python to be installed - they are needed
for building native extensions.
== Node.js package installation tips and tricks ==
It is assumed that you have build-essential and python
already installed. Some modules may require binutils to be installed, as they unable to pick LLVM utilities (e.g. llvm-ar) for some reason.
Tip: help us to collect more information about installing Node.js packages in Termux. You can also help to keep this information up-to-date, because current instructions may eventually become obsolete.
Package 	Description 	Dependencies	Special Instructions
code-server	VS Code IDE in a web browser.https://github.com/cdr/code-server	yarn 	yarn global add code-server
OCR

Available OCR (Optical Character Recognition) packages for Termux available on-the-fly are:
Package: ocrad 
Description: Optical Character Recognition program based on a feature extraction method 
Homepage:http://www.gnu.org/software/ocrad/ocrad.html
Package: ocrad-dev 
Description: Development files for ocrad 
Homepage:http://www.gnu.org/software/ocrad/ocrad.html
Package: tesseract 
Description: Tesseract is probably the most accurate open source OCR engine available 
Homepage: https://github.com/tesseract-ocr/tesseract
Package: tesseract-dev 
Description: Development files for tesseract 
Homepage: https://github.com/tesseract-ocr/tesseract
There probably are more OCR programs available as Ruby gems, Python pips, Perl cpan and similar.
= See Also =
* Other Package Managers
OTG

USB On-The-Go, often abbreviated to USB OTG or just OTG, is a specification first used in late 2001 that allows USB devices, such as tablets or smartphones, to act as a host, allowing other USB devices, such as USB flash drives, digital cameras, mice or keyboards, to be attached to them. Use of USB OTG allows those devices to switch back and forth between the roles of host and device. For instance, a mobile phone may read from removable media as the host device, but present itself as a USB Mass Storage Device when connected to a host computer.
= See Also =
* Hardware Keyboard
* Hardware Mouse
* OTG issues at Termux Packages.
OTG адаптер

USB On-The-Go, часто именуемый как USB OTG или просто - OTG, является расширением спецификации USB и позволяет подключать различные USB устройства к смартфонам или планшетам. Таким образом, если ваше устройство поддерживает USB OTG, вы можете подключить внешний накопитель, клавиатуру или мышь.
= See Also =
* Аппаратная клавиатура
* Аппаратная мышь
* OTG issues at Termux Packages.
Package Tips

Some packages are troublesome to get working or configure in Termux. Follow the individual page to get installation and configuration help.
* mariadb
* postgresql
If you are interested in resolving issues regarding packages, please post at https://github.com/termux/termux-packages/issues and search your topic before posting to avoid duplicates, please. You might even find your question answered before asking.
= See Also =
Package Management: Other PackagenManagers
Perl

Perl is a high-level, general-purpose, interpreted, dynamic programming language. It
is used for system administration, network programming, finance, bioinformatics, and
other applications. It has been nicknamed "the Swiss Army chainsaw of scripting languages"
because of its flexibility and power, and also its ugliness.
In Termux Perl can be installed by executing this command
 pkg install perl
Note that Termux provides only Perl 5 currently.
== Package management ==
Perl uses cpan utility for module management. However we recommend to
install cpanminus for installing modules easier:
 cpan App::cpanminus
Now you can install Perl modules using
 cpanm Module::Name
It is highly recommended to have build-essential Termux package to be
installed pkg install build-essential, so Perl will be able to build native extensions.
Postgresql

Create skeleton database
 mkdir -p $PREFIX/var/lib/postgresql
 initdb $PREFIX/var/lib/postgresql
Starting the database
 pg_ctl -D $PREFIX/var/lib/postgresql start
Similarly stop the database using
 pg_ctl -D $PREFIX/var/lib/postgresql stop
Create User
 $ createuser --superuser --pwprompt yourUserName
Create your database:
 $ createdb mydb
Open your database
 $ psql mydb
You will now see the promt
 mydb=#
Recover a broken environment

thumb|How to start a failsafe session within Termux.
thumb|Using a failsafe session to recover from misconfigured ~/.bashrc.
If Termux exits immediately after launch or cannot properly start shell, it is likely that your environment is broken. The cause of which is most likely a a fatal error in a dotfile read by your shell, which causes it to immediately exit. To recover from such errors Termux provides a Failsafe Session.
== Launching a Failsafe Session ==
1. Close all sessions of Termux application.
2. Either long-press the termux launcher icon and then press "failsafe" (only works on recent android versions) or long-press the "new session" button in the left drawer inside the termux app.
You are now in a Failsafe Session. It launches the default Shell of Android /system/bin/sh with access to the Termux directory. Despite the fact that Android shell is very limited, you can still save your files to /sdcard or perform some recovery steps.
== Fixing the Problem ==
Now that you have basic access to Termux you can fix the problems. If you don't know which dotfile is broken read the section about about possible broken dotfiles below. It's most likely the one you tinkered with the last. Once you have identified the broken dotfile, move it to a new name.
Example:
 mv .profile .profile.bak
Now you can try to launch a normal session again. If it still doesn't work, you'll have to check the other dotfiles again. Otherwise, since you now have access to your Termux programs again, you can edit the file with your text editor and fix the problem. After that you can move the file back to it's original location.
== Possible broken dotfiles ==
If you use bash (default) these dotfiles get loaded:
* .profile
* .bash_profile
* .bashrc
If you use zsh:
* .profile
* .zshrc
=== If you used chsh and set a broken shell ===
If you used chsh to set your default shell to something that doesn't work as a shell your environment will also be broken. In this case use the Failsafe Session to remove ~/.termux/shell and launch a new normal session.
 rm -rf /data/data/com.termux/files/home/.termux/shell
== If the problem is not with the dotfiles ==
If the problem isn't with your dotfiles, you may have a broken $PREFIX. This could have happened in various ways. Maybe there was a broken update, something crashed at the wrong time or you messed around int $PREFIX yourself. In this case, the best option is to use the nuclear option. Remove $PREFIX entirely.
 rm -rf /data/data/com.termux/files/usr
After that you can restart your Termux App completely, which will trigger a reinstallation of the default $PREFIX contents. You'll have to reinstall all your programs, but your $HOME folder remains untouched, so all your dotfiles are still there.
Ruby

Ruby is a dynamic, open source programming language with a focus on simplicity and
productivity. It has an elegant syntax that is natural to read and easy to write.
In Termux Ruby can be installed by executing
 pkg install ruby
Due to our infrastructure limits, we do not provide older versions of packages. If you accidentally upgraded to unsuitable Ruby version and do not have backups to rollback, do not complain! We recommend doing backups of $PREFIX for developers and other people who rely on specific software versions.
== Package management ==
After installing ruby, gem package manager will be available. Here is a quick
tutorial about its usage.
Installing a new gem:
 gem install {package_name}</code>
Uninstalling gem:
 gem uninstall {package name}
Listing installed gems:
 gem list --local
Launching a local documentation and gem repository server:
 gem server
When installing Ruby gems, it is highly recommended to have a package build-essential
to be installed - some gems compile native extensions during their installation.
== Gem installation tips and tricks ==
Tip: help us to collect more information about installing Ruby gems in Termux. You can also help to keep this information up-to-date, because current instructions may eventually become obsolete.
Package 	Description 	Dependencies 	Special Instructions
delayed_job 	Database based asynchronous priority https://github.com/collectiveidea/delayed_job 	 	
ffi 	A gem for loading dynamically-linked native libraries, binding functions within them https://github.com/ffi/ffi	 	
jekyll 	Tool for creating static websites https://github.com/jekyll/jekyll 	ruby clang make libffi 	
letter_opener	Preview mail in the browser instead of sending https://github.com/ryanb/letter_opener 	 	
lolcat 	Prints rainbow colored text https://github.com/busyloop/lolcat 	 	
mina 	Blazing fast application deployment tool https://github.com/mina-deploy/mina 	 	
nokogiri 	XML and HTML library https://github.com/sparklemotion/nokogiri 	libxslt libiconv pkg-config	gem install nokogiri -- --use-system-libraries
paperclip 	Easy file attachment management for ActiveRecord https://github.com/thoughtbot/paperclip 	 	
thin 	A very fast & simple Ruby web server https://github.com/macournoyer/thin 	ruby make 	gem install thin -- --use-system-libraries
Sharing Data

Files stored in the home directory in Termux is not accessible to other applications by default. This is a limitation of Android itself.
As a workaround, you can use termux-open available in termux-tools package to share files with read access.
 $ termux-open -h
 Usage: termux-open [options] path-or-url
 Open a file or URL in an external app.
 --send if the file should be shared for sending
 --view if the file should be shared for viewing (default)
 --chooser if an app chooser should always be shown
 --content-type type specify the content type to use
 $ termux-open hello.c
For compatibility with standard Linux programs, xdg-open is symlinked to termux-open.
Sometimes, read access is not enough, you need to be able to modify files. This can be achieved by storing the required files on an sdcard. Android Lollipop should work right out of the box, but, Marshmallow and above require the Termux app to request permissions to Read/Write External Data.
Run termux-setup-storage and grant permissions when the dialog pops up. This will create a $HOME/storage directory with symlinks to respective paths of sdcard(s).
NOTE Termux v0.118.0 requires enabling allow-external-apps in ~/.termux/termux.properties. Check https://github.com/termux/termux-tasker#allow-external-apps-property-optional for more info.
Shells

A shell is an command language interpreter that executes commands from standard input devices (like a keyboard) or from a file. Shells are not a part of the system kernel, but use the system kernel to execute programs, create files, etc.
Use chsh from termux-tools to change your login shell. Currently Termux supports bash, fish, tcsh, zsh and a few other shells.
= BASH =
Homepage: https://www.gnu.org/software/bash/
Bash is the default shell after installing termux.
The BASH shell init files are ~/.bashrc, $PREFIX/etc/bash.bashrc and more. See `man bash` and `info bash` for more information.
= Beanshell =
Homepage: https://beanshell.github.io/
Installation: pkg install beanshell
Beanshell is a fully Java compatible scripting language. BeanShell is now capable of interpreting ordinary Java source and loading .java source files from the class path. BeanShell scripted classes are fully typed and appear to outside Java code and via reflective inspection as ordinary classes. However their implementation is fully dynamic and they may include arbitrary BeanShell scripts in their bodies, methods, and constructors. Users may now freely mix loose, unstructured BeanShell scripts, method closures, and full scripted classes.
= FISH =
Homepage: http://fishshell.com/
Installation: pkg install fish
FISH is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family.
The FISH shell init files are ~/.fish, $PREFIX/etc/fish/config.fish and more. See `man fish` and `info fish` for more information.
More information...
= IPython =
Homepage: https://ipython.org/
Installation: pip install ipython
IPython is an advanced interactive shell for Python language.
= TCSH =
Homepage: http://www.tcsh.org/
Installation: pkg install tcsh
TCSH is a C shell with file name completion and command line editing.
The TCSH shell init files are ~/.tcshrc, $PREFIX/etc/csh.cshrc and more. See `man tcsh` and `info tcsh` for more information.
= Xonsh =
Homepage: http://xon.sh/
Installation: pip install xonsh
Xonsh is a Python-powered, cross-platform, Unix-gazing shell language and command prompt. The language is a superset of Python 3.4+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, Mac OSX, and Windows. Xonsh is meant for the daily use of experts and novices alike.
= ZSH =
Homepage: https://www.zsh.org/
Installation: pkg install zsh
Zsh is a shell designed for interactive use, although it is also a powerful scripting language. Many of the useful features of bash, ksh, and tcsh were incorporated into zsh.
The zsh shell init files are ~/.zshrc and $PREFIX/etc/zshrc and more. See man zsh and info zsh for more information.
More information...
Software

Software that works in Termux on a smartphone and tablet in Android and Chrome. Termux offers a wide range of software for your device.
; Development Environments: Termux is a great software development environment.
; Differences from Linux: There are several differences between Termux and a regular Linux distribution.
; Editors: Edit, write and manipulate text and data files.
; Graphical Environment: Everything about using X Window System in Termux.
; Intents and Hooks: Use intents and hooks to access Termux from other apps.
; Package Management: Basic and advanced package and module management.
; Package Tips: A list of manuals for packages that are tricky to install.
; Remote Access: Access your remote devices or the Termux itself.
; Sharing Data: Accessing files in the $HOME directory in other apps on device
; Shells: A listing of some of the available shells in Termux.
Switching package manager

In this page, it is written how to change the package manager in termux. Termux currently has 2 package managers, apt (default) and pacman. To switch to another package manager, you need to change bootstrap based on the specific package manager.
==== Instruction: ====
First you need to install bootstrap based on a specific package manager.
* apt based bootstrap you can find here
* pacman based bootstrap you can find here
The second step is to create a usr-n/ directory next to usr/, then move the bootstrap archive to usr-n/ and unzip it.
The third step is to run the following command in the usr-n/ directory to create symbolic links.
 cat SYMLINKS.txt | awk -F "←" '{system("ln -s '"'"'"$1"'"'"' '"'"'"$2"'"'"'")}'
The fourth step is to replace usr/ with usr-n/, to do this, run failsafe (how to run it is written here), then delete the old usr/ directory and rename usr-n/.
 cd ..
 rm -fr usr/
 mv usr-n/ usr/
If you are switching to pacman then you need to follow this step. The fifth step, exit failsafe and start termux normally, then run the following command to set up gpg keys for pacman.
 pacman-key --init
 pacman-key --populate
TeX Live

Texlive can be installed through the package texlive-installer. The package contains termux-install-tl, a wrapper around texlive's own install-tl script.
Texlive for termux needs several patches to work with termux's non standard filesystem. There is a risk that updates through tlmgr break our texlive since they might undo the various applied patches. If texlive breaks after an update you can run termux-patch-texlive to (try to) apply the patches again. 
When installing through termux-install-tl you cannot customize everything, changing installation path or trying to use binaries from upstream will break texlive.
= TeX Live Package Management =
Texlive packages can be inatalled through texlive's package manager tlmgr.
The most up-to-date version of tlmgr documentation (updated nightly from the development sources) is available at http://tug.org/texlive/tlmgr.html, along with procedures for updating tlmgr itself and information about test versions. A Texlive installation can be customized and managed at any level.
== tlmgr info ==
* tlmgr search --global --file search.sty will list available packages containing the file search.sty.
* tlmgr info collections will list installed and available collections. Collections usually means large downloading!
* tlmgr info schemes will list installed and available schemes. Schemes means downloading even more and larger amazing tex goodies!
== tlmgr install ==
Single packages can be installed with 
 
 tlmgr install <package>
== tlmgr update ==
Updating all install texlive packages can be done
 
 tlmgr update --all
= Details on how texlive-installer works =
texlive-installer installs two scripts that can be run, termux-install-tl and termux-patch-texlive. 
termux-install-tl runs a patched variant (some paths needs to be changed) of upstream's install-tl script with an argument (-custom-bin) pointing to the binaries that have been installed with texlive-bin. If you want to run the installer with other arguments, for example -repository pointing to a local mirror, you can run termux-install-tl -repository path/to/mirror. You are then shown a text gui where you have the opportunity to choose which schemes you want to install. After all texlive packages have been downloaded and installed termux-patch-texlive is run to fix known problems, mostly to change paths (/tmp -> $PREFIX/tmp and similar). 
If you at a later point run tlmgr update and end up with a none-working texlive you might be able to fix the problems by running termux-patch-texlive.
Termux-call-log

Print the phone call history.
== Usage ==
termux-call-log [options]
Output displayed in json format.
=== Options ===
 -l limit offset in call log list (default: 10)
 -o offset offset in call log list (default: 0)
== See Also ==
Termux:API - Termux addon that exposes device functionality as API to command line programs.
Termux-camera-photo

Take a photo and save it to a file in JPEG format.
== Usage ==
termux-camera-photo [-c camera-id] output-file
Photo is saved at specified file path.
=== Options ===
 -c camera-id ID of the camera to use (see termux-camera-info), default: 0
== See Also ==
Termux:API - Termux addon that exposes device functionality as API to command line programs.
Termux-clipboard-set

Set the system clipboard text. The text to set is either supplied as arguments or read from stdin if no arguments are given.
== Usage ==
termux-clipboard-set [text]
Text is read either from standard input or from command line arguments.
=== Examples ===
 termux-clipboard-set "hello world"
 cat file.txt | termux-clipboard-set
== See Also ==
Termux:API - Termux addon that exposes device functionality as API to command line programs.
Termux-clipboard-get - Utility to retrieve text from the clipboard.
Termux-dialog

Show dialog widget for user input.
== Usage ==
termux-dialog widget [options]
Output is returned in json format.
=== Options ===
 -l, list List all widgets and their options
 -t, title Set title of input dialog (optional)
=== Widget-specific options ===
confirm - Show confirmation dialog
 [-i hint] text hint (optional)
 [-t title] set title of dialog (optional)
checkbox - Select multiple values using checkboxes
 [-v ",,,"] comma delim values to use (required)
 [-t title] set title of dialog (optional)
counter - Pick a number in specified range
 [-r min,max,start] comma delim of (3) numbers to use (optional)
 [-t title] set title of dialog (optional)
date - Pick a date
 [-t title] set title of dialog (optional)
 [-d "dd-MM-yyyy k:m:s"] SimpleDateFormat Pattern for date widget output (optional)
radio - Pick a single value from radio buttons
 [-v ",,,"] comma delim values to use (required)
 [-t title] set title of dialog (optional)
sheet - Pick a value from sliding bottom sheet
 [-v ",,,"] comma delim values to use (required)
 [-t title] set title of dialog (optional)
spinner - Pick a single value from a dropdown spinner
 [-v ",,,"] comma delim values to use (required)
 [-t title] set title of dialog (optional)
speech - Obtain speech using device microphone
 [-i hint] text hint (optional)
 [-t title] set title of dialog (optional)
text - Input text (default if no widget specified)
 [-i hint] text hint (optional)
 [-m] multiple lines instead of single (optional)*
 [-n] enter input as numbers (optional)*
 [-p] enter input as password (optional)
 [-t title] set title of dialog (optional)
 * cannot use [-m] with [-n]
time - Pick a time value
 [-t title] set title of dialog (optional)
== See Also ==
Termux:API - Termux addon that exposes device functionality as API to command line programs.
Termux-download

Download a resource using the DownloadManager API which shows a notification with your download details including a progress bar.
== Usage ==
termux-download [-d description] [-t title] [-p path] url-to-download
Does not return anything.
=== Options ===
 -d description description for the download request notification
 -t title title for the download request notification
 -p path path to save the downloaded file
== See Also ==
Termux:API - Termux addon that exposes device functionality as API to command line programs.
Termux-exec

Termux-exec allows you to execute scripts with shebangs for traditional Unix file structures. So shebangs like #!/bin/sh and #!/usr/bin/env python should be able to run without termux-fix-shebang.
After upgrading to apt version 1.4.8-1 or more recent, termux-exec should be already installed as dependency of apt, if not — it is time to run pkg upgrade and then restart Termux application.
If you are not able to run scripts with shebangs like #!/bin/sh even if termux-exec is installed, try to reset LD_PRELOAD environment variable:
 export LD_PRELOAD=${PREFIX}/lib/libtermux-exec.so
and then restart Termux session.
Termux-fix-shebang

There is a newer and simpler solution, install termux-exec to resolve this matter.
Only files within Termux’s private space can be made executable. So any executable files such as shell scripts need to be kept inside the apps native space unless you run them through a shell, e.g. sh script.sh, bash script.sh, csh script.sh, etc...
Since the usual location /bin is /data/data/com.termux/files/usr/bin, also known as $PREFIX/bin, this can cause problems with scripts which have a shebang such as #!/bin/sh. This can be fixed by using termux-fix-shebang on the shell scripts. For example:
 termux-fix-shebang script.sh
 ./script.sh
Now script.sh should run correctly.