در نصب پیش فرض ابزاری به نام portsnap وجود دارد که به کمک آن میتوانید درخت پورت ها را به روزرسانی کنید. این ابزار به یک سرور راه دور متصل شده، بعد از بررسی کلید امنیتی، آخرین نسخه از درخت پورت ها را دانلود میکند. از کلید امنیتی برای اطمینان از صحت دریافت فایلها استفاده میشود. برای دریافت آخرین نسخه از درخت پورت ها دستور زیر را اجرا کنید:
# portsnap fetch Looking up portsnap.FreeBSD.org mirrors... 9 mirrors found. Fetching snapshot tag from geodns-1.portsnap.freebsd.org... done. Fetching snapshot metadata... done. Updating from Tue May 22 02:12:15 CEST 2012 to Wed May 23 16:28:31 CEST 2012. Fetching 3 metadata patches.. done. Applying metadata patches... done. Fetching 3 metadata files... done. Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done. Applying patches... done. Fetching 133 new ports or files... done.
اگر قبلاً درخت پورت ها را با استفاده از portsnap دریافت کردهاید، portsnap فقط فایلهای تغییر کرده و جدید را دریافت خواهد کرد که این مرحله مدت زمان کوتاهی به طول خواهد انجامید. اما اگر درخت پورت ها را قبلاً با ابزار دیگری به جز portsnap دریافت کردهاید (یا اگر درخت پورت ها وجود نداشته باشد)، portsnap درخت پورت ها را به صورت کامل و از ابتدا دریافت خواهد کرد که این مرحله ممکن است کمی بیشتر طول بکشد.
بعد از اینکه فایلهای مورد نیاز دریافت شدند، باید آنها را بر روی درخت پورت ها اعمال کرد. در صورتی که برای اولین بار portsnap را اجرا میکنید، دستور زیر را اجرا کرده تا درخت پورت ها استخراج شود:
# portsnap extract /usr/ports/.cvsignore /usr/ports/CHANGES /usr/ports/COPYRIGHT /usr/ports/GIDs /usr/ports/KNOBS /usr/ports/LEGAL /usr/ports/MOVED /usr/ports/Makefile /usr/ports/Mk/bsd.apache.mk /usr/ports/Mk/bsd.autotools.mk /usr/ports/Mk/bsd.cmake.mk ...
اما اگر قبلاً درخت پورت ها را با portsnap دریافت کردهاید، دستور زیر را اجرا کنید تا پورت ها به روز شوند:
# portsnap update
میتوان تمام این مراحل را به صورت یکجا انجام داد:
# portsnap fetch update
فایل پیکربندی
فایل پیکربندی portsnap در مسیر /etc/portsnap.conf قرار دارد. این فایل رفتار برنامه portsnap را کنترل میکند. مثلاً مشخص میکند که portsnap باید درخت پورت ها را از کجا دریافت کند، از چه کلیدی برای بررسی صحت آنها استفاده کند و همین طور آنها را در کجا استخراج کند.
خط زیر مشخص میکند که portsnap باید درخت پورت ها را از کجا دریافت کند:
SERVERNAME=portsnap.example.com
این خط معادل استفاده از گزینه -s server در خط فرمان است.
خط زیر کلید امنیتی را مشخص میکند:
KEYPRINT=0123456789abc ... 456789abcdef
این کلید ۶۴ کاراکتر طول دارد. این خط معادل استفاده از گزینه -k key در خط فرمان است.
خط زیر مشخص کننده دایرکتوری موقتی است که portsnap برای نگهداری فایل ها از آن استفاده میکند.
WORKDIR=/path/to/workdir
فایلها بعد از اینکه دریافت شدند در این دایرکتوری نگه داشته میشوند تا بعداً بر روی درخت پورت ها اعمال شوند. این خط معادل استفاده از گزینه -d workdir در خط فرمان است.
خط زیر محل قرارگیری درخت پورت ها را مشخص میکند:
PORTSDIR=/path/to/portstree
فایلها بعد از اینکه دریافت شدند، در این مسیر استخراج خواهند شد. مقدار پیش فرض آن /usr/ports است. این خط معادل استفاده از گزینه -p portsdir در خط فرمان است.
برای کسب اطلاعات بیشتر درباره فایل پیکربندی portsnap.conf را ببینید.