Na starších systémech FreeBSD není Portsnap automaticky zahrnut, ale lze jej nainstalovat z portu sysutils/portsnap pomocí příkazu:
# pkg_add -r portsnap
Portsnap nejprve načte a aktualizuje komprimované snímky stromu portů FreeBSD uložené ve /var/db/portsnap/ (v /usr/local/portsnap/, pokud je Portsnap nainstalován z FreeBSD Ports Collection) a poté pouze extrahuje a aktualizuje nekomprimované strom živých portů v /usr/ports.
Chování a provoz Portsnap je řízeno konfiguračním souborem portsnap.conf umístěným v /etc (v /usr/local/etc/, pokud je Portsnap nainstalován z FreeBSD Ports Collection a konfigurační soubor se nevygeneruje automaticky, když je čerstvě nainstalován, místo toho najdete portsnap.conf.sample, stačí jej zkopírovat jako portsnap.conf). Obecně platí, že výchozí konfigurační soubor udělá svou práci.
Na příkazovém řádku jsou podporovány následující možnosti, i když je většinou není nutné používat, některé lze nakonfigurovat v samotném konfiguračním souboru:
-d workdir :Uloží pracovní soubory (např. stažené aktualizace) do workdir. (výchozí:/var/db/portsnap, nebo jak je uvedeno v konfiguračním souboru)
-f conffile :Načte konfiguraci z konfiguračního souboru. (výchozí:/etc/portsnap.conf)
-I :U příkazu update aktualizujte soubory INDEX, ale ne zbytek stromu portů.
-k KEY :Očekává veřejný klíč s daným hashem SHA256. (výchozí:čtení hodnoty z konfiguračního souboru)
-p portsdir :Při extrahování nebo aktualizaci nekomprimovaného snímku pracujte s adresářem portsdir. (výchozí:/usr/ports/, nebo jak je uvedeno v konfiguračním souboru.)
-s server:Načte soubory ze zadaného serveru nebo fondu serverů. (výchozí:portsnap.FreeBSD.org nebo jak je uvedeno v konfiguračním souboru.)
cesta :Pouze pro příkaz extrakt, operujte pouze s částmi stromu portů počínaje cestou. (např. portsnap sysutils/port by extrahoval sysutils/portsman, sysutils/portsnap, sysutils/portupgrade atd.)
Synopse pro příkazový řádek Portsnap je:
portsnap [-I] [-d workdir] [-f conffile] [-k KEY] [-p portsdir] [-s server] příkaz … [cesta]
Použití Portsnap
- Vytvořte prázdný adresář /usr/ports, pokud neexistuje.
# mkdir /usr/ports
- Načtěte a stáhněte komprimovaný snímek kolekce portů do /var/db/portsnap (nebo do jiného umístění zadaného v konfiguračním souboru). V této fázi je potřeba připojení k internetu) a aktualizujte stávající snímek.
# portsnap fetch
- Pokud spouštíte Portsnap poprvé (i když byl strom portů již vytvořen nebo naplněn, aby Portsnap vytvořil základní linii, ze které může portsnap určit, které části stromu portů je třeba aktualizovat) nebo /usr /ports nebyl naplněn, rozbalte snímek a nahradí existující soubory a adresáře a založte strom portů udržovaný Portsnap do /usr/ports:
# portsnap extract
Tento krok lze přeskočit, pokud pouze aktualizujete strom portů.
- Pokud již máte vyplněný /usr/ports a právě aktualizujete, spusťte místo toho následující příkaz:
# portsnap update
Poznámka:Pro aktualizaci stromu portů FreeBSD lze kroky 1 a 3 sloučit do jediného příkazu:portsnap fetch update (nepodporuje starší verze Portsnap).
Spuštění Portsnap jako Cron Job
Portsnap fetch nebude možné provést z úlohy cron, aby se zabránilo zatížení náhlým nárůstem požadavku na stahování na servery Portsnap. Místo toho existuje speciální příkaz portsnap cron, který čeká a spí po náhodnou dobu až 3600 sekund před načtením aktualizací, jako by byl zadán příkaz načíst.
Chcete-li automaticky spustit portsnap s úlohou cron, přidejte řádek do /etc/crontab (řádek nastavil čas na 3 hodiny ráno každý den, můžete si vybrat vlastní časování):
0 3 * * * root /usr/sbin/portsnap cron
To zajistí, že snímek kolekce portů FreeBSD bude vždy aktuální a bude možné jej rychle extrahovat do /usr/ports.
Poznámka:Spuštění aktualizace portsnap z cronu se nedoporučuje, protože může způsobit problém, pokud k instalaci nebo aktualizaci portu dojde v době spuštění úlohy cron. Portsnap aktualizuje nebo odebere soubory, které používá sestavení portu. Nicméně spuštěním portsnap -I update aktualizace portů Indexové soubory jsou možné a lze je použít společně s portversion k identifikaci nainstalovaného softwaru, který je zastaralý.
Chcete-li aktualizovat komprimovaný snímek portů a soubory INDEX v /usr/ports/ a odeslat e-mail, pokud jsou některé nainstalované porty zastaralé, použijte následující řádek v /etc/crontab:
0 3 * * * root portsnap -I cron update && pkg_version -vIL=
Poznámka:Starší verze portsnap nepodporuje výpis více příkazů (např. cron update) při stejném vyvolání portsnap. Pokud výše uvedený řádek selže, zkuste nahradit portsnap -I cron update za portsnap cron &&portsnap -I update .