Rewrite of recently reverted changes
authorjrmarino <jrmarino@web>
Sat, 28 Nov 2015 19:45:10 +0000 (19:45 +0000)
committerCharlie Root <root@leaf.dragonflybsd.org>
Sat, 28 Nov 2015 19:45:10 +0000 (19:45 +0000)
docs/howtos/HowToDPorts/index.mdwn

index 31fb342..21a5a36 100644 (file)
@@ -17,97 +17,38 @@ DragonFly daily snapshots and Releases (starting with 3.4) come with __pkg(8)__
     # pkg-static install -y pkg
     # rehash
 
-If pkgsrc has ever been installed on the system, make sure all binaries produced by it have been removed:
-
-    # rm -rf /usr/pkg
-
-Currently it's necessary to manually install the configuration file, but this requirement should disappear in the future.  After installing the configuration file, you may want to open it up and edit it to select a different mirror.
+After any installation or reinstallation of the __pkg(8)__ package, you may want to open review the configuration files to customize it, e.g. select a different mirror.
 
 ## Configuring pkg(8)
 
-Older versions of __pkg(8)__ saved their configuration at /usr/local/etc/pkg.conf; this file made reference to a PACKAGESITE.  __pkg(8)__ will still work based on this file, but will output errors:
-
-    # pkg update
-    pkg: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file
-    Updating repository catalogue
-    pkg: Warning: use of http:// URL scheme with SRV records is deprecated: switch to pkg+http://
-
-If you do __not__ see these errors, then skip to "Now, navigate to `/usr/local/etc/pkg/repos/`", otherwise:
-
-Listen to the errors: hash out the packagesite line, save the file, and move on.  This can be done with vi:
-
-    # vi /usr/local/etc/pkg.conf
-
-There will be two lines in the file like this:
-
-    # Default DPorts package server (California)
-    PACKAGESITE: http://mirror-master.dragonflybsd.org/dports/${ABI}/LATEST
+The __pkg(8)__ program has a configuration file at /usr/local/etc/pkg.conf (the default installation is typically fine and requires no alteration).  It uses a a separate location for repository configuration at /usr/local/etc/pkg/repos/ directory.
 
-Hash out the offending line:
+For fresh installations, the file /usr/local/etc/pkg/repos/df-latest.conf.sample is copied to /usr/local/etc/pkg/repos/df-latest so that __pkg(8)__ works out of the box.  The files ending in the ".sample" extension are ignored; __pkg(8)__ only reads files that end in ".conf" and it will read as many as it finds.  
 
-    # Default DPorts package server (California)
-    # PACKAGESITE: http://mirror-master.dragonflybsd.org/dports/${ABI}/LATEST
+The default is to use the California-based Avalon, which is also the master.  Avalon will have new packages first and they'll be updated as a set.  The others are mirrors and may be much, much faster depending on the user's location, but there will be a period between set updates where the mirror is mix of old and new packages.
 
-Note that, as of time of writing, there are two working package repositories:
-
-    # Default DPorts package server (California)
-    # PACKAGESITE: http://mirror-master.dragonflybsd.org/dports/${ABI}/LATEST
-    
-    # European mirrors
-    [...]
-    #PACKAGESITE: http://dfly.schlundtech.de/dports/${ABI}/LATEST
-
-Test their performance---we will be using the fastest one.  This may, or may not, be the one closest to you (the California site for the New World, the German site for the Old World).
-
-    # ping schlundtech.de
-    PING schlundtech.de (85.236.36.90): 56 data bytes
-    64 bytes from 85.236.36.90: icmp_seq=0 ttl=49 time=101.433 ms
-    64 bytes from 85.236.36.90: icmp_seq=1 ttl=49 time=59.177 ms
-    64 bytes from 85.236.36.90: icmp_seq=2 ttl=49 time=79.550 ms
-    64 bytes from 85.236.36.90: icmp_seq=3 ttl=49 time=88.268 ms
-    64 bytes from 85.236.36.90: icmp_seq=4 ttl=49 time=120.060 ms
-    [...]
-    --- schlundtech.de ping statistics ---
-    20 packets transmitted, 19 packets received, 5.0% packet loss
-    round-trip min/avg/max/stddev = 49.555/96.064/186.662/33.559 ms
-    # ping mirror-master.dragonflybsd.org
-    PING avalon.dragonflybsd.org (199.233.90.72): 56 data bytes
-    64 bytes from 199.233.90.72: icmp_seq=0 ttl=47 time=208.013 ms
-    64 bytes from 199.233.90.72: icmp_seq=1 ttl=47 time=256.441 ms
-    64 bytes from 199.233.90.72: icmp_seq=2 ttl=47 time=281.436 ms
-    64 bytes from 199.233.90.72: icmp_seq=3 ttl=47 time=281.103 ms
-    64 bytes from 199.233.90.72: icmp_seq=4 ttl=47 time=285.440 ms
-    [...]
-    --- avalon.dragonflybsd.org ping statistics ---
-    19 packets transmitted, 19 packets received, 0.0% packet loss
-    round-trip min/avg/max/stddev = 208.013/264.017/334.180/31.549 ms
-
-Now, navigate to `/usr/local/etc/pkg/repos/` and rename one of the configuration file samples you find there. `df-latest.conf` will make pkg use the newest available binaries while `df-release.conf` points to binaries built at the time of the release. The latter is frozen so you will not get any updates. Edit the one you renamed:
-
-    # cd /usr/local/etc/pkg/repos/
-    # ls
-    df-latest.conf.sample      df-releases.conf.sample
-    # cp -v df-latest.conf.sample df-latest.conf
-    df-latest.conf.sample -> df-latest.conf
-    # chmod -v 644 df-latest.conf
-    df-latest.conf
-    # vi df-latest.conf
-
-Enable whichever server was faster (Avalon is American, SchlundTech is German), and pkg+ to the url and SRV to mirror_type:
+The simple case is to use a single repository.  If you want to switch off the overloaded Avalon, simply change the *enabled* value of Avalon to "no" and enable a new single repository, e.g.:
 
     Avalon: {
         url             : pkg+http://mirror-master.dragonflybsd.org/dports/${ABI}/LATEST,
-        mirror_type     : SRV
+        mirror_type     : NONE
         [...]
         enabled         : no
     }
-    SchlundTech: {
-        url             : pkg+http://dfly.schlundtech.de/dports/${ABI}/LATEST,
-        mirror_type     : SRV
-        [...]
+    
+    Wolfpond: {
+        url             : http://pkg.wolfpond.org/${ABI}/LATEST,
         enabled         : yes
     }
 
+The provided df-latest.conf may not be up to date.  There may be defunct repositories listed and there may be active mirrors that are not listed as options.  You may edit or add new repo configuration files as necessary.
+
+It is possible to use multiple repositories.  The normal use case is that someone builds specific packages (e.g. using poudriere) which should have a higher priority over the official packages.  In other words, whenever a package has been built locally, __pkg(8)__ installs the local version and only uses the external repository to install packages not available locally.
+
+In the above case, a custom repository configuration file should be created, and it should include the "priority" field, e.g. "priority: 10".  The higher the number, the higher the priority.  The priority when unspecified is 0.
+
+The last output of "pkg -vv" lists all enable repositories and their priority values.
+
 Before using, consult the man page (`man pkg`) and then try these examples:
 
     # pkg search editors