Ho alcuni progetti Python che dipendono l'uno dall'altro. Dispongo di versioni di versioni diverse per ogni progetto e diversi progetti potrebbero dipendere dalle diverse versioni di rilascio di un particolare progetto. Vorrei creare il mio repository di conda su un server interno dove posso spingere le versioni di questi progetti come pacchetti di conda e gli altri progetti possono installare la versione richiesta da lì. È possibile? Se é cosi, come?Come posso ospitare il mio repository privato di conda?
risposta
È possibile utilizzare un conda custom channel come repo privato. I passaggi essenziali sono usare "conda build" per creare un pacchetto conda, quindi copiare quel pacchetto nel tuo canale personalizzato (una directory), e ora eseguire l'indice di conda su quella directory. È quindi possibile installare i pacchetti da questo canale utilizzando "conda install -c".
Un esempio, più in dettaglio, supponiamo linux-64:
- creare il canale:
mkdir -p /tmp/my-conda-channel/linux-64
Ora supponendo che hai qualche progetto denominato "abc" con un meta.yaml e build.sh con qualche versione X. Ora si costruisce:
conda build abc
Questo b uild un file tar.bz2 nella tua directory conda-bld. Ad esempio: ~/miniconda3/conda-bld/linux-64/abc-X-py35_0.tar.bz2. Copiare il file sul tuo canale:
cp ~/miniconda3/conda-bld/linux-64/abc-X-py35_0.tar.bz2 /tmp/my-conda-channel/linux-64/
Ora indicizzarlo:
conda index /tmp/my-conda-channel/linux-64/
questo punto le caricato quel pacchetto al vostro canale personalizzato. È possibile installarlo in uno qualsiasi dei vostri ambienti Conda facendo:
conda install -c file://tmp/my-conda-channel/ abc=X
Dove, richiamo, la X è la versione così, una volta che hai messo più versioni nel canale, è possibile installare versioni specifiche.
Se si dispone di un progetto che dipende dalla versione X di "abc", è sufficiente aggiungerlo ai progetti meta.yaml. Esempio:
package:
name: some-other-project
version: 0.1
requirements:
build:
- abc X
...
Dopo aver creato questo canale è probabilmente una buona idea aggiungere al file .condarc in modo che si otterrà cercata automaticamente. Ad esempio:
channels:
- file://tmp/my-conda-channel/
- defaults
Un modo per farlo in modo che il tuo canale sia accessibile tramite http? – ostrokach