# A mini-FAQ on pkg



## wblock@ (Dec 27, 2014)

There are a lot of misconceptions about pkg(8).  This finally motivated me to write up some of them along with answers:
What is `pkg` on FreeBSD?

(With thanks for feedback from robak on IRC!)


----------



## J65nko (Dec 27, 2014)

Please post that info here. Most of the time I cannot connect to wonkity.com 

Now you posted it here, please "stickify" it .... and you can delete this post


----------



## wblock@ (Dec 27, 2014)

A temporary version until we figure out the connection problem:

_ What is  pkg or pkgng? _

The new package management system on FreeBSD. `pkg` is the preferred name now.


_ Should I use  pkg? _

Yes. In fact, if you want to keep using binary packages or ports built after September 2014, it is required.


_ How can I tell which package management system is installed? _

FreeBSD 10.1 and later do not include the old package management system. On earlier systems, running `pkg info` shows a list of packages if `pkg` has been installed, or offers to install the new package management system if it is not present.


_ If I switch, can ports still be used? _

Of course. When a port is compiled, it actually creates a package. The package is then installed and managed by the package management system. A binary package is the same, it has just been compiled on a different computer.


_ How can I switch to  pkg? _

`portmaster ports-mgmt/pkg` to install the port.


`pkg2ng` to read the old package database and write the new one. Do that conversion only once.


_ After switching to  pkg, can the old pkg_* commands still be used? _

No, do not use the old pkg_* commands any more. The database they use is likely to be outdated or not even present. The new `pkg` commands are similar, but the `pkg` command is followed by a space and a subcommand, like `pkg info`.


_ Can the old package database files be removed? _

The `pkg` database is a SQLite file called _local.sqlite_ in  _/var/db/pkg/_. The old package database consisted of a subdirectory for each package in this same directory. All of those old subdirectories can be deleted, although portmaster uses them to keep track of things and will recreate them.


_ What is Poudriere? _

An automated system that builds binary packages out of ports. This is what the FreeBSD cluster systems use to build binary packages. It can also be used by individuals to build their own customized binary packages. If several machines need the same applications, one system can be used to build those binary packages from ports, and then all of them can quickly install the resulting binary packages.


_ Is Poudriere required to build from ports? _

No. The standard `make build/install/clean` ports commands work fine. Poudriere just makes it possible to build binary packages from ports in bulk.


_ Should I use ports or binary packages? _

It depends. Binary packages are convenient because they require no compiling. However, they do not allow customized options. For an example, consider the many options of the www/nginx port. In a binary package, these are set to defaults and cannot be changed. Ports must be compiled, but can be customized and optimized for an individual system or use. If you support multiple machines, Poudriere makes it possible to build customized binary packages for them, requiring no build time on the target system.


_ When will FreeBSD drop ports altogether? _

Binary packages are created from ports. So the answer to this question is "probably never". However, a computer that uses only binary packages does not need a copy of the ports tree.


----------



## kpa (Dec 27, 2014)

Sticky please!


----------



## wblock@ (Dec 27, 2014)

This is a temporary post, at least unless we find out there is an ongoing problem with access to my site.


----------



## doc1623 (Dec 28, 2014)

Thanks, that clears up _Poudriere for me. _


----------



## fred974 (Apr 1, 2015)

Thank you wblock@ 
Same as doc1623 I know what Poudriere does now__


----------



## coredumb (Jan 14, 2016)

wblock@ said:


> _
> If I switch, can ports still be used? _
> 
> Of course. When a port is compiled, it actually creates a package. The package is then installed and managed by the package management system. A binary package is the same, it has just been compiled on a different computer.



Hi there,
I've got a question in regard to the above point (was No. 4 in the original complete list). Thank you for this collection, wblock!

On my 10.2 machine I've got a lot of binary packages installed as well as a few from the ports tree. The latter ones have some special compile settings, which I needed and which I want to keep installed. When a new release turns up, let's say openssl, I at first see this by running 'pkg update && pkg upgrade', which I do regularily as everyone here probably does.
Now, when I'm not as alert as I should be in such situations, I type yes and the freshly downloaded standard binary openssl gets installed -- right over my former custom build. This is no drama when I notice this mishap instantaniously, but every now and then it slips through my fingers and later I find myself wondering why applications do funny things. Or worse.

So, my question is: how can I convince pkg of not touching my custom builds when newer releases show up?  I'd like to be notified, though, so that I can head over to ports tree and do the update business there in combination with my special settings.

