Condividi tramite


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 nella versions 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: