Jump to content
Read the Funtoo Newsletter: Summer 2023 ×

FreeBSD ports vs Portage


Recommended Posts

I think we all know that Portage was inspired by the BSD ports system and that Portage was intended to improve upon the ports system. But I don't think I've ever read anywhere exactly what those improvements are. Does anyone know, or has anyone written a good comparison of the two systems?

 

I installed FreeBSD on a spare computer less than a week ago because I wanted to learn more about it, and at least some of the advantages of Portage became readily apparent. I'm beginning to wonder what other unpleasant surprises will show up with continued use of Ports.

 

Sent from my SGH-M919 using Tapatalk

Link to comment
Share on other sites

Here are some, the easiness of USE flags and how you use them, not having to cd into $PORTDIR for every package, basically the toolset is a lot better( eix, equery), python+bash instead of Makefiles(this is very much an opinion, and bash is almost a dirty word on *BSD), sandboxed builds(I'm not sure about this one).

PD: I have FreeBSD on a laptop, but I usually use pkg and not the ports, and pkg is awesome, I wish you could get something like that with portage, binary packages are not something portage does very well.

Link to comment
Share on other sites

I think that the simplicity of Portage can really visible when you must change "destination" of your computer.

With FreeBSD you must use "make config-recursive" and have in your mind if one charachteristic (rappresented in *too by the global or local USE flags) if it is enabled or disabled.

For me Portage is more rational than FreeBSD ports technology.

And there are a lot of instruments to see if the system is "consistent" (e.g. revdep-rebuild).

 

For me Portage is the most evoluted package manager in this planet. there is also Paludis for *too.

 

Another advantage is that with Funtoo (or Gentoo), 98% of the ebuilds supports full multithreading; in FreeBSD you can't estabilished a jobserver .... most programs use the default (-j2).

 

try in freebsd to install for example htop:

then

whereis htop

so make config-recursive

then make install clean

but it will be single-threaded.

 

Try to type make -j9 install && make clean .... you'll got error.

 

More time to compile it..... more time to change it and more difficulties.

 

But This is only my tought.

 

The flexibility that give portage is veri high .....

 

Take a look: 

this "electronic guitar" has Gentoo inside :)

 

Bye :)

Link to comment
Share on other sites

Some of the disadvantages I've found to the Ports system so far:

1. No support for running multiple emerges simultaneously. I tried to install gnome3 on FreeBSD, and one of the dependencies was TeX which required a 1.8 GB distfile. It took well over 20 minutes to download. So, in another Putty sesion (I was logged in over ssh from another box), I decided to install handbrake which also required TeX as a dependency. So the second session also began to download the same 1.8 GB distfile for TeX. When I realized what was happening, I cancelled the process with CTRL-C. I allowed the first sesion to proceed, and it gave no indication of a problem. 10 minutes later when the distfile was completely downloaded, it said the filesize didn't match what was expected because the only file it was was the second download which I cancelled after a few seconds. So it had to redownload the entire 1.8 GB distfile again. I asked in a FreeBSD users group on Facebook about this behavior because it was quite a surprise to me. I was essentially told "it's not a bug; it's a feature" and that I should simply avoid attempting multiple installations at once. After being accustomed to Portage's support for file locking and simultaneous emerges, this was quite a shock and a disappointment.

2. As Sandro pointed out, the clunkiness of configuring the system as a whole (making a uniform configuration for all the ports' compile options). It's a real downside compared to the simplicity of USE flags.

3. As far as I can tell, there is no support for additional overlays. I did find out about FreeBSD's Area 51, but this additional ports repository cannot be cleanly installed alongside the main ports tree. Rather (according to the directions I read on the Area 51 page) it has to be installed on top of the main ports tree which can cause issues with updating the ports tree.

Some advantages of the Ports system

1. I do kind of like the pop-up configuration menus. It is simple and convenient when you want to fine-tune the settings of individual packages. It might actually be nice if Funtoo had such a menu system which would automatically update the package.use file.

2. If a compilation or installation fails, the issue can be resolved and the compilation/installation of the port can be resumed from the point of failure instead of starting over from the very beginning. It would really be nice if Portage had a feature like this! In fact, so far this seems to be the single biggest advantage I've found to the ports system.

3. Although the ports system seems to have a very simplistic and unintelligent dependency calculation, it is very fast -- no waiting. Portage can sometimes be very slow -- especially if numerous overlays are installed.

Link to comment
Share on other sites

2. If a compilation or installation fails, the issue can be resolved and the compilation/installation of the port can be resumed from the point of failure instead of starting over from the very beginning. It would really be nice if Portage had a feature like this! In fact, so far this seems to be the single biggest advantage I've found to the ports system.

you can resume on portage too:

ebuild <full ebuild path> merge

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...