root@starkos:~$ stark help

starkpm

El gestor de puertos de starkOS. Escrito en shell script POSIX con extensiones GNU, descomprime las fuentes en una ubicacion temporal $SRC donde se compilan y posteriormente se instalan en otra ubicación temporal $PKG mediante el método DESTDIR y después se comprimen por defecto en un archivo tar.xz originando el paquete.

Instalar un paquete empaquetado consiste en extraerlo directamente sobre el sistema real. Tras la instalación, todos los archivos extraídos quedan registrados en un directorio índice: starkpm hace un seguimiento completo de los archivos instalados, resuelve automáticamente el orden de las dependencias y lee el script de compilación (sbuild) del directorio de puertos para obtener las variables y funciones necesarias antes de compilar.

sbuild es el script de compilación que usa portbuild para generar el paquete. Ejemplo:

description="This is example package"
homepage="https://example.com/"
maintainer="starkOS Team, starkos at disroot dot org"

name=foobar
version=1.0.0
release=1
backup="etc/example.conf etc/foobar.conf"
noextract="foobar.tar.xz"
source="https://dl.example.com/foobar.tar.xz
        $name-$version.tar.gz::https://github.com/archive/$version.tar.gz
        example.conf"
nostrip="lib.*/ld-.*\.so$
        lib.*/libc-.*\.so$
        lib.*/libpthread-.*\.so$
        lib.*/libthread_db-.*\.so$"

build() {
    cd $name-$version

    ./configure --prefix=/usr
    make
    make DESTDIR=$PKG install

    install -d $SRC/example.conf $PKG/etc/example.conf
}
      

depends se define en un archivo aparte, con una dependencia por línea. Antes de crear un puerto nuevo, se recomienda compilarlo primero con fakeroot para asegurarse de que el script no falla y no deja archivos sin registrar en el sistema.

Campo Descripción
descriptionDescripción corta del puerto.
homepageURL de la web del software.
maintainerNombre y correo del mantenedor.
nameNombre del puerto; debe coincidir con el nombre del directorio del puerto.
versionVersión del puerto.
releaseVersión de release del puerto, útil cuando el script cambia sin que cambie la versión.
backupArchivos que deben respaldarse al actualizar el puerto (sin '/' inicial).
noextractArchivos que no deben extraerse, separados por espacio.
sourceURLs de las fuentes, separadas por espacio. Puede usarse <nuevo-nombre>::<url> para guardar el archivo con otro nombre.
dependsTodas las dependencias necesarias, una por línea, en un archivo aparte.

Se define en /etc/starkpm.conf. Valores por defecto (comentados):

#
# Configuration file for starkpm
#

export CFLAGS="-O2 -march=x86-64 -pipe"
export CXXFLAGS="${CFLAGS}"
export FCFLAGS="${CFLAGS}"
export FFLAGS="${CFLAGS}"
export MAKEFLAGS="-j$(nproc)"
export LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs"

# SOURCE_DIR="/var/cache/starkpm/sources"
# PACKAGE_DIR="/var/cache/starkpm/packages"
# WORK_DIR="/var/cache/starkpm/work"
# CBUILD_DIR="/var/lib/starkpm/cbuild"
# CURL_OPTS=""
# COMPRESSION_MODE="xz"
# NO_STRIP="no"
# IGNORE_CHECKSUM="no"
# KEEP_DOC="no"
# KEEP_GOING="no" 
# KEEP_LIBTOOL="no"
# KEEP_LOCALE="no"
# NOCOLOR="no"
# THEME="starkos"   # variants: 'dracula', 'nord', 'starkos'

Un alias hace que instalar o actualizar un puerto instale otro en su lugar, sin cambiar el nombre por el que lo conoces en el resto del sistema. Se define en /etc/starkpm.alias, un alias por línea, con el formato <nombre real> <nombre alias>:

#
# /etc/starkpm.alias : starkpm alias file
#
# format:
#    <real package> <aliased package>
#
# example:
#    openssl libressl
#
rust rust-bin

También puedes gestionar los alias directamente con stark alias, sin necesidad de editar el archivo manualmente:

$ stark alias help
Usage:
  stark alias <command> [args]

Commands:
  list                  list aliased ports
  add <real> <alias>    add/update alias: <real> is a dep of <alias> (installed port)
  rm <real>             remove alias for <real>
  help                  show this help

Excluye puertos de stark sysup, útil para congelar temporalmente una versión problemática sin desinstalarla. Se define en /etc/starkpm.mask, un puerto por línea:

#
# /etc/starkpm.mask : exclude packages from sysup
#
ffmpeg
firefox
webkitgtk

También puedes gestionar los paquetes enmascarados directamente con stark mask:

$ stark mask help
Usage:
  stark mask <command> [args]

Commands:
  list           list masked ports (excluded from 'stark sysup')
  add <ports>    add ports to mask
  rm  <ports>    remove ports from mask
  help           show this help

/etc/starkpm.repo define los directorios y URLs de los repositorios de puertos usados para sincronizar y actualizar. Puedes añadir directorios, sin una URL para definir repositorios locales.

#
# /etc/starkpm.repo : starkpm repo file
#
# format:
#    <repo directory> <repo url> <repo branch, "main" by default>
#
/usr/ports/local
/usr/ports/main       https://codeberg.org/stark-OS/main
/usr/ports/community  https://codeberg.org/stark-OS/community
#/usr/ports/kde-lxqt  https://codeberg.org/stark-OS/kde-lxqt
#/usr/ports/mate      https://codeberg.org/stark-OS/mate
#/usr/ports/xfce      https://codeberg.org/stark-OS/xfce
#/usr/ports/multilib  https://codeberg.org/stark-OS/multilib
#/usr/ports/nonfree   https://codeberg.org/stark-OS/nonfree
#/usr/ports/s6        https://codeberg.org/stark-OS/s6
#/usr/ports/testing   https://codeberg.org/stark-OS/testing

La URL es opcional: solo hace falta indicarla si quieres poder sincronizar ese repositorio.

  1. 01

    portadd

    Instala y actualiza paquetes ya compilados por portbuild. Instalar consiste en extraer el paquete <name>-<version>-<release>.spkg.xz con tar sobre el sistema real y guardar la lista de archivos extraídos. Actualizar hace lo mismo, sustituye los archivos antiguos y elimina los que ya no existan en el paquete nuevo (como el pkgtool de Slackware).

    Usage:
        portadd [ <options> <package.spkg.txz> ]
    
    Options:
        -u, --upgrade              actualizar paquete
        -r, --reinstall            reinstalar paquete
        -c, --ignore-conflict      ignorar conflictos al instalar
        -v, --verbose              mostrar archivos instalados
        -h, --help                 mostrar esta ayuda
            --no-backup            omitir respaldo al actualizar
            --print-dbdir          mostrar ruta de la base de datos de paquetes
            --root=<path>          instalar en un directorio raíz personalizado
    
    Example:
        portadd foobar-1.0-1.spkg.txz -uc --no-backup
            actualiza foobar-1.0-1 sin respaldar su configuración
            anterior y sin comprobar conflictos
  2. 02

    portbuild

    Compila un paquete a partir de un puerto. Lee sbuild para obtener la información de compilación antes de generar el paquete, con formato <name>-<version>-<release>.spkg.xz. Debe ejecutarse dentro del directorio del puerto.

    Usage:
        portbuild [ <options> <arguments> ]
    
    Options:
        -q, --quiet                mostrar solo mensajes de estado y errores
        -i, --install              instalar el paquete en el sistema
        -u, --upgrade              actualizar paquete
        -r, --reinstall            reinstalar paquete
        -c, --ignore-conflict      ignorar conflictos al instalar
        -v, --verbose              instalación detallada
        -f, --force-rebuild        forzar recompilación
        -m, --skip-checksum        omitir comprobación de checksum
        -g, --genchecksum          generar checksum
        -o, --download             descargar solo las fuentes
        -x, --extract              extraer solo las fuentes
        -p, --pkgfiles             generar lista de archivos del paquete
        -w, --keep-work            mantener el directorio de trabajo
        -h, --help                 mostrar esta ayuda
        -C, --clean                eliminar fuentes descargadas y paquetes compilados
        --config=<config>          usar archivo de configuración personalizado
        --srcdir=<path>            sobrescribir ruta de las fuentes
        --pkgdir=<path>            sobrescribir ruta del paquete compilado
        --workdir=<path>           sobrescribir ruta del directorio de trabajo
        --no-backup                omitir respaldo de configuración al actualizar
        --jobs=N                   override parallel build jobs (default: JOBS in config, or nproc)
    
    Example:
        portbuild -iw    compila, instala el paquete y conserva el directorio de trabajo
    
    Nota: sin opciones, portbuild solo descarga las fuentes y compila el
    paquete con el resto de opciones por defecto.
  3. 03

    portdel

    Elimina un paquete del sistema leyendo la lista de archivos registrada en PKGDB_DIR.

    Usage:
        portdel [ <options> <package name> ]
    
    Options:
        -h, --help             mostrar esta ayuda
        -v, --verbose          mostrar archivos eliminados
        --root=<path>          eliminar el paquete de un directorio raíz personalizado
    
    Example:
        portdel firefox -v
            elimina firefox, muestra los archivos eliminados.
  4. 04

    portrebuild

    Recompila los paquetes base en el orden correcto incluyendo la toolchain.

    Usage:
        portrebuild <options>
    
    Options:
        -t, --toolchain   recompilar el toolchain
        -b, --base        recompilar los puertos base
        -h, --help        mostrar esta ayuda
    
    Example:
        portrebuild       recompila toolchain y base, en ese orden
        portrebuild -t    recompila solo el toolchain
        portrebuild -b    recompila solo los puertos base
  5. 05

    portbase

    Elimina todos los paquetes salvo los del sistema base y los que indique el usuario.

    Usage:
        portbase <options>
    
    Options:
        -n  simulación (dry-run)
        -y  no pedir confirmación
        -h  mostrar esta ayuda
  6. 06

    portsync

    Sincroniza los puertos y mantiene los repositorios del sistema al día.

    Usage:
        portsync [options]
    
    Options:
        -p, --prune              limpiar el repositorio git local
        -r, --reset              reiniciar los repositorios git
        -s, --source <repos>     sincronizar solo los repos indicados (separados por espacio)
        -h, --help               mostrar esta ayuda
    
    Examples:
        portsync                 sincroniza todos los repos
        portsync --source main   sincroniza solo 'main'
        portsync -s main custom  sincroniza 'main' y 'custom'
        portsync -r -s main      reinicia y sincroniza solo 'main'
  7. 07

    portnews

    Gestor de noticias del sistema para starkpm. Se invoca como portnews o mediante stark news.

    portnews - system news manager for starkpm
    
    Usage: run 'portnews' or 'stark news' wrapper
      portnews                     List your unread news
      portnews status              Show your news statistics
      portnews check               Notify if you have unread news; exit 0 only if it did
      portnews unread              List unread news
      portnews read                List read news
      portnews ignore              List ignore news
      portnews cat N               Show unread news item N
      portnews cat read N          Show read news item N
      portnews cat ignore N        Show ignore news item N
      portnews N                   Show unread news item N (shortcut)
      portnews mv N <dst>          Move unread news N to destination category
      portnews mv all <dst>        Move all unread news to destination
      portnews mv <src> N <dst>    Move news N from source to destination category
      portnews mv <src< all <dst<  Move all news from source to destination
      portnews sync                Sync news from ports repository (requires root)
      portnews restore             Mark all news as unread again
      portnews purge orphan        Remove from your agenda news no longer in source
      portnews create NAME         Create news template file
      portnews help                Show this help
    
    Directories:
      /usr/ports/main/NEWS     Ports repository news (from git)
      /var/lib/starkpm/news/source   Synced copy shared by all users (root writes, read-only for users)
      $XDG_STATE_HOME/portnews     Your agenda: unread/ read/ ignore/ (per user)
                                   (default: ~/.local/state/portnews)
    
    Workflow:
      1. News are maintained in git at /usr/ports/main/NEWS
      2. Run 'doas portnews sync' to copy them to the shared source directory
      3. Each user manages their own agenda: new news start as unread.
         Run portnews as your own user (not through doas)
      4. 'restore' marks every news as unread again in your agenda
    
    Examples:
      doas portnews sync             # Sync from ports repo
      portnews                       # List your unread news
      portnews 1                     # Show first unread news item
      portnews cat 1                 # Show first unread news item
      portnews cat read 1            # Show first read news item
      portnews cat ignore 2          # Show second ignored news item
      portnews mv 1 read             # Move unread #1 to read (short form)
      portnews mv all ignore         # Ignore all unread news (short form)
      portnews mv read 2 unread      # Move read #2 back to unread (full form)
      portnews mv ignore all unread  # Move all ignored back to unread (full form)
      portnews read                  # List read news
      portnews ignore                # List ignore news
      portnews restore               # Mark all news as unread again
      portnews purge orphan          # Drop news that no longer exist in source
      portnews create icu-update     # Create news template
    
  8. 08

    stark

    stark es el front-end de portbuild, portadd y portdel: cambia de directorio dentro de los puertos, llama a portbuild para compilar y después a portadd para instalar. También añade funciones extra, como buscar paquetes, comprobar dependencias y dependientes, huérfanos, puertos duplicados o listar lo instalado.

    Usage:
        stark <options> [<arg>]
    
    Options:
        search       <pattern>          find ports in repo
                                        -n, --name   search in port names only
    
        sync                   <arg>    update ports database (use portsync arg)
                                        -p, --prune   prune local git repository
                                        -r, --reset   reset git repositories
    
        build        <ports>   <arg>    build ports (use portbuild arg, except '-i', '-u', '-r', '-g', & '-p')
                                        -f            force rebuild package
    				    -k            keep going building next package on error
                                        -m            skip checksum checking
                                        -o            fetch sources only
                                        -q, --quiet   show only status messages and errors
                                        -w            keep working directory
                                        -y            skip ask user confirmation
                                        -C, --clean   remove downloaded sources and prebuilt packages
                                        --log         log build process (/var/log/name-version-release-date.log)
                                        --jobs=<N>    override parallel build jobs (default: JOBS in config, or nproc)
    
        install      <ports>   <arg>    install ports (use portbuild arg, except '-i' & '-u')
                                        -c            ignore conflict when installing package
                                        -f            force rebuild package
    				    -k            keep going installing next package on error
                                        -m            skip checksum checking
                                        -n            skip dependencies
                                        -o            fetch sources only
                                        -q, --quiet   show only status messages and errors
                                        -r            reinstall
                                        -w            keep working directory
                                        -y            skip ask user confirmation
                                        --exclude=*   exclude dependencies, comma separated
                                        --no-backup   skip backup when reinstalling package
                                        --jobs=<N>    override parallel build jobs (default: JOBS in config, or nproc)
    
        upgrade      <ports>   <arg>    upgrade ports (use portbuild arg, except '-i' & '-r')
    	                            -c            ignore conflict when installing package
                                        -f            force rebuild package
    				    -k            keep going upgrading next package on error
                                        -m            skip checksum checking
                                        -n            skip dependencies
                                        -o            fetch sources only
                                        -q, --quiet   show only status messages and errors
                                        -w            keep working directory
                                        -y            skip ask user confirmation
                                        --exclude=*   exclude dependencies, comma separated
                                        --no-backup   skip backup when upgrading package
                                        --jobs=<N>    override parallel build jobs (default: JOBS in config, or nproc)
    
        sysup                  <arg>    full system upgrade (use portbuild arg, except '-i', '-r'  & '-u')
                                        -c            ignore conflict when installing package
                                        -f            force rebuild package
    				    -k            keep going upgrading next package on error
                                        -m            skip checksum checking
                                        -n            skip dependencies
                                        -o            fetch sources only
                                        -q, --quiet   show only status messages and errors
                                        -w            keep working directory
                                        -y            skip ask user confirmation
                                        --exclude=*   exclude dependencies, comma separated
                                        --no-backup   skip backup when upgrading package
                                        --jobs=<N>    override parallel build jobs (default: JOBS in config, or nproc)
    
        remove       <ports>   <arg>    remove installed ports (use portdel arg)
                                        -y            skip ask user confirmation
    
        deplist      <ports>            print all dependencies for ports
                                        -q            skip installed ports
                                        --exclude=*   exclude dependencies, comma separated
    
        redeps       <ports>   <arg>    find redundant dependencies
                                        -w, --world   check redundant entries in world
                                        -f, --fix     fix (remove) redundant port deps / world entries
    
        cache                           (no args)     clean packages AND sources cache
                                        -p, --pkg     clean packages cache only
                                        -s, --src     clean sources cache only
    
        alias        <arg>              manage aliased ports (run 'stark alias help' for usage)
        cat          <port>             print sbuild
        config                          print starkpm config
        depends      <port>             print dependencies
        dup                             print duplicate ports
        files        <port>             print files installed
        foreign                         print foreign ports
        help                            print this help
        hook  <stage> <action> <port>   run port hook on demand (run 'stark hook' for help)
        info         <port>             print information
        installed                       print all installed ports
        integrity                       check installed port integrity
        isinstalled  <port>             check whether port is installed (status 0=installed, 1=not installed)
        locate       <file>             print location of file in ports repo
        mask         <arg>              manage masked ports (run 'stark mask help' for usage)
        missingdep                      print missing dependencies
        news         <args>             news manager (run 'stark news help' for usage)
        orphan                          print orphan installed ports
        outdate                         print outdated ports
        path         <port>             print path in repo
        provide      <file>             print ports provided file
        purge        <ports>            remove installed ports and its orphan dependencies
        required     <port>             print reverse dependencies (required by)
        trigger      <ports>            run system trigger
        world        <ports>            print/add/remove world list
    
    Global options:
        --append-repo=<repo path>       append custom local repo path (lowest priority, multiple)
        --prepend-repo=<repo path>      prepend custom local repo path (highest priority, multiple)
        --override-repo=<repo path>     override repo in $REPO_FILE with custom local repo (only these repos are used, multiple)
        --repo-file=<repo file>         use custom repo file (default: $REPO_FILE)
        --config-file=<config file>     use custom config file (default: $CONFIG_FILE)
        --alias-file=<alias file>       use custom alias file (default: $ALIAS_FILE)
        --mask-file=<mask file>         use custom mask file (default: $MASK_FILE)
            

