about summary refs log tree commit diff stats
path: root/core/package.html
blob: e0f8eaee4c34c7a5ad370c7ca85ef474792a04df (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<!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 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/machine-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 machine-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>