Pakettivarastojen konfigurointi Composerilla

Ingmar Aasoja
Jaa:


Tämä on kolmas osa blogikirjoitusten sarjasta, joka käsittelee Composer-nimistä paketinhallintaohjelmaa, joka helpottaa WWW-sivustojen kehittämistä. Aiemmin esittelin composer.phar-ohjelman käytön aloittamista ja yleisimpiä komentoja. Seuraavaksi vastaamme kysymykseen siitä, miten Composerilla voidaan asentaa itse tehty paketti siten, että jokin muu paketti tulee riippuvaiseksi siitä.

Kun asennat riippuvuutta composer install -komennolla, kyseisen paketin tiedot haetaan ensin julkisesta packagist.org-rekisteristä. Jos haluat pystyä asentamaan kotitekoisen paketin samalla komennolla, siihen on useita vaihtoehtoja.

Packagist.org

Jos kyseessä on avoimen lähdekoodin sovellus, se voidaan kirjata julkiseen packagist.org-rekisteriin, joka skannaa julkista Git-pakettivarastoa joko manuaalisesti tai automaattisesti webhook-menetelmällä, ja paketti asentuu ilman lisätoimia. Ainoa ehto on, että paketin nimen tulee olla yksilöllinen.

Composer.json-tiedoston konfigurointi

Suojattuja Git-pakettivarastojen voi konfiguroida myös suoraan sen projektin composer.json-tiedostossa, jolle kyseinen riippuvuus halutaan asentaa. Tätä varten sinun on konfiguroitava haluamasi paketit repositories-kohtaan.

{
    "repositories": [
        {
            "type": "vcs",
            "url":  "git@minu-git-aadress.org:vendor/minut-git-repo.git"
        }
    ],
    "require": {
        "vendor/minut-git-repo": "dev-master"
    }
}Code language: JSON / JSON with Comments (json)

Tämä ratkaisu tukee Gitin lisäksi versionhallintajärjestelmiä Subversion, Mercurial ja Fossil.

Suojatun rekisterin käyttö

Jos suojattuja paketteja on useita ja niiden hallinta composer.json-tiedostoissa on monimutkaisempaa, voit käyttää myös omaa rekisteriäsi. Siihenkin on useita vaihtoehtoja. Voit esimerkiksi käyttää maksullista Private Packagist-palvelua, joka auttaa myös julkisten riippuvuuksien hallinnassa seuraamaan tietoturva-aukkoja sekä heijastamaan koodia tapauksissa, joissa jokin kirjasto ei ole tavoitettavissa silloin, kun sitä tarvitaan.

Vaihtoehtoisesti tällaista rekisteriä voi isännöidä myös itse. Siihen sopii hyvin myös Zone-isännöintiohjelmistossa toimiva Satis, joka tuottaa Composerille konfigurointitiedostolla luettavissa olevan staattisen rekisterin.

Satis-työkalun asennus

Ensin asennamme Satisin virtuaalipalvelimelle. Tätä varten kirjaudumme palvelimelle SSH:n kautta ja siirrymme verkkotunnuksen kokoelmahakemistoon:

cd verkkotunnukset/www.upeanakoala.euCode language: Bash (bash)

Sitten asennamme sovelluksen:

# kloonaamme satisin git-pakettivaraston
git clone https://github.com/composer/satis.git

# asennamme tarvittavat riippuvuudet 
cd satis
composer install

# luomme hakemiston, jossa alamme näyttää pakettivarastoja
mkdir public

WWW-palvelimen konfigurointi

Julkaistaksemme pakettivaraston lisäämme palvelimellemme aliverkkotunnuksen nimeltä satis.upeanakoala.eu ja asetamme Hakemisto palvelimella-arvoksi satis/public.

Satisin konfigurointi

Sitten luomme palvelimelle satis.json-tiedoston ja sijoitamme sen yhdellä tasolla aliverkkotunnusta palvelevan hakemiston yläpuolelle eli satis-hakemistoon. Yhden osan tiedoston sisällöstä muodostaa yleinen registrykonfiguraatio ja toisen osan pakettivarastojen kokonaisuus, jonka haluat lisätä sinne. Niillä on kuitenkin täsmälleen sama rakenne kuin composer.json-tiedoston repositories-kohdalla.

Tiedoston sisältö voisi näyttää seuraavalta:

{
    "name": "my/repository",
    "homepage": "https://satis.upeanakoala.eu",
    "repositories": [
        {
            "type": "vcs",
            "url":  "git@minu-git-aadress.org:vendor/minut-git-repo.git"
        }
    ],
    "require-all": true
}Code language: JSON / JSON with Comments (json)