Opciones globales disponibles en la mayoría de comandos: --append-repo, --prepend-repo y --override-repo (para añadir, anteponer o sobrescribir repos locales personalizados), --repo-file, --config-file, --alias-file y --mask-file para usar archivos alternativos a los definidos por defecto.

# stark install -cv firefox
Compila e instala firefox y sus dependencias, ignorando conflictos de archivos 
y con salida detallada

KEEP_GOING permite continuar si un puerto falla en la compilación durante una actualización o instalación en lote, starkpm no detiene toda la operación: continúa con el resto de la cola y presenta un resumen de los fallos al final, evitando perder el trabajo ya realizado.

cbuild permite sobrescribir la configuración de compilación de un puerto sin modificar los puertos del repositorio. Tres funciones están disponibles dentro de cualquier build() de un sbuild:

  1. 01

    cbuild_restore <dest> [name]

    Copia un archivo de configuración guardado al árbol de fuentes antes de compilar. Devuelve 1 si no existe ninguna configuración, para que el puerto pueda usar sus valores por defecto. Ejemplo con el puerto "linux":

    cbuild_restore "$SRC/$name-${version%.*}/.config" || cp $SRC/x86_64-dotconfig .config
  2. 02

    cbuild_save <src> [name]

    Guarda un archivo de configuración para futuras compilaciones. Útil tras ejecutar herramientas interactivas como make menuconfig. Ejemplo con el puerto "linux":

    cbuild_save "$SRC/$name-${version%.*}/.config"
  3. 03

    cbuild_options [name]

    Carga un fragmento de shell para sobrescribir variables de compilación: flags de configure, opciones de cmake, targets de LLVM, etc. Ejemplo con "llvm", "clang" y "lld":

    llvm:          cbuild_options       usa "llvm" por defecto (archivo llvm.opt)
    clang y lld:   cbuild_options "llvm" usa el perfil "llvm", sobrescribiendo el nombre del puerto

