<!DOCTYPE html> <html dir="ltr" lang="en"> <head> <meta charset='utf-8'> <title>2.2. Package Management</title> </head> <body> <a href="index.html">GNU/Linux Index</a> <h1>2.2. Package Management</h1> <p>For more information read crux handbook Package management front-end: <a href="https://crux.nu/Handbook3-3#ntoc20">prt-get</a> and Introduction to <a href="https://crux.nu/Main/Handbook3-3#ntoc14">pkgutils</a>.</p> </p> <dl> <dt>pkgmk(8)</dt> <dd>Makes a software package. A package is an archive of files (.pkg.tar.gz, .pkg.tar.bz2 or .pkg.tar.xz) that can be installed using pkgadd(8).</dd> <dt>pkgadd(8)</dt> <dd>install a software package. A package is an archive of files (.pkg.tar.gz).</dd> <dt>pkginfo(8)</dt> <dd>Displays information about software packages that are installed on the system or that reside in a particular directory.</dd> <dt>pkgrm(8)</dt> <dd>Removes/uninstalls a previously installed software packages.</dd> <dt>prt-get(8)</dt> <dd>prt-get is a package management tool which provides additional functionality to crux' package management system. It works with the local ports tree and is therefore fully compatible with ports(8) and pkgmk(8)/pkgadd(8)</dd> </dl> <p>Test configuration by runing prt-get as admin user installing ports that are related;</p> <pre> $ prt-get depinst prt-utils prt-get-bashcompletion </pre> <h2 id="sysup">2.2.1. Update System</h2> <p>Before build software get latest version of port collections;</p> <pre> $ sudo ports -u </pre> <p>When coming from install or there is to much updates, I prefer to update gcc, glibc, libtool and binutils before doing a sysup;</p> <pre> $ prt-get update gcc $ prt-get update glibc $ prt-get update libtool $ prt-get update binutils </pre> <p>Build and install updated versions of ports;</p> <pre> $ prt-get sysup </pre> <p>Rebuild any revision dependency;</p> <pre> $ prt-get update -fr $(revdep) </pre> <h2 id="depinst">2.2.2. Install port and dependencies</h2> <p>Installing using prt-get tool;</p> <pre> $ prt-get depinst git </pre> <p>Installing using pkgmk and pkgadd, first build the package;</p> <pre> $ cd /usr/ports/opt/git $ sudo -H -u pkgmk fakeroot pkgmk -d </pre> <p>Install the package;</p> <pre> $ sudo pkgadd /usr/ports/packages/git#2.9.3-1.pkg.tar.gz </pre> <p>If you user pkgmk and pkgadd allways check if README, pre and post instal files exist.</p> <h3 id="ports">2.2.3. Ports collections</h3> <p>Clone this documentation;</p> <pre> $ git clone git://tribu.semdestino.org/ports.git </pre> <p>Install collections later documented;</p> <pre> $ sudo cp doc/core/conf/ports/* /etc/ports/ </pre> <p>Edit /etc/prt-get.conf to activate new collections;</p> <pre> # the following line enables the user maintained contrib collection prtdir /usr/ports/contrib # ports described on this documentation prtdir /usr/ports/ports # 6c37 team provides a collection with freetype-iu, fontconfig-iu # and cairo-iu ports. # prtdir /usr/ports/6c37-dropin # prtdir /usr/ports/6c37 </pre> <p>Get new ports;</p> <pre> $ sudo ports -u ports </pre> <h2 id="info">2.2.4. Show port information</h2> <pre> $ prt-get info port_name </pre> <p>List files port install into system;</p> <pre> $ pkginfo -l package_name </pre> <p>Discover to wich port a file belongs;</p> <pre> $ pkginfo -o filename </pre> <h2 id="depends">2.2.5. Show port dependencies</h2> <pre> $ prt-get depends port_name </pre> <h2 id="printf">2.2.6. Print information</h2> <p>Example how to get ports installed from contrib. Maybe there is a "cleaner" way to this, for now is ok;</p> <pre> prt-get printf "%p %i %n %v\n" | grep "/usr/ports/contrib yes" </pre> <a href="index.html">GNU/Linux Index</a> <p>This is part of the LeetIO System Documentation. Copyright (C) 2021 LeetIO Team. See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a> for copying conditions.</p> </body> </html>