Kaikki pakettivarastot, jotka haluat lisätä rekisteriin, on konfiguroitava tässä tiedostossa repositories-kohtaan.

Satisin käynnistäminen

Jotta voit aloittaa oman rekisterisi käytön, sinun on luotava konfigurointitiedostosta rekisteri. Tämä komento käy läpi kaikki konfiguroidut Git-pakettivarastot ja luo niitä vastaavan sisällön, joka näkyy verkosta. Sitä varten tulee suorittaa satis-hakemistossa seuraava komento:

php bin/satis build satis.json publicCode language: Bash (bash)

Jos avaat sitten selaimellasi satis.upeanakoala.eu-aliverkkotunnuksen, näet luodun rekisterin ja saatavilla olevat paketit. Tarkempia konfigurointivaihtoehtoja löytyy dokumentaatiosta, jonka käytöstä voi lukea lisää myös Satisin dokumentaatiosta. Yksinkertaisuussyistä emme kuitenkaan konfiguroi sitä tässä esimerkissä.

Suojatun rekisterin käyttöönotto

Jotta kyseisessä rekisterissä olevia paketteja voidaan ottaa käyttöön, on konfiguroitava asianmukaisen paketin composer.json-aliverkkotunnus:

        "repositories": [
        {
            "type": "composer",
            "url": "https://satis.upeanakoala.eu"
        }
    ]Code language: JSON / JSON with Comments (json)

Sitten voitkin asentaa paketit, jotka ovat mahdollisia viitatussa rekisterissä.

Lisäksi

Vaikka meillä onkin nyt täysin toimiva, suojattu ja Composerilla käytettävissä oleva rekisteri, on silti huomattava pari asiaa.

1. Todennus

Ei haittaa, jos voit rajoittaa pääsyä aliverkkotunnukseen esimerkiksi IP-osoitteilla, jotka liittyvät kyseistä rekisteriä käyttäviin palvelimiin, tai konfiguroida HTTP basic auth -salasanatodennuksen.

2. Automaattinen päivittäminen

Jotta pakettivarastojen rekisteri päivittyy automaattisesti, kannattaa lisätä päivityskomento cd www.upeanakoala.eu/satis [[$PHP]] bin/satis build satis.json public määräajoin suoritettaviin tehtäviin ja suorittaa se kohtuullisin väliajoin – esimerkiksi kerran päivässä riippuen siitä, kuinka usein kyseiset paketit saattavat päivittyä.

3. Pakettien heijastaminen

Jos haluat ottaa ohjat omiin käsiisi ja olla riippumaton Githubista, voit myös heijastaa konfiguroidut paketit samalle Satis-palvelimelle. Tämä vähentää myös ulkoisen verkon liikennettä ja nopeuttaa asennusta Zonen palvelujen sisällä. Satisia voi kuitenkin käyttää myös julkisten pakettien heijastamiseen.

Heijastamista varten on lisättävä satis.json-tiedostoon seuraavat rivit:

...
    "archive": {
        "directory": "dist",
        "format": "tar",
        "skip-dev": true
    }
...Code language: JSON / JSON with Comments (json)

Jo seuraavalla suorituskerralla nämä paketit asentuvat public-kansioon. Muista kuitenkin, että virtuaalipalvelimella on rajoitetusti levytilaa, joten kannattaa asentaa heijastettaviksi vain välttämättömät pakettivarastot.

Suositut postaukset

Nämä työkalut auttavat sinua parhaiten analysoimaan kilpailijoitasi

Zone Blogi
Kun harjoitat liiketoimintaa verkossa, sinun on pidettävä yrityksesi kuvassa, jotta se erottuu muiden joukosta. Sivuston tai verkkokaupan näkyvyyden...

.COM-verkkotunnuksen hinta nousee tänäkin vuonna

Jaanus Putting
Vaikka olemme kirjoittaneet tässä blogissa jo kolmena viime kesänä, että .com-verkkotunnuksen hinnannousu pysähtyy vuonna 2024, kyseisen ylätason...

Kahdeksan Composerin komentoa, jotka jokaisen PHP-kehittäjän tulisi tuntea

Ingmar Aasoja
Artikkelin Näin aloitat Composerin käytön jatkona esittelen joitakin yleisimpiä komentoja, jotka jokaisen PHP-kehittäjän tulisi tuntea. Näitä...

Näin aloitat composer.phar-tiedoston käytön

Ingmar Aasoja
Vielä jokin aika sitten ei ollut yhtä ainoaa tapaa asentaa kirjastoja PHP:tä varten. Ratkaisut vaihtelivat kehyksittäin. Tilanne muuttui Composerin...