FreeBSD Ports for GNU/Linux
proclus writes: "GNU-Darwin has provided a special FreeBSD ports tarball (20 Mb) for GNU/Linux users. We have modified the FreeBSD Ports System to bring thousands of free software offerings within the reach of every GNU/Linux user. The system is not fully automated yet, but you can untar it in your home directory and try it. Just follow these directions. This system provides full access to the FreeBSD ports, so that users can compile and install software in their home directories. Root access is not required."
Note to BSD folks: It's Linux, not GNU/Linux.
How is the ports system an improvement over Debian's apt-get system?
.deb's and apt-get are IMHO as good as it gets when distributing, managing, and upgrading binary packages.
.deb or .rpm, meaning relatively inexperienced users can do this. Dependencies are simpler (you only need what is required to compile the program, and such dependencies are also automatically downloaded and compiled at the same time. You do not need particular software versions based on what the binary was compiled against.)
First, I am a real fan of Debian, apt-get, and am running debian both at work and at home.
What the FreeBSD ports system does which is so cool is get rid of the idea of distributing binaries at all. Instead, you go into the subdirectory corresponding to the program you want and type "make install." Based on the skeleton files present the program source(s) and any patches are downloaded, applied, the program is then compiled against whatever libraries you have on your system (no more "this binary requires glibc version Y but you only have X"), and installs the compiled binary. Furthermore, doing so is as easy as installing a
Basically, it combines "apt-get source --compile; dpkg -i [new-packages].deb" into "make install," and simplifies the package management/dependency management.
BSD ports is IMHO the only software management system that in some ways exceeds even debian's approach, but keep in mind there are conceptual differences to the approach (all things source vs. precompiled binaries), so it isn't entirely an apples to apples comparison.
The Future of Human Evolution: Autonomy
I prefer to compile with these options in my /etc/make.conf
:)
CPUTYPE=i686
This way you automagically have a cc -O -pipe -march=pentiumpro setup so you don't compile for 10 years old 386 cpus.
Sure, compiling KDE2 will take some time, but who cares, you can continue working while the package builds, thanks God for dual cpus and SCSI disks
Well, how is this better than Rock Linux?
Rock's package management system is source based, and updates, etc...
And as for elitism, I spoke with the creater on the phone a few years ago when he was starting it, and he's a really jolly bloke.
While it doesn't do dependancies like ports, the following will do what you want:
/usr/share/doc/pentium-builder/README.Debian
# apt-get install pentium-builder
# less
apt-get source whatever -b
pentium-builder is pretty handy IMHO.
"We obviously need a new moderation category: (-1, Woo-fucking-hoo)" --Mr. AC
Well, actually, this won't provide you with any new programs. What this is really about is giving everybody FreeBSD's version of apt-get-source (from what I understand of Debian).
/tmp rather than /var/tmp, /usr/bin instead of /usr/local/bin, /etc/rc.d instead of /usr/local/etc/rc.d, et cetera.
My guess is that this tarball differs from the ports tree that's available via cvsup (cvsupXX.freebsd.org, where XX is some number on the interval [1,10]) in that the cvsupped ports contain patches that are FreeBSD specific, while this tarball will have settings more appropriate for Linux, such as
Oh, go on, check out my job.
A full Linux distro that utilizes a "BSD Ports" like software management system is already available. The Linux distro is called "Gentoo".
One use of a Linux distro like Gentoo would be to add a user-friend-idiot-proof OS installer that plug-n-play auto detects everything about your hardware, from the exact CPU type, MB type, memory type, graphics card, sound, etc... and then keep that system specific info in a local database. After this part of the installation, and for the rest of the life of the system, whenever you install ANY application on your system, the software is automatically optimized and compiled for your specific setup. Applications could be optimized for your CPU-type and the amount of RAM that you have. Maybe even your video card and sound card could be taken into consideration. If you don't have a sound card, any references to sound could be compiled out of the application. If your video card only supports 256 colors, then perhaps, the desired application could automatically be optimized for such a platform.
This would allow application developers to program with a greater assumed knowledge of the end user's system, and it would make it easier for the end user to have a totally tweaked out Linux setup, apps and all! Not to mention the fact that the Gentoo Portage system deals with dependencies automatically, furthur easing end user headaches.
Closed source simply couldn't compete with such a Linux distro because closed source software (Windows for example) is compiled for the average hardware setup, which sacrifices performance for generality, while a Gentoo based Linux Distro could automatically reconfigure itself to tighly fit your exact hardware setup, which keeps generality and great performance.
Demonstrate strong interoperability but still have a choice what OS you want to run (*BSD, Linux, MacOSX, etc).
Increase availability of all kinds of software and toolkits between almost all of the anti-MS players.
Accellerate development for both platforms by encouraging developers to optimize their software for both camps.
:)
Now this is a lot to say for such a rudimentary project (and I'm sure the list could go on), but the ideals are there. Imagine if we had increased/improved interoperability between the KDE and GNOME projects (instead of a lot of bitching about the other "sucking ass"). Say, tools that helped unify the appearance of widgets, code sharing layers, and so on.
So, wordiness aside, unity is good.
Why bother.
If you actually LOOK at what OpenPackages is doing, not only does it work with the BSD's, some of the 190+ linux versions, but also with AIX, HP/UX and other Unix platforms.
OpenPackages is a universal solution. GNU-Darwin is less than universal.
Depends on what you want. To be inclusive or exclusive.
If it was said on slashdot, it MUST be true!
so listen up. Ports has nothing to do with "porting" software from one platform to another. The ports collection is basically a package management and browsing system. It's a directory of packages, broken into categories, like ports/games, ports/net, ports/security, and so on. Each package has a makefile. The makefile will download, compile, create and install a binary package for that package and every one of its dependencies. It differs from traditional package managers in that dependencies are not done by package, e.g. kde doesn't look for a package for qt, it looks for the proper version of libqt.so -- think of it like a sort of autoconf. this saves you from the dependency hells other package managers put you through, and if you install a dependency manually, then things still install (and if you screwed up the dependency, well, that's your problem). When it's finished installing, the source tree sticks around (until you do a make clean), so if you need to modify something for your local system, you can go into the source, tweak at will, then make install again.
gentoo uses something very much like ports, though it doesn't use make, but a python utility called emerge instead. i would hope to see it use SCons in the future, and get the best of both worlds -- it might even be enough to get me to switch back to linux (once it stops having a VM bug of the week)
I've finally had it: until slashdot gets article moderation, I am not coming back.