Ottenere aiuto e informazioni sulla versione

Traduzione automatica provvisoria, non revisionata. In caso di dubbio, consultare la versione inglese, che fa fede.

Kent risponde a due domande senza toccare alcun database: che cosa sa fare e che versione è.

kent help e kent --help

Entrambi elencano ogni comando e ogni opzione con una descrizione di una riga di ciò che fa, e l'output è identico nei due casi. Digitate quello che vi viene più naturale.

$ kent help
kent works with Cordelia databases from the command line.

Usage:

    kent <command> [arguments]

The commands are:

    help
        print this message
    createdb <dbfilename>
        create an empty database, stamped with the schema version this build expects
    info <dbfilename>
        report the schema version and a row count for each table that holds rows
    details <dbfilename>
        as info, plus the tables it leaves out and the file's own attributes
    files <dbfilename>
        list the .FIT files the database was built from
    activities <dbfilename>
        list each recorded activity with its dates and sport
    sports <dbfilename>
        list the distinct sports and sub-sports present in the database
    verify <dbfilename>
        check the database's structure against the schema this build creates
    sqldump --in <dbfilename> [--out <outfile>] [--schema-only]
        write the database out as SQL that recreates it when replayed
    archive --in <dbfilename> --out <archive>
        write the database to a .kent archive, for other tools to read
    restore --in <archive> --out <dbfilename>
        rebuild a database from a .kent archive

The flags are:

    --version
        print kent's version, and the version of each library it was built against
    --devinfo
        the same, with each build's commit hash; quote this in a defect report
    --help
        print this message
    --license
        print the licence kent is distributed under
    --privacy
        print kent's privacy policy

See "man kent" for the full description of any command.

Quell'elenco è tutto ciò che Kent sa fare. Qualsiasi cosa non vi compaia non è un comando che Kent comprende: si veda Messaggi di errore e codici di uscita per cosa succede se ci si prova, e la Roadmap del prodotto per ciò che potrà essere aggiunto in seguito.

È anche l'elenco a cui dare fiducia prima che a questa pagina. Kent lo genera dalla propria tabella dei comandi, quindi non può descrivere un comando che Kent non ha.

kent --version

Stampa la versione di Kent stesso, poi una riga per ciascuna libreria incorporata. Kent usa il codice di accesso ai dati di Cordelia, un livello SQLite condiviso, la libreria di archiviazione usata dai suoi file .kent e una libreria di base condivisa. Due di queste incorporano librerie esterne, e ciascuna compare subito dopo la libreria che la incorpora: SQLite dopo il livello SQLite, e le due librerie di compressione dopo la libreria di archiviazione.

$ kent --version
kent version 1.3.4 uses
    cordelia 1.3.3
    curan 1.0.0
    SQLite 3.53.4
    regan 1.1.0
    zlib-ng 2.3.3
    minizip-ng 4.2.2
    goneril 1.4.1

Ogni numero proviene dalla build del proprio componente, quindi si muovono in modo indipendente. Un Kent compilato contro una Cordelia più recente riporta qui quella Cordelia più recente senza che la versione di Kent cambi.

kent --devinfo

Stampa lo stesso elenco con un identificativo di build dopo ogni versione, che indica esattamente quale build di ciascun componente si ha. Le librerie esterne mostrano le stesse versioni di sopra, perché ciascuna è una versione pubblicata fissa.

$ kent --devinfo
kent version 1.3.4-d9c6caf76b uses
    cordelia 1.3.3-1f754c95d6
    curan 1.0.0-200cf6264e
    SQLite 3.53.4
    regan 1.1.0-4b4934c37f
    zlib-ng 2.3.3
    minizip-ng 4.2.2
    goneril 1.4.1-06a94fe891

Questo è l'output da citare quando si segnala un problema: si veda Segnalazioni di bug e richieste di funzionalità.

kent --license e kent --privacy

Questi due stampano un documento ed escono. --license stampa i termini con cui Kent è distribuito; --privacy stampa la sua informativa sulla privacy, che in sintesi dice che Kent non effettua connessioni di rete, non raccoglie nulla e legge e scrive soltanto i percorsi che indicate sulla sua riga di comando.

$ kent --license | less
$ kent --privacy | less

Entrambi i testi sono compilati nel programma a partire dagli stessi file che il progetto pubblica, quindi la copia che Kent stampa non può divergere da quella su questo sito: si veda la Licenza e l'Informativa sulla privacy.

Il loro testo va sullo standard output anziché sullo standard error, perché è l'output che avete chiesto e non una diagnostica. È questo che fa funzionare la pipe verso less qui sopra.

Dove va l'output

La maggior parte dei comandi di Kent stampa tutto sullo standard output, messaggi di errore compresi, quindi reindirizzare lo standard output su un file cattura una trascrizione completa:

$ kent info mydata.sqlite > report.txt

sqldump e archive sono diversi, deliberatamente: tutto ciò che stampano, errori e avvisi allo stesso modo, va invece sullo standard error. Per sqldump è essenziale, perché con --out omesso è lo script esportato stesso a occupare lo standard output, e un messaggio stampato lì vi si intercalerebbe silenziosamente.

$ kent sqldump --in old.sqlite > old.sql   # only the script lands in the file
$ kent sqldump --in old.sqlite 2> errors.txt   # only the messages land here

Anche un errore interno non gestito va sullo standard error, da qualunque comando. Aggiungere 2>&1 cattura tutto in una volta, cosa che conviene fare quando state raccogliendo l'output da allegare a una segnalazione di bug.

Vedi anche