Added 3.8.2
[ikiwiki.git] / docs / howtos / HowToDPorts / index.mdwn
index 98a512d..1182671 100644 (file)
@@ -2,41 +2,24 @@
 
 Dports is DragonFly's own third-party software build system.  It is based on FreeBSD's Ports Collection.  Differences between ports and DPorts are intentionally kept to a minimum, both to maintain familiarity for mutual users of both operating systems and also to leverage the tremendous amount of work the FreeBSD contributors put into ports.  DPorts can and does feature ports unique to DragonFly, so it's truly a native system.
 
-The __pkgng__ tool called "pkg" is a modern and fast binary package manager.  It was developed for FreeBSD, but PC-BSD used it in production first, followed soon after by DragonFly.  In the future, it will be the only binary package manager on FreeBSD, just as DPorts is currently the only port manager.
+The __pkgng__ tool called "pkg" is a modern and fast binary package manager.  It was developed for FreeBSD, but PC-BSD used it in production first, followed soon after by DragonFly.  In the future, it will be the only binary package manager on FreeBSD, just it is the only port manager in DPorts.
 
-__pkgng__ is not a replacement for port management tools like `ports-mgmt/portmaster` or `ports-mgmt/portupgrade`. While `ports-mgmt/portmaster` and `ports-mgmt/portupgrade` can install third-party software from both binary packages and DPorts, __pkgng__ installs only binary packages.
+__pkgng__ is not a replacement for port management tools like `ports-mgmt/portmaster` or `ports-mgmt/portupgrade`. While `ports-mgmt/portmaster` and `ports-mgmt/portupgrade` can install third-party software from both binary packages and DPorts, __pkgng__ installs only binary packages.  On the other hand, many people use __pkgng__ by itself and never install the optional portupgrade or portmaster tools.
 
 ## Getting started with pkgng
 
-DragonFly daily snapshots and Releases (starting with 3.4) come with __pkgng__ already installed.  Upgrades from earlier releases, however, will not have it.  If the "pkg" program is missing on the system for any reason, it can be quickly bootstrapped without having to build it from source.
-
-To ensure  __pkgng__ on a DragonFly BSD 3.4 or higher system is  ready for use, run the following BEFORE you try to use `pkg` the first time:
-
-    # cd /usr
-    # make dports-create
-    # rm -rf /usr/pkg
-    # pkg upgrade
-    # rehash
-
-Since you may need to manually edit the configuration file `/usr/local/etc/pkg.conf`, here is the
-usual command to edit it using the vi editor:
-
-     # vi /usr/local/etc/pkg.conf
-
-Before using consult the man page (`man pkg`) and then try these examples:
-
-    # pkg search editors
-    # pkg install vim
-
-
-To bootstrap __pkgng__ with a download on a very old version of DragonFly that is still using `pkgsrc` run:
+DragonFly daily snapshots and Releases (starting with 3.4) come with __pkgng__ already installed.  Upgrades from earlier releases, however, will not have it.  If the "pkg" program is missing on the system for any reason, it can be quickly bootstrapped without having to build it from source or even having dports installed:
 
     # make pkg-bootstrap
     # rehash
     # pkg-static install -y pkg
     # rehash
 
-Note that this step is unnecessary for any newly installed release from DragonFly 3.4 onwards.
+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.
 
 ## Configuring pkgng
 
@@ -47,6 +30,8 @@ Older versions of pkgng saved their configuration at /usr/local/etc/pkg.conf; th
     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
@@ -95,7 +80,7 @@ Test their performance---we will be using the fastest one.  This may, or may not
     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.  Edit the one you renamed:
+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
@@ -104,20 +89,28 @@ Now, navigate to `/usr/local/etc/pkg/repos/` and rename one of the configuration
     df-latest.conf.sample -> df-latest.conf
     # chmod -v 644 df-latest.conf
     df-latest.conf
-    # vim df-latest.conf
+    # vi df-latest.conf
 
-Enable whichever server was faster (Avalon is American, SchlundTech is German):
+Enable whichever server was faster (Avalon is American, SchlundTech is German), and pkg+ to the url and SRV to mirror_type:
 
     Avalon: {
-        url             : http://mirror-master.dragonflybsd.org/dports/${ABI}/LATEST,
+        url             : pkg+http://mirror-master.dragonflybsd.org/dports/${ABI}/LATEST,
+        mirror_type     : SRV
         [...]
         enabled         : no
     }
     SchlundTech: {
-        url             : http://dfly.schlundtech.de/dports/${ABI}/LATEST,
+        url             : pkg+http://dfly.schlundtech.de/dports/${ABI}/LATEST,
+        mirror_type     : SRV
+        [...]
         enabled         : yes
     }
 
+Before using, consult the man page (`man pkg`) and then try these examples:
+
+    # pkg search editors
+    # pkg install vim
+
 ## Basic pkgng Operations
 
 Usage information for __pkgng__ is available in the pkg(8) manual page, or by running `pkg` without additional arguments.