Los archivos de configuración se guardan en /var/lib/starkpm/cbuild/ con extensiones explícitas:

ExtensiónContenido
name.cfgArchivos de configuración a copiar en el árbol de fuentes.
name.optFragmentos de shell con opciones o variables de compilación.
name.depLista de dependencias personalizada que sobrescribe el archivo depends del puerto.

El override .dep se gestiona de forma transparente en la resolución de dependencias de stark: si existe un archivo .dep para un puerto, se usa en lugar de su archivo depends, permitiendo eliminar dependencias que ya no hagan falta por las opciones de compilación elegidas. Un puerto puede combinar .cfg, .opt y .dep de forma independiente.

Ejemplo con el kernel de Linux — tras ejecutar make menuconfig, copia el .config aquí:

/var/lib/starkpm/cbuild/linux.cfg

El puerto lo usará automáticamente en la siguiente compilación:
cbuild_restore "$SRC/linux-$version/.config" || make defconfig
cbuild_save    "$SRC/linux-$version/.config"

Ejemplo para los targets de LLVM:

$ cat /var/lib/starkpm/cbuild/llvm.opt
BUILD_LLVM_TARGETS="AMDGPU;X86"

La ruta de CBUILD_DIR puede sobrescribirse en /etc/starkpm.conf:

CBUILD_DIR="/tu/ruta/personalizada"

Para filtrar los puertos que usan cbuild:

grep cbuild_ /usr/ports/*/*/sbuild | awk -F/ '{print $5}' | sort -u

Sobrescribe en tiempo de ejecución el número del hilos paralelos de compilación de tu procesador con --jobs=<número>. Por defecto, CBUILD_JOBS lee MAKEFLAGS exportado desde starkpm.conf si no se especifica nada. Si se especifica, sobrescribe los valores de todos los constructores compatibles mediante variables de entorno y además exporta la variable de entorno CBUILD_JOBS, que puede usarse específicamente dentro de un puerto. El objetivo principal es gestionar puertos que consumen muchos recursos, como webkitgtk o qt6-webengine, limitando el número de jobs en hardware que no tenga capacidad para compilar el puerto con éxito.

# portbuild --jobs=4 
# stark sysup --jobs=4
# stark build|install|upgrade <puerto1> <puerto2> <puerto3> --jobs=4

Además, starkpm incluye varios scripts para facilitar tareas comunes.

  1. 01

    schroot

    Monta los sistemas de archivos necesarios y entra en un entorno chroot. Monta automáticamente /dev, /proc, /sys, /run, /tmp y /etc/resolv.conf. Si no se indica un comando, lanza /bin/sh.

    Usage:
      schroot  [command]
    
    If 'command' is unspecified, schroot will launch /bin/sh.
    
    Arguments:
        Directory to use as new root filesystem
      [command]     Command to execute inside chroot (optional)
    
    Description:
      This script mounts necessary filesystems and enters a chroot environment.
      It automatically mounts: /dev, /proc, /sys, /run, /tmp, and /etc/resolv.conf
      Several sessions on the same directory share the mounts; they are removed
      when the last session exits.
    
    Examples:
      schroot /mnt/mysystem
      schroot /mnt/mysystem portsync
      schroot /mnt/mysystem stark sysup -y
      schroot /mnt/mysystem /bin/bash
      schroot /mnt/mysystem /bin/mksh -c portsync
    
    Notes:
      - If you want to run a command using a specific shell, use: shell -c 'command'
      - Arguments are passed directly to the command, preserving their structure
        schroot <chroot-dir> [command]
    
  2. 02

    portcreate

    Script para crear la plantilla de un puerto nuevo.

    Usage: portcreate [-b builder] 
    
    Create a port template directory with sbuild file.
    
    Options:
      -b   Specify build system (default: autotools)
                    Available: autotools, meson, cmake, go, python, rust
      -h            Show this help message
    
    Examples:
      portcreate myport              # Creates autotools template
      portcreate -b meson myport     # Creates meson template
      portcreate -b cmake myport     # Creates cmake template
      portcreate -b go myport        # Creates go template
      portcreate -b python myport    # Creates python template
      portcreate -b rust myport      # Creates rust template
    	    
  3. 03

    updateconf

    Script para actualizar archivos de configuración pendientes (*.snew).

    Usage: updateconf [-h|--help]
    
    Review the .snew files that starkpm leaves when an update would overwrite
    a configuration file listed in 'backup='. For each one the differences
    against the installed file are shown and you choose what to do:
    
      U  Update   replace the current file with the new .snew version
                  (your local changes are lost)
      D  Discard  delete the .snew and keep the current file
                  (the new defaults are lost)
      E  Edit     open the current file in $EDITOR to merge by hand, then show
                  the diff again; if it ends up identical, the .snew is removed
      K  Keep     leave both files as they are; the .snew shows up again the
                  next time you run updateconf
    
    A .snew identical to the current file, or whose current file does not exist,
    is removed without asking. A summary of what was done is printed at the end.
    
    Environment:
      EDITOR      editor used by Edit, arguments allowed (default: vim)
      SNEW_DIRS   directories searched for .snew files (now: /etc /boot /opt /usr /var)
    
    Examples:
      updateconf                  review every pending .snew file
      EDITOR=nano updateconf      use nano for Edit
      SNEW_DIRS=/etc updateconf   look only in /etc
    	    
  4. 04

    revdep

    Script de dependencias inversas que conviene ejecutar tras actualizar o eliminar paquetes, para detectar paquetes rotos. Indica un nombre de paquete si quieres comprobar solo ese.

    Usage:
        revdep [option] [arg]
    
    Options:
        -a, --all                        mostrar todos los archivos afectados
        -r, --rebuild                    recompilar e reinstalar el paquete roto
        -p, --package <pkg>              comprobar solo un paquete concreto
        -f, --no-filter                  omitir el filtro de directorios, archivos y bibliotecas excluidos
        -e, --exclude <pkg1 pkg2 pkgN>   excluir paquetes al recompilar (con -r/--rebuild)
        -y, --yes                        no pedir confirmación al recompilar (con -r/--rebuild)
        -h, --help                       mostrar esta ayuda
  5. 05

    hook

    Un hook es un script de shell con los comandos que deben ejecutarse antes (pre) o después (post) de instalar, actualizar o eliminar un paquete. Se coloca en el directorio del puerto y stark lo ejecuta automáticamente en esos momentos. También puede lanzarse manualmente:

    Usage:
        stark hook <stage> <action> <port>
    
    Options:
        stark hook <pre|post> <install|remove> <port>
    
    Example:
        stark hook post install linux

starkpm forma parte del sistema base de starkOS, pero puede compilarse e instalarse manualmente ejecutando el script de instalación:

# ./INSTALL.sh

Si vas a empaquetarlo para instalarlo en otra ubicación, antepone DESTDIR al comando: DESTDIR=/tmp/ruta ./INSTALL.sh