Esercitazione: Pubblicare pacchetti in un registro vcpkg privato con Git
È possibile creare un registro privato di pacchetti da usare tramite vcpkg usando Git. I registri privati sono ideali se si vogliono usare librerie private o si vogliono apportare modifiche non pubbliche ai pacchetti esistenti. Hai il controllo completo sulle versioni e sui contenuti dei pacchetti, quindi non c'è limite a ciò che puoi inserire in un registro privato.
In questa esercitazione viene illustrato come:
Prerequisiti:
- vcpkg
- Git
- Un terminale
1 - Creare un registro vcpkg con Git
I registri basati su Git di vcpkg sono repository Git con un layout specifico che vcpkg riconosce.
Inizializzare un registro Git:
mkdir vcpkg-registry
cd vcpkg-registry
git init
2 - Creare il layout del Registro di sistema
Un registro basato su Git vcpkg richiede quanto segue:
- una cartella denominata
ports
per contenere le porte del Registro di sistema, - una cartella denominata
versions
per contenere il database delle versioni, - un file denominato
baseline.json
nellaversions
cartella .
Il repository può contenere qualsiasi altro file desiderato, ad esempio script, un file LICEN edizione Standard, un file, una README.md
documentazione e così via.
1 - Creare le ports
cartelle e versions
:
mkdir ports
mkdir versions
2 - Creare un file denominato baseline.json
nella versions
cartella con il contenuto seguente:
{
"default": {}
}
Il file minimo valido baseline.json
deve includere il contenuto precedente. Leggere la documentazione sul controllo delle versioni per altre informazioni sul baseline.json
file e sul database delle versioni.
3 - Eseguire il commit delle modifiche nel repository
git add versions/baseline.json
git commit -m "Initial commit"
Facoltativamente, se si dispone di un repository Git remoto configurato, questo è un buon punto per eseguire il push delle modifiche.
git remote add origin https://example.com/vcpkg-registry.git
git push --set-upstream origin HEAD
3 - Aggiungere porte al Registro di sistema
Copiare tutte le porte del ports
pacchetto nella cartella nel Registro di sistema. Ogni porta deve avere una propria directory contenente almeno un vcpkg.json
file e un portfile.cmake
file. Altre informazioni sulla creazione di porte sono disponibili nell'esercitazione sulla creazione di pacchetti di repository GitHub.
git add ports/.
git commit -m "Add registry ports"
4 - Aggiornare il database delle versioni
Ogni porta nel Registro di sistema deve avere un file di versione corrispondente. I file di versione vengono generati dal vcpkg x-add-version
comando . Questo comando aggiorna anche la voce di base per ogni porta in version/baseline.json
.
Per aggiornare il database delle versioni per tutte le porte contemporaneamente, eseguire:
vcpkg --x-builtin-ports-root=./ports --x-builtin-registry-versions-dir=./versions x-add-version --all --verbose
--x-builtin-registry-versions-dir
E --x-builtin-ports-root
sono opzioni di reindirizzamento.
In genere, il x-add-version
comando opera nel Registro di sistema predefinito di vcpkg, ma usando le opzioni di reindirizzamento, è possibile usare il comando nei registri Git locali.
L'opzione --all
rende vcpkg analizzare la ports
directory per tutte le porte disponibili e aggiornarle tutte contemporaneamente. Infine, l'opzione --verbose
rende il comando stampare ogni operazione eseguita nell'output standard, è possibile eliminare l'output rimuovendo questa opzione.
Richiede x-add-version
che tutte le modifiche alle porte siano state sottoposte a commit nel repository Git del Registro di sistema. Per altre informazioni, vedere la documentazione di [x-add-version
comando].
Quando tutto l'output è corretto, eseguire:
git add .
git commit -m "Update versions database"
Se si dispone di un repository Git remoto, non dimenticare di eseguire il push delle modifiche:
git push
Passaggi successivi
L'attività è terminata. È stato configurato un registro privato basato su Git da usare con vcpkg.
Ecco alcune attività aggiuntive da provare: