# Error Compiling PKG



## khantroll (Aug 27, 2019)

Hi! I'm having trouble compiling pkg. I used svn to grab the ports tree, and I ran make on "make install clean" in "usr/ports/ports-mgmt/pkg". It ended with error code 1, and says " /usr/ports/templates/bsd.local.dist:  no such file or directory" 

What is bsd.local.dist, and how do I go about getting it? 

Thanks!


----------



## SirDice (Aug 27, 2019)

You're not on FreeBSD aren't you?


----------



## khantroll (Aug 30, 2019)

Yes sir, I am. It is the arm version, but it is FreeBSD.


----------



## SirDice (Aug 30, 2019)

Please post the output from `uname -a`.


----------



## khantroll (Aug 31, 2019)




----------



## T-Daemon (Aug 31, 2019)

khantroll said:


> What is bsd.local.dist,...


Info here: 6.7.3. Handling Message Catalog Directories, here: 6.7.2. Optional Usage, and here info about catalog files: 4.2. Localized Messages with POSIX.1 Native Language Support (NLS).


khantroll said:


> and how do I go about getting it?


In a error free subversion checkout it should have been pulled in. You could try an `svn update`, or download the latest ports tarball. With the tarball you can be sure it contains a complete ports tree.


----------



## khantroll (Aug 31, 2019)

Here is what I get for svn update:


----------



## T-Daemon (Sep 1, 2019)

When I suggested `svn update` I assumed you are familiar with the basic funktions of svn, I should have been more thorough, sorry. You are executing the command in root's home directory. If not otherwise told, svn assumes it is executed in a working directory of what you want to manage with it. 

You need to change in a working directory, or specify the directory you want svn to interact with: `cd /usr/ports && svn update` or from any directory you are in: `svn update /usr/ports`. 

If you are unsuccessful in retrieveing the said file the build process is complaining for, or have other problems with svn, just download the ports tarball. It's a daily snapshot of the ports tree.

Before extracting the ports tarball in /usr rename the original /usr/ports directory. After extracting, copy or move /usr/ports.orig/distfiles/* to /usr/ports/distfiles. Afterwards delete /usr/ports.orig.


----------



## khantroll (Sep 1, 2019)

Thanks T-Daemon. I should have stated in the original post that, while I have used linux for a number of years, this my first time trying to actually use a BSD distribution. And, if I'm being completely honest with you and myself, the state of Linux distros such as Mint and Ubuntu has made me complacent compared to my RHEL 4.4 days.  

Just to make sure I understand exactly what you are suggesting, I should rename the current ports download, and create a new directory and extract the downloaded tarball to that new directory? Or that I should rename the directory, extract the tarball to that renamed directory, and then copy those files to the newly created directory? 

Thank you for your help. I truly appreciate it.


----------



## T-Daemon (Sep 1, 2019)

Take these steps, the short version:
1. `cd /usr`
2. `fetch -o ports.tar.gz "http://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz"`
3. `rm -r ports`
4. `tar xvf ports.tar.gz`
5. `ll ports`
6. `rm -i ports.tar.gz`
7. `make -C ports/ports-mgmt/pkg install clean`

The lenghty version, with explication, and if you want to preserve the distfiles (source files):
1. `cd /usr`
2. `mv ports ports.orig`
3. `fetch -o ports.tar.gz "http://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz"`

or extract from the directory where the tarball is, if you have previously downloaded it, say from/home/khantroll:

4. `tar xvf /home/khantroll/ports.tar.gz -C /usr`.  -C /usr will instruct tar to extract in /usr.

If you have a copy of the tarball in /usr:
4.1. `tar xvf ports.tar.gz`

This will extract a ports directory in /usr, where you are at the moment, no need to create one.

There are source files or at least one (pkg source) in the previous ports/distfiles directory. Copy/move them/it before deleting the old ports directory.

5. `mkdir ports/distfiles`
6. `mv ports.orig/distfiles/* ports/distfiles`

7. `rm -r ports.orig`
check if the ports directory is present:
8. `ll ports`
9. `rm -i ports.tar.gz`

Now build pkg, hopefully without incident.
`make -C ports/ports-mgmt/pkg install clean`


----------



## khantroll (Sep 3, 2019)

Thank you! I was able to follow the direction and now have pkg installed.


----------

