opkg(5)

πŸ“¦
version 0.8.0 Β· 2 versions
, in nixos 26.05

πŸ’– opkg.conf β€” the manual, but make it make sense πŸ’–

okay so bestie, this is the opkg.conf manual page from the opkg package manager (manual name: opkg.conf, duh). This file is literally the vibe check for how opkg behaves. It's the config file. Let's get into it. 🫢


✨ NAME ✨

opkg.conf β€” the opkg configuration file. It's giving "settings but make it a text file." πŸ’…


🌸 DESCRIPTION 🌸

Okay so this file is where the default options for opkg live. Each line is a single option, and it's exactly the same as a normal command-line option for opkg β€” except you don't use the leading dashes here. No dashes, no drama. ✨

Comments are allowed! Just start a line with a hash sign (#) and opkg will ignore it, like it's ignoring your ex. πŸ’€

There can be multiple configuration files, and repositories can be placed in separate *.conf files. A repository configuration file only needs a src line β€” that's it, that's the whole assignment. Slay. πŸ‘‘

Here's the tea though: a opkg.conf file is not needed if repositories are not being used to obtain packages, and if the packages are expected to install in /. So if you're not doing repo stuff and everything's going to root, you can literally skip this file. No cap. πŸ™ˆ


πŸŽ€ FILES πŸŽ€

The config files live here:

/nix/store/grk9n16q885x1s1ifj175j31gbla9d7r-opkg-0.8.0/etc/*.conf

That's the path, bestie. Copy it exactly. Don't @ me. πŸ’–


πŸ¦‹ USAGE πŸ¦‹

Here's an example of how to set specific options β€” outlined for you, because we're nice like that:

option autoremove 1
option check_signature 1
option signature_type gpg
dest root /
arch i386 1
src/gz base http://my.package.server/path/to/my/base/repo
src/gz nightly http://my.package.server/path/to/my/snapshot/repo

That's the whole vibe. option for options, dest for destinations, arch for architectures, src/gz for repos. Iconic. 🌈


πŸ’œ REPOSITORY CONFIGURATION πŸ’œ

The opkg repository configuration consists of three parts. Three! Like a trilogy. A holy trinity. Let's break it down. 🧚

  1. The repository type β€” this tells opkg what format the repository will take. src means an uncompressed repository list. src/gz means a gzip compressed repository list. So gz is literally just "gz" for "gzip." Groundbreaking. πŸ’…
  2. The repository name β€” this is a descriptive name used to identify a particular repository. For instance, base may refer to a basic repository containing packages used for generic maintenance. A repository named nightly may contain packages from some daily build system. It's giving "label your Tupperware" energy. πŸ“
  3. The repository location β€” this must point to the top directory containing the Packages index file. The repository location may refer to:
    • a local directory on the system with the prefix file://
    • a webserver with http:// or https://
    • an FTP server with ftp://

That's the three-part saga. Periodt. πŸ”₯


✨ OPTIONS ✨

Okay bestie, here come the options. All of them. Every single one. Don't skip, these are all important. πŸ‘‘

  • arch β€” Registers a given architecture with a given priority. The number specifies a priority index which is used by opkg to determine which package to prefer in case it is available in multiple architectures.
  • autoremove β€” Removes packages that were installed automatically in order to satisfy dependencies (default is 0).
  • cache_dir β€” Specifies the cache directory.
  • cache_local_files β€” For local repositories (file://), a symlink of the file is created in the cache directory rather than copying the file directly (default is 0).
  • check_pkg_signature β€” Performs a signature check against a package. The signature file should be next to the package (default is 0).
  • check_signature β€” Performs a signature check against the package index. The signature file should be next to the package index (default is 0).
  • combine β€” Combines upgrade and install operations; this may be needed to resolve dependency issues. Only available for the internal solver backend (default is 0).
  • compress_list_files β€” Compresses the list files in list_dir (gz).
  • connect_timeout_ms (CURL) β€” The maximum amount of time allowed for a connection initialization to take (default is 300 seconds).
  • dest β€” Registers a given destination with a given path. If no dest is specified, root is specified automatically to /.
  • download_first β€” Download all the transaction packages first, before any changes to the file system.
  • download_only β€” No action β€” download only (default is 0).
  • follow_location (CURL) β€” Follows any "Location:" header that the server sends as part of the HTTP header (default is 0).
  • force_depends β€” Install/remove despite failed dependencies (default is 0).
  • force_downgrade β€” Allow opkg to downgrade a package (default is 0).
  • force_maintainer β€” Overwrite existing conffile's (default is 0).
  • force_overwrite β€” Overwrites files from other packages (default is 0).
  • force_postinstall β€” Run postinstall scripts even in offline mode (default is 0).
  • force-checksum β€” Don't fail on checksum mismatches (default is 0).
  • force_reinstall β€” Reinstalls the package(s) (default is 0).
  • force_space β€” Disables free space checks (default is 0).
  • ftp_explicit_ssl (CURL) β€” Forces CURL to establish a FTP connection over SSL (default is 0).
  • ftp_proxy (CURL/WGET) β€” Specifies the FTP Proxy.
  • gpg_dir β€” Specifies the GPG directory containing the GPG keyring.
  • gpg_trust_level β€” Specifies the GPG trusted level. The Default is TrustOnly.
    • TrustOnly β€” Trust only package signatures with a trust level of Full or Ultimate
    • TrustAny β€” Trust any package with a valid signature
Note: Any file signed with a GPG that is specified as trust level NEVER will NOT be trusted.
  • http_auth (CURL) β€” Specifies the HTTP username/password in the format "[username]:[password]".
  • http_proxy (CURL/WGET) β€” Specifies the HTTP proxy address in the format "<url:port>".
  • https_proxy (CURL) β€” Specifies the HTTPS proxy address in the format "<url:port>".
  • ignore_maintainer β€” Ignores changes to files listed as conffile's during a package upgrade (default is 0).
  • ignore_uid β€” Do not restore the user and group IDs when extracting files.
  • intercepts_dir β€” Specifies the directory used to store intercept scripts.
  • info_dir β€” Specifies the directory used to store packages information.
  • lists_dir β€” Specifies the directory used to store local copies of repository information.
  • lock_file β€” Specifies the lock file path.
  • noaction β€” No action β€” test only (default is 0).
  • nodeps β€” Do not follow dependencies (default is 0).
  • no_install_recommends β€” Do NOT install any recommended packages (default is 0).
  • no_proxy β€” Comma-separated list of domain extensions proxy should not be used for.
  • offline_root β€” Specifies directory for offline root installation of packages.
  • overlay_root β€” Specifies the root overlay.
  • overwrite_no_owner β€” Allow overwrite of files not owned by a package (default is 0).
  • proxy_passwd β€” Password to use with proxy authentication.
  • proxy_user β€” User name to use for proxy authentication.
  • query-all β€” Executes a query against all packages from all repositories, not just installed packages (default is 0).
  • signature_type β€” The type of signatures to check against:
    • gpg β€” GPG signature (binary)
    • gpg-asc β€” GPG Signature using ASCII ARMOR
    • openssl β€” OpenSSL Signature Verification
  • size β€” Print package size when listing available packages (default is 0).
  • ssl_ca_file (CURL) β€” CURL's SSL Certificate Authority file.
  • ssl_ca_path (CURL) β€” CURL's SSL Certificate directory.
  • ssl_cert (CURL) β€” Filename of client certificate.
  • ssl_cert_type (CURL) β€” CURL's SSL Certificate Type:
    • PEM β€” PEM Format (default)
    • DER β€” DER Format
  • ssl_dont_verify_peer (CURL) β€” Don't verify SSL certificates (default is 0).
  • ssl_engine (CURL) β€” Selects the SSL crypto engine to use for cipher operations. See curl(1) for more details.
  • ssl_key (CURL) β€” Filename of private SSL key.
  • ssl_key_passwd (CURL) β€” Passphrase to ssl key specified by ssl_key.
  • ssl_key_type (CURL) β€” CURL's SSL Key Type:
    • PEM β€” PEM Format (default)
    • DER β€” DER Format
  • status_file β€” Location of the status file. This file contains all the status of all current/previously installed packages.
  • tmp_dir β€” Temp directory for unpacking a package before loading into the filesystem.
  • transfer_timeout_ms (CURL) β€” Amount of time in ms allowed for a connection to be maintained. Default is 0 (never time out).
  • verbosity β€” Verbosity of output from opkg(1) command. Verbosity levels:
    • 0 β€” errors only
    • 1 β€” normal messages (default)
    • 2 β€” informative messages
    • 3 β€” debug
    • 4 β€” debug level 2
  • volatile_cache β€” Enables volatile cache (default is 0). Volatile cache is located at the directory specified by cache_dir in the subdirectory volatile.

🌈 the sign-off 🌈

And that's the whole manual, bestie! This is from opkg version 0.8.0, dated January 2025. You're now officially the main character of package management. Go forth and configure. opkg(5) is iconic, and so are you. πŸ’…βœ¨πŸ‘‘

πŸ“¦ where this page comes from