# Freebsd should learn from Arch linux.



## unistd001 (Sep 12, 2009)

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.


----------



## MG (Sep 12, 2009)

To make a package just type make package instead of make install


----------



## graudeejs (Sep 12, 2009)

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


----------



## avilla@ (Sep 12, 2009)

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...


----------



## roddierod (Sep 12, 2009)

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?


----------



## aragon (Sep 12, 2009)

oi, _someone's_ been moving my posts out of context...


----------



## aragon (Sep 12, 2009)

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.


----------



## Oxyd (Sep 12, 2009)

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.


----------



## Carpetsmoker (Sep 13, 2009)

Actually, this is also what OpenBSD does. It would seem that the Archlinux ports are more similar to OpenBSD ports than to FreeBSD ports.


----------



## darehanl (Sep 13, 2009)

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.


----------



## graudeejs (Sep 13, 2009)

fix & resume


----------



## brd@ (Sep 13, 2009)

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 :/


----------



## unistd001 (Sep 14, 2009)

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 ???


----------



## DutchDaemon (Sep 14, 2009)

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.


----------