Thank you for any hints or forwarding pointers.


----------



## rabfulton (Jan 14, 2016)

See pkg-lock()


----------



## wblock@ (Jan 15, 2016)

Packages can be locked, but beware that this can cause surprises when a package really does need to be updated.  One solution is to build all your own custom packages.  Or build everything from ports, today's hardware makes it more practical than ever.


----------



## dasti (Jan 18, 2016)

Very useful  for a beginner like me ! thanks !

One question that will certainly sound very stupid to you all.
Why is it necessary to compile to have options available? Wouldn't it be more simple to have all options included and activate them with a conf file?


----------



## SirDice (Jan 18, 2016)

Some options require additional code and/or dependencies and not everything is tunable with configuration files.


----------



## dasti (Jan 18, 2016)

So if I understand correctly.
- It's to save disk space
- It's also because of the conception of certain software that does not let the user to have access to all settings through a conf file.

Am I right?


----------



## SirDice (Jan 18, 2016)

More or less. There are also conflicting options (where only one can be enabled) and a whole bunch more.


----------



## ThothK (Dec 2, 2016)

Hi All,

For a given package, how can I determine what will be installed before I install the package?
After I install a package, how can I determine what has been installed?

I did not see a specific package command for this. However, I might have missed it.


=thoth=


----------



## getopt (Dec 2, 2016)

ThothK said:


> However, I might have missed it.


When you install a package this is presented to you to confirm installation:

```
root # pkg install stress
Updating local repository catalogue...
Fetching meta.txz: 100%    260 B   0.3kB/s    00:01    
Fetching packagesite.txz: 100%  139 KiB 142.5kB/s    00:01    
Processing entries: 100%
local repository update completed. 596 packages processed.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	stress: 1.0.4

Number of packages to be installed: 1

22 KiB to be downloaded.

[b]Proceed with this action? [y/N]:[/b] y
Fetching stress-1.0.4.txz: 100%   22 KiB  22.6kB/s    00:01    
Checking integrity... done (0 conflicting)
[1/1] Installing stress-1.0.4...
[1/1] Extracting stress-1.0.4: 100%
```

