about summary refs log blame commit diff stats
path: root/core/package.html
blob: 7d4c8b507d2ef940e0b57547c99a8b43a6db7807 (plain) (tree)
1
2
3
4
5
6
7
8
9



                              
                                              


           
                                              
 
                                        
 

                                                                     
                                                                
                           
                                                                           

            
































                                                                    
                                                                        





                                                          
                                                
















                                                                            
                                                           

             
                       

              
                                               

             
                                      

              
                                                                  

                                             

             


                             
                                                                          





                                            

                                   



                                                                


                                                                              
                                                    



                                        
                                                    

              
                                                    

             
                                                   

              
                                                                  

             

                                                                           

                                               
                                       


                                                                         
                                     
                              

              
                             

             
                                     
                                   
                            

              
                                                       




                                











                                                    
                                                           




                                   
                                                     







                                                                          
                                              

                                                         
                  
                                                                                            



                                   
<!DOCTYPE html>
<html dir="ltr" lang="en">
    <head>
        <meta charset='utf-8'>
        <title>2.3. Package Management</title>
    </head>
    <body>

        <a href="index.html">Core OS Index</a>

        <h1>2.3. 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.3.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.3.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.3.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.3.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.3.5. Show port dependencies</h2>

        <pre>
        $ prt-get depends port_name
        </pre>

        <h2 id="printf">2.3.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>