# Using ports, want to migrate to packages



## arapaima (Nov 5, 2012)

I've always been using ports to install software on my FreeBSD computers.
I recently read up on pkgng which looks really nice and somewhat similar to the behavior of different package managers I use on GNU/Linux systems.
I've been told that mixing ports and packages is looking for problems.
Most of my ports is compiled without configuration options, and if I would need to do this in the future I guess 'make package' would do the trick.
So, is their a way to migrate to the use of packages instead? I got about 130 ports installed at the moment.
Am I required to deinstall everything and reinstall by using pkng?
Other suggestions?


----------



## SirDice (Nov 5, 2012)

arapaima said:
			
		

> I've been told that mixing ports and packages is looking for problems.


This is not really true. Packages are nothing more than pre-compiled ports. The cause of the problems is usually a mixup of versions. 



> Most of my ports is compiled without configuration options, and if I would need to do this in the future I guess 'make package' would do the trick.


*make package* _creates_ a package from a port, it does not install one.



> Am I required to deinstall everything and reinstall by using pkng?


Nope, just start using it.


----------



## arapaima (Nov 5, 2012)

Great news!

So I guess this would be a appropriate way of doing this

```
cd /usr/ports/dir/foo
make config
make package
pkg add ./foo.txz
```


----------



## SirDice (Nov 5, 2012)

arapaima said:
			
		

> ```
> make package
> pkg add ./foo.txz
> ```



Assuming you're using PKGNG and have WITH_PKGNG="YES" in /etc/make.conf.

Also note that *make package* runs after *make install*.


----------



## arapaima (Nov 5, 2012)

Hm, so what you're saying is that WITH_PKGNG="YES" will affect ports in a way of building packages instead of the normal behavior?


----------



## SirDice (Nov 5, 2012)

arapaima said:
			
		

> Hm, so what you're saying is that WITH_PKGNG="YES" will affect ports in a way of building packages instead of the normal behavior?



Yes, if WITH_PKGNG=YES is set *make package* will create a PKGNG package. If it's not defined it'll resort to the 'standard' pkg_* commands.

Mixing *pkg_** and *pkg ** is really not a good idea


----------

