blob: a71946bb855d7920c9b18dd33c0e06fae3d78a9d (
plain) (
tree)
|
|
<!DOCTYPE html>
<html dir="ltr" lang="en">
<head>
<meta charset='utf-8'>
<title>2.4. Package Management</title>
</head>
<body>
<a href="index.html">Core OS Index</a>
<h1>2.4. 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.4.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.4.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.4.3. Ports collections</h3>
<p>Clone this documentation;</p>
<pre>
$ git clone git://hive.gnu.systems/ports.git
</pre>
<p>Install collections later documented;</p>
<pre>
$ sudo cp c9-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/c9-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 c9-ports
$ sudo ports -u 6c37-dropin
$ sudo ports -u 6c37
</pre>
<h2 id="info">2.4.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.4.5. Show port dependencies</h2>
<pre>
$ prt-get depends port_name
</pre>
<h2 id="printf">2.4.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">Core OS Index</a>
<p>This is part of the Hive System Documentation.
Copyright (C) 2018
Hive Team.
See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
for copying conditions.</p>
</body>
</html>
|