Freebsd should learn from Arch linux.

Ports should not install the compiled software directly. It should build the source code into a package, and then use then pkg_add command to install the package. Just like the arch linux's ABS tool.
 
If i remember corectly make package does install port as well.

But look at this:
Some ports needs other ports to be installed to be able to build new packages ;)

So everything is OK....
And you can always us pkg_delete and/or ports-mgmt/pkg_cutleaves
 
unistd001 said:
Ports should not install the compiled software directly. It should build the source code into a package, and then use then pkg_add command to install the package. Just like the arch linux's ABS tool.

on ports@ mailing list someone posted a first attempt to do this with fakeroot... perhaps it will have some future...
 
unistd001 said:
Ports should not install the compiled software directly. It should build the source code into a package, and then use then pkg_add command to install the package. Just like the arch linux's ABS tool.

There are probably philosophical arguments for and against this, but I stand on the side that if you are going through all the trouble to compile software you probably want it installed so why take an extra step to do so?
 
roddierod said:
There are probably philosophical arguments for and against this, but I stand on the side that if you are going through all the trouble to compile software you probably want it installed so why take an extra step to do so?
Yes, you probably do want it installed, but not necessarily on the machine doing the compiling. ;)
 
aragon said:
Yes, you probably do want it installed, but not necessarily on the machine doing the compiling. ;)

You can use # make package for that. It will install the port first, yes, but you can uninstall that later. Oh, and under Arch Linux, if you're trying to build a package that has an unsatisfied dependency, you need to install that dependency on the machine that you're building on as well.
 
Actually, this is also what OpenBSD does. It would seem that the Archlinux ports are more similar to OpenBSD ports than to FreeBSD ports.
 
My main gripe when comparing FreeBSD ports vs. Arch is that in FreeBSD, if a port fails to build for whatever reason, my system gets partially upgraded. I first noticed this during kde4; the kde4 tree starts getting upgraded, then (for example) kdegraphics fails to build. Now some packages are at version 4.2 while some are 4.3.
 
This is a good idea and we should do it.. There was work underway, but lots of ports do not respect things like PREFIX and have to be fixed manually. Hopefully the work will be completed at some point.

This is just part of the problem with having more than 20,000 ports :/
 
Oxyd said:
You can use # make package for that. It will install the port first, yes, but you can uninstall that later. Oh, and under Arch Linux, if you're trying to build a package that has an unsatisfied dependency, you need to install that dependency on the machine that you're building on as well.

I wonder if I can update or uninstall some port when I install it by "make install clean"
I don't know if it has a database in freebsd which store all the files included by the port. Like linux's package management tools.
What's the diffirence between ports 's "make install" and normal "make install" when just download the source and copile/install it manually ???
 
You can use pkg_delete(1) to delete, and a tool like ports-mgmt/portmaster to upgrade.

Downloaded source has not been adjusted to FreeBSD ('ported'), so it may not compile, or install in the wrong place. Every app in the ports tree will compile on FreeBSD and have all of its dependencies in the same ports tree.
 
Back
Top