So you see before installation what is going to be installed (with dependencies, but there aren't any in this example). Here you can deny installation or confirm. And it is then shown what actually has been installed.


----------



## ThothK (Dec 3, 2016)

Hi GetOpt,

I have seen that. That tells me what packages are going to be installed or upgraded.

I want to know the actual files that are copied to the filesystem, what configuration changes are made, etc.


=thoth=


----------



## jrm@ (Dec 3, 2016)

You can list the package dependencies of the newly installed package with `pkg info -d blah.1.0` and you can list the files in those dependencies `pkg info -l blah.1.0`.  There's probably a more concise way to do it, but to give you what you want in one command, how about something like `pkg info -d blah.1.0 | cut -d':' -f1 | xargs pkg info -l`?


----------



## getopt (Dec 3, 2016)

ThothK said:


> I want to know the actual files that are copied to the filesystem


Packages just contain files to be copied to the system. So the information of your desire are in the package where it can be retrieved:

```
# tar tf /var/cache/pkg/stress-1.0.4-2a6787cc16.txz 
+COMPACT_MANIFEST
+MANIFEST
/usr/local/bin/stress
/usr/local/man/man1/stress.1.gz
/usr/local/share/licenses/stress-1.0.4/catalog.mk
/usr/local/share/licenses/stress-1.0.4/LICENSE
/usr/local/share/licenses/stress-1.0.4/GPLv3
/usr/local/info/stress.info
```

There it is! Just disregard the files with '+'.


----------



## Anywhere (Dec 18, 2016)

Thanks for this!

I'm looking for a way to upgrade all my packages using pkg from now on. I was looking at 
	
	



```
pkg upgrade
```
.

When I do that I get:

```
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Checking for upgrades (2 candidates): 100%
Processing candidates (2 candidates): 100%
Checking integrity... done (0 conflicting)
```

Why isn't it in fact updating those 2 candidates? Should I force it? if that's the case, how do I do that?

I have looked at pkg_upgrade from bsdadminscripts-6.1.1_8, but that just gives an error message and exits.


----------



## IT_Architect (Jan 10, 2017)

This thread has cleared up a LOT of things for me.  It actually spawned some questions that have always bugged me.
1.  Then I assume Ports and Packages use the same database to keep track of what is installed?
2.  I'm guessing this is a database for the ports tree to resolve dependencies?  I run `portsdb -u` and on new installs `portsdb -U`.  I also see in the manual `portsdb -F` and says it is faster than -U, so I guess on a new ports install that I would be better off doing thee -F.  
3.  SOP is to run `pkgdb -F` to fix duplicated origins.  When it happens I end up having to read docs that come with the ports tree version.  What exactly are duplicated origins, and why are they not resolved before ports trees are released?
4.  There are `portupgrade –rR` and `pkg_info –rR`.  Since you wouldn't necessarily need to have ports installed, are these two commands pulling their information from two different sources to determine dependencies?
5.  I see references to repository.  What, where is it, and what does it do?

Thanks TONS!


----------



## wblock@ (Jan 10, 2017)

1. Yes, there is only one database, everything is a package by the time it gets installed on your system.
2. portsdb is part of portupgrade (or was).  I thought it didn't use that any more.  It is not a native part of the package system.
3. Duplicated origins means you are doing something wrong in the first place.
4. No idea what -rR does with portupgrade. Do not use `pkg_info` at all any more, it is obsolete.
5. A repository is an online place to keep things that can be downloaded. Source code, binary packages, whatever.


----------



## IT_Architect (Jan 10, 2017)

wblock@ said:


> No idea what -rR does with portupgrade


That tells port upgrade to check and update dependencies and depends on.

Which tools are the best in your opinion for maintaining ports with FreeBSD 11?

PS: I assume for servers without GUI, that this should still be added to make.conf:
WITHOUT_X11=yes
WITHOUT_X=yes
WITH_X=NO
ENABLE_GUI=NO

Thanks TONS!


----------



## wblock@ (Jan 10, 2017)

IT_Architect said:


> That tells port upgrade to check and update dependencies and depends on.


Ah, I remember the old "pirate" option: -arR.



IT_Architect said:


> Which tools are the best in your opinion for maintaining ports with FreeBSD 11?


That is currently a loaded question.  I use ports-mgmt/portmaster, which, according to some, is the most evil thing possible.  Yet it still works.  Other people use binary packages from the FreeBSD package repository with `pkg`, and that can be adequate.  Still others set up their own package builders locally, essentially doing the same thing the FreeBSD package repository does, but allowing them to have their own binary packages with customized options.


----------



## ASX (Jan 10, 2017)

IT_Architect said:


> Which tools are the best in your opinion for maintaining ports with FreeBSD 11?


ports-mgmt/synth

Just because there are different opinion out there..


----------



## IT_Architect (Jan 11, 2017)

*WOW!  Great thread!*  To summarize I learned not only what I learned here but:
- *Ports with the default options* gets you the same options as a binary package
- *poudriere* is port-based and creates packages for distribution, so it is a massive time saver if you have multiple similarly configured systems.  On a single computer, poudriere can build ports with multiple configurations, in multiple jails, and from different port trees as separate sets.  HOWEVER, it also makes sense for one-offs or two-offs because it enables you to compile everything on a production server without changing updating anything so that you can update it with the generated packages quickly at a time of your choosing.
- *Portmaster vs. PortUpgrade* have their pros and cons, making it not so easy to decide.  The manual actually has a great discussion comparing both.  It provides a lot of context for what you read on the web to arrive at a conclusion that you will be certain of why you went with the one you ultimately choose.


----------



## ASX (Jan 11, 2017)

IT_Architect said:


> - Portmaster and PortUpgrade each have their pros and cons, making it not so easy to decide. The manual has a great discussion on both.


In addition, the handbook is incomplete in that it doesn't mention Synth at all, and Synth is at the same level of Poudriere, however there is a man page: synth(1)


----------



## IT_Architect (Jan 11, 2017)

ASX said:


> In addition, the handbook is incomplete in that it doesn't mention Synth at all, and Synth is at the same level of Poudriere, however there is a man page: synth(1)


...and from reading, it may be simpler and better in many cases.  "it will create local package respositories and install pkg(8) repository configuration file that causes locally built packages to be used with the highest priority, all while allowing the system to fully upgraded with a single command."  So to me that is saying, you can have a stub set of custom packages maintained by Synth and it will go to the repository for the others.  I've seen that functionality asked for in my Googling.


----------



## ASX (Jan 11, 2017)

IT_Architect said:


> So to me that is saying, you can have a stub set of custom packages maintained by Synth and it will go to the repository for the others.



I will fix this for you:

```
you can have a set of custom packages and the remaining packages will be built with the default options
```
The fact is that Synth will build a "full repository" based on the packages you have installed, and yes, that is simpler than any other tools. Mixing ports (or packages built from ports) and packages from FreeBSD repository is discouraged, because they are built against different versions of the ports tree, and possibly using different or conflicting options.


----------



## IT_Architect (Jan 11, 2017)

ASX said:


> I will fix this for you:


Got it!  It would seem for that to work, the ports that you want the defaults for would have to have never been generated custom before, because ports remembers, and I should cure that by deleting the entire ports tree and starting over?


ASX said:


> Mixing ports (or packages built from ports) and packages from FreeBSD repository is discouraged, because they are built against different versions of the ports tree, and possibly using different or conflicting options.


I've hawked a lot of threads going back and forth about mixing things but that one statement makes things crystal clear.

Thanks TONS!!!


----------



## ASX (Jan 11, 2017)

IT_Architect said:


> It would seem for that to work, the ports that you want the defaults for would have to have never been generated custom before, because ports remembers, and I should cure that by deleting the entire ports tree and starting over?


No, you don't need to delete the port tree, you will need to delete only the port options which are saved in /var/db/ports.


----------



## IT_Architect (Jan 11, 2017)

ASX said:


> No, you don't need to delete the port tree, you will need to delete only the port options which are saved in /var/db/ports.


WOW!  This is the first time in all these years that I'm actually beginning to understand what is going on with FreeBSD ports and packages.  This is awesome!


----------



## ASX (Jan 11, 2017)

I would add a point to the mini-FAQ:

12 - "quarterly" vs. "latest" repository and "quarterly" vs. "head" port branch. 

I started using FreeBSD version 10.0-RELEASE, at that time the default repository was "latest", same for 10.1-RELEASE.

From 10.2-RELEASE onward the default repository is set to "quarterly", "latest" is available but the system need to be configured to make use of "latest" repository.

A generic reference to"ports tree" is usually intended as the "head" branch of the port tree, it match the "latest" FreeBSD pkgs repository, and that "conflict" with pkgs default repository which instead is based on "quarterly" branch.

Users who want to build from ports, should be informed that to match the default FreeBSD repository ("quarterly") they should clone the "quarterly" branch of the port tree.

Additionally all this is not enough clear from reading the handbook, (I underdstand that probably those parts of the handbook and this mini-FAQ has been written before 10.2-RELEASE ...).


----------



## IT_Architect (Jan 11, 2017)

ASX said:


> "quarterly" vs. "latest" repository and "quarterly" vs. "head" port branch.


Oh WOW!  This thread is gold, and not knowing these things are what make good technical people throw their hands up.  Let me make sure I have this straight.

Either people need to use the default packages repository and the quarterly version of ports, or they need to use the latest ports, and the latest packages, but the defaults are for packages to use quarterly, and the portsnap to fetch the latest.  Nice (tic).  That begs the question, how do we change the defaults to where either ports picks up quarterly, or the repository picks up the latest so they by default in-sync?

Thanks TONS!!!


----------



## SirDice (Jan 11, 2017)

IT_Architect said:


> That begs the question, how do we change the defaults to where either ports picks up quarterly, or the repository picks up the latest so they by default in-sync?


To configure pkg(8) to pick up the 'latest' packages instead of 'quarterly', create a file /usr/local/etc/pkg/repos/FreeBSD.conf:

```
FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest" }
```
Nothing else needs to be done or edited.


----------



## ASX (Jan 11, 2017)

to get the "head" branch of port tree use either:

```
cd /usr/ports
svnlite checkout http://svn.freebsd.org/ports/head
```
or

```
portsnap fecth extract
```

to perform subsequent updates of the port tree use respectively:

```
svnlite update /usr/ports
```
or

```
portsnap fetch update
```

to get the 2017 Q1 "quarterly" branch use:

```
cd /usr/ports
svnlite checkout http://svn.freebsd.org/ports/branches/2017Q1
```
and to update the port tree:

```
svnlite update /usr/ports
```

available branches are listed here: http://svn.freebsd.org/ports/branches/


----------



## IT_Architect (Jan 11, 2017)

Fabulous!
Thanks TONS!!!


----------



## IT_Architect (Jan 11, 2017)

- I assume FreeBSD pulls the versions currently installed from the pkg database, but where does FreeBSD pull its information to know what needs to be updated?

Thanks!


----------



## SirDice (Jan 12, 2017)

If a ports tree is installed pkg(8) can use the /usr/ports/INDEX-* file to compare versions; `pkg version -vI`. If that doesn't exist it will fetch digests.txz, meta.txz and packagesite.txz from the repository and stores it locally as /var/db/pkg/repo-<name>.sqlite. Then it's simply a matter of comparing versions and some clever bits trying to resolve dependencies.


----------



## IT_Architect (Jan 12, 2017)

Got it!  Understanding HOW THINGS WORK is far more useful that instructions on how to do it.  How things work answers thousands of questions and prevents much lost time and frustration.  Your answer then also points out that it makes more sense than ever to make sure that ports and packages are both on the same page, either "quarterly" or "latest", or not having ports on your system at all if you decide to go packages.


----------



## IT_Architect (Jan 12, 2017)

I see above how to fetch a specific quarterly version of ports, is there a way to do that with packages?


----------



## ASX (Jan 12, 2017)

IT_Architect said:


> I see above how to fetch a specific quarterly version of ports, is there a way to do that with packages?


No, not that I'm aware of. Only the most recent "quarterly" packages repository is available.


----------



## getopt (Jan 12, 2017)

ASX said:


> Only the most recent "quarterly" packages repository is available.


Besides the "quarterly" repository there is still the "latest" repository. For whatever reason  "quarterly" has been set as default in /usr/local/etc/pkg/repos/FreeBSD.conf causing problems for many. Just change the string there and be a little more happy.


----------



## IT_Architect (Jan 12, 2017)

ASX said:


> No, not that I'm aware of. Only the most recent "quarterly" packages repository is available.
> 
> Besides the "quarterly" repository there is still the "latest" repository. For whatever reason  "quarterly" has been set as default in /usr/local/etc/pkg/repos/FreeBSD.conf causing problems for many. Just change the string there and be a little more happy.


From what I read, the default to quarterly started in FreeBSD 10.?  My theory as to why is:
- With packages, by setting them to "quarterly", users will be installing packages of the same date-time set, and thus they will be compatible.  The only exception is during a quarter change.  That is far less likely than with "latest".
- With ports, you also always have a set of the same date-time group, so latest is based on the latest ports tree you have downloaded.
- I agree, the best way to have things go well when you mix them is to set packages to "latest" and update ports before doing software updates.  One has to do that anyway when you have out-of-date packages on the system.  Being more up to date is also a plus.  
- I hate all of the time ports requires.  I am thinking about putting this next system together using the "latest" packages as much as I can, and maintaining it with ports, either directly, or using `Synth`.

Thanks TONS!


----------



## SirDice (Jan 12, 2017)

The rational behind the quarterly branch has to do with stability. Traditionally the ports tree and, as a consequence, the packages were more or less a "rolling release". Meaning something was always out of date, things broke from time to time, etc. By "freezing" the versions every quarter the number of updates remains relatively low. The only updates that will happen are due to security, build or runtime issues. For production systems this is the best option. Which is why it's now the default. 

https://lists.freebsd.org/pipermail/freebsd-ports-announce/2014-April/000079.html

It's mostly for new users. Hardcore FreeBSD users tend to build their own repositories anyway.


----------



## IT_Architect (Jan 12, 2017)

SirDice said:


> The rational behind the quarterly branch has to do with stability...The only updates that will happen are due to security, build or runtime issues. For production systems this is the best option.


That is very good to know.  Since you have to request ports by specifying the quarter to prevent getting "latest", I wonder if there is an easy way to test what the latest quarter available is, so the command to fetch the ports for latest quarter can be automatically amended to pickup the latest quarter in order to remain in-sync with the packages?  It seems it happens two or three days after the new quarter begins?

Thanks TONS!!!


----------



## IT_Architect (Jan 12, 2017)

ASX said:


> ...to get the 2017 Q1 "quarterly" branch use:
> 
> ```
> cd /usr/ports
> ...


If do the update, will I get updated to "latest" or will it update to the latest for 2017Q1? (since quarterlys do receive security updates)
Edit:
I assume I still need to do:
portsdb -Uu
pkgdb –F


----------



## ASX (Jan 12, 2017)

IT_Architect said:


> If do the update, will I get updated to "latest" or will it update to the latest for 2017Q1?


You will update to the latest state for 2017Q1. 
That imply that when 2017Q2 will be available, you will need to checkout the then new port tree.


----------



## IT_Architect (Jan 12, 2017)

ASX said:


> You will update to the latest state for 2017Q1.
> That imply that when 2017Q2 will be available, you will need to checkout the then new port tree.


Got it!  This thread is incredible!
Thanks TONS!!!


----------



## IT_Architect (Jan 12, 2017)

SirDice said:


> To configure pkg(8) to pick up the 'latest' packages instead of 'quarterly', create a file /usr/local/etc/pkg/repos/FreeBSD.conf


That file already exists in /usr/local/etc/pkg.  Will it append it with the one in repos?
Thanks!


----------



## SirDice (Jan 12, 2017)

IT_Architect said:


> That file already exists in /usr/local/etc/pkg.  Will it append it with the one in repos?


Then you probably created it at some point in time. The file doesn't exist by default. Settings from /etc/pkg/FreeBSD.conf and /usr/local/etc/pkg/repos/FreeBSD.conf will be merged. Strictly speaking it's not the files that's merged but the name labels. The actual filename is irrelevant.


----------



## IT_Architect (Jan 12, 2017)

SirDice said:


> Then you probably created it at some point in time. The file doesn't exist by default. Settings from /etc/pkg/FreeBSD.conf and /usr/local/etc/pkg/repos/FreeBSD.conf will be merged. Strictly speaking it's not the files that's merged but the name labels. The actual filename is irrelevant.


Awesome!
PS:  Actually, this is a fresh install of FreeBSD 11, so if it's not part of the base install, I don't know how it got there.  The only things installed so far from packages are nano because the VM console is eating the <ctrl> character which is new, screen, and portupgrade.  LOL!  The content of the file is:

```
# $FreeBSD: releng/11.0/etc/pkg/FreeBSD.conf 303975 2016-08-11 23:39:23Z gjb $
#
# To disable this repository, instead of modifying or removing this file,
# create a /usr/local/etc/pkg/repos/FreeBSD.conf file:
#
#   mkdir -p /usr/local/etc/pkg/repos
#   echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf
#

FreeBSD: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}
```

Thanks TONS!!!


----------



## SirDice (Jan 12, 2017)

That's the content of /etc/pkg/FreeBSD.conf. This file does exist and contains the default settings. Don't edit this file, instead create a /usr/local/etc/pkg/repos/FreeBSD.conf and use it to overrule the default settings.


----------



## IT_Architect (Jan 12, 2017)

SirDice said:


> That's the content of /etc/pkg/FreeBSD.conf. This file does exist and contains the default settings. Don't edit this file, instead create a /usr/local/etc/pkg/repos/FreeBSD.conf and use it to overrule the default settings.


Done!

Thanks TONS!!!


----------



## getopt (Jan 12, 2017)

IT_Architect said:


> Actually, this is a fresh install of FreeBSD 11, so if it's not part of the base install, I don't know how it got there.


After fresh install there is even no /usr/local directory. When bootstrapping pkg the tree there is created along with the configuration files for pkg up to and including /usr/local/etc/pkg/repos/FreeBSD.conf.


----------



## IT_Architect (Jan 12, 2017)

getopt said:


> After fresh install there is even no /usr/local directory. When bootstrapping pkg the tree there is created along with the configuration files for pkg up to and including /usr/local/etc/pkg/repos/FreeBSD.conf.


Mystery solved!


----------



## SirDice (Jan 12, 2017)

getopt said:


> When bootstrapping pkg the tree there is created along with the configuration files for pkg up to and including /usr/local/etc/pkg/repos/FreeBSD.conf.


Unless something changed recently, installing ports-mgmt/pkg (or bootstrapping) only creates /usr/local/etc/pkg.conf. It does not create the pkg/repos/ directory.


----------



## IT_Architect (Jan 12, 2017)

SirDice said:


> Unless something changed recently, installing ports-mgmt/pkg (or bootstrapping) only creates /usr/local/etc/pkg.conf. It does not create the pkg/repos/ directory.


I don't remember installing pkg.

Thanks!


----------



## SirDice (Jan 12, 2017)

IT_Architect said:


> I don't remember installing pkg.


First time you run it it "bootstraps" itself, which basically means it installs itself.


----------



## IT_Architect (Jan 12, 2017)

SirDice said:


> First time you run it it "bootstraps" itself, which basically means it installs itself.


Got it!

Thanks!


----------

