Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

FreeBSD Ports for GNU/Linux

Posted by michael on Fri Sep 21, 2001 01:20 PM
from the thirty-two-tetris-variants-and-counting dept.
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."
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • I thought that most programs (that are of any use) would compile over on FreeBSD would also compile on Linux and vise versa. Doesn't FreeBSD have the ability to run Linux programs w/the same sort of thing?

    What programs would I seriously want to run that are of FreeBSD fame only? None that I know of.

    What do I know though?
    • Maybe you don't know about them because you aren't a bsd user.
      I'm not a bsd user myself, and I'm curious to see what thas to offer (when I get home from work ;-)
      • 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).

        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 /tmp rather than /var/tmp, /usr/bin instead of /usr/local/bin, /etc/rc.d instead of /usr/local/etc/rc.d, et cetera.
      • ahhh, even when I ran RH I rarely used RPM unless I was just so lazy I didn't feel like compiling (usually for large libraries, etc)

        I just don't see the point to this. 20mb seems like a lot of space to waste to run applications that should be ported to both OSs anyway.
        • ...and then, you can follow each link to find out what new dependencies you'll have to satisfy. And so on, ad nauseaum.

          On the Debian system I put together last week (a near-minimal install), I typed "apt-get install mailman" this morning. A second later, it responded by saying would also need to fetch apache, apache-base, and python-base, and did I still want to continue?

          Speaking as a former RedHat user (and a guy who has logged many hours poring over rpmfind.net), I have to say that apt-get is really easy to get used to.
      • How is the ports system an improvement over Debian's apt-get system?
        • How is the ports system an improvement over Debian's apt-get system?

          Last I checked, apt-get was great for binary installs, but not so well suited to local compilation. Ports is the equivelant for people that prefer their binaries locally compiled and optimised for their system.

        • The ports collection would come in usefull if apt-get or rpm somehow didn't work properly for you. The ports system seems very robust on my FreeBSD box - it takes a long time to compile some of the larger programs, but after coming back after a long cofee break, I've never encountered a problem. It would be a great backup to have around just in case.

        • by FreeUser (11483) on Friday September 21 2001, @01:49PM (#2331142) Homepage
          How is the ports system an improvement over Debian's apt-get system?

          First, I am a real fan of Debian, apt-get, and am running debian both at work and at home. .deb's and apt-get are IMHO as good as it gets when distributing, managing, and upgrading binary packages.

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

          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.
          • So, I'm curious - what happens when you upgrade one of your big system libraries this way? Does the ports system automatically recompile any affected apps, or re-fetch them, or what? Not that I'm saying Debian necessarily handles this any better (I wouldn't know). Heck, at least with a packaging system, you know what the dependencies are for various apps. If everything's built from source, do you even know which apps were built against which library versions?

            • Upgrade a system library in what way? If a library is upgraded to a newly-incompatible API/ABI, the version number will be bumped so everything which used to use it will remain doing so until it is recompiled (and possibly adapted if it used an API in a deprecated way). APIs don't usually get deprecated, but ABIs changing isn't unheard of.
          • I agree..

            I don't know about the rest of the world, but I don't have the disk space, the processor power, and the time to compile everything that I can currently just get from the Debian archives with apt-get. I can try and trash software relatively thoughtlessly.

            I used to play things the build-your-own linux way. I have also used *BSD enough to understand the joy of ports when compared to the build-your-own method.

            Perhaps this would be more of an issue once a "bad-guy" makes his way into the Debian Maintainership and gets a package out there that sends everyone's encryption keys off to Osama Bin Ladin Land (the Terrorist Place on Earth ). But then again, do you check every line of source before compiling?
          • yes, but also dont forget that bsd also has a pkg_add command. when used with the -r switch, ir downloads binaries of whatever you are trying to install, ie: pkg_add -r kde or whatever, and will also fetch dependicies. so you sort of get the best of both worlds, you can either use ports to compile from source, or you can be lazy and use pkg_add to grab the binaries w/deps.
            • You need quite a computing power and good network connections to use the ports systems on a desktop on a daily basis.

              How many packages do you install on a daily basis? I upgrade a port/package about once every two weeks. The first time you install it takes a while, but after that you don't have to worry about it anymore. Or you can initially install only the prebuilt packages, and only use ports for upgrading.

              FreeBSD is free, as in speech, beer, and not telling you how to maintain your system.
      • I have Debian.

        apt-get update
        apt-get upgrade

        no wasted time compiling, knows the dependencies I need, and it does everything for me.

        that's just my opinion though.
        • I've recently started using OpenBSD and I had heard how ports and packages were functionally equivalent to Debian's apt-get (with which I am most familiar). I was very disappointed to find out that while packages and ports are nice, they're nowhere near as nice as apt-get.

          First of all with ports, you have to compile everything yourself, which can take a lot of time on slower machines (like my home router/firewall). In the end it just creates an OpenBSD package anyway.

          So I tried packages. They're pre-compiled, like debs, but the pkg_add software is terrible! In order to update a package you have to first remove the package then add it again! And if the package has dependancies you have to remove all the dependancies and re-install them all again! Plus you can't just do a "pkg_add foo," you have to do a "pkg_add ftp://ftp.openbsd.org{blabalbla}/foo-3.17-2.pkg," which means you not only have to know where to get the file, you also have to know the version number and all other information in the filename in advance! Add to this the fact that there's no real comparable substitue to "apt-get update;apt-get upgrade," and it's quite obvious that OpenBSD's packaging system is woefully inadequate.

          I'm not sure if FreeBSD's paackaging system is better, but I was shocked to see just how bad OpenBSD's packaging was. It's too bad, because apart from the packaging management, I love OpenBSD. Perhaps I'll start working "apt-get-izing" OpenBSD. Has anybody else started such a project? It seems badly needed.

          - j
        • 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 :)
  • GNU/Linux (Score:5, Funny)

    by DrXym (126579) on Friday September 21 2001, @01:29PM (#2331011)
    Note to BSD folks: It's Linux, not GNU/Linux.
      • I will never, ever call Linux by that name. If I ever meet RMS, I won't use the term, either. He can correct me over and over (as he is notorious for doing), and I will never, ever EVER EVER use that idiotic term.

        My goal is to not cave in to the "language police". The GNU component is only one component of a Linux distribution. The Kernel is called Linux. A distribution is typically called Linux. I am not confused by this. Most people are not confused by this.

        I wonder what the goal is of dening the Free Software Foundation credit for things such as the GPL and kicking off gcc, etc.?

        I wonder what RMS's goal is for denying other parties credit for things such as XFree86, Perl, etc. GNU's stuff is only piece. Certainly an important piece, but only one piece.

        • I don't waste time calling it GNU/Linux either, but at least I understand his point. It's not the amoount of software involved, it's the fact that it uses the GPL, and that the FSF was *the* pioneer in enforcing free software (as opposed to open source).

          So many people continue to harp on how other software makes a bigger part of any distro that I can only assume that they have blinders on and do not want to admit that he has a point, at least from his point of view. I think they just want to bash RMS and the hell with needing a valid reason.
      • Don't FreeBSD and MacOS X also use gcc and other GNU software? Why aren't we forced to call them GNU/FreeBSD and GNU/MacOS X?
          • FreeBSD also includes a few other gnu tools. grep, tar, binutils and awk are all FSF versions. While they'd like to have BSD licensed versions, they either were removed from the 4.4-lite sources or the gnu versions were much better than the alternatives at the time.

            There are quite a few others like cvs, groff, etc. that aren't really essential but are part of the system too.

            One interesting thing I just noticed is that the version of IPFilter that's in the tree has a new license that does allow redistribution:

            Redistribution and use, with or without modification, in source and binary
            forms, are permitted provided that this notice is preserved in its entirety
            and due credit is given to the original author and the contributors.
      • GNU refers to the OS as a whole????


        I hate to state the bleeding obvious but major and significant parts of a typical Linux distribution are not GNU. Try to guess which bits. I consider it an insult that the term is blanketed over code (including some of my own) which is neither owned by the FSF nor even GPL in many cases. Certainly the FSF provides some of the bedrock tools for a Linux distro - and we salute them for it - but to name the whole distro in their honour is just silly.


        Linux is a perfectly acceptable term to refer to the whole OS in generic terms or to the kernel. If specific context is needed, prepend Mandrake, Redhat, SuSE etc. as appropriate.

      • I've been using GNU/Linux since Linux Version 0.48. Yes, this was around six months after the release of 0.1 and yes, when RMS came it with his "you should rename Linux Lignux" I was as angry, and as vocal, as everyone else.

        He has said that his reaction (a natural one, after all at the time he and his project had written almost all of the software we were using, outside of the kernel itself and the X Window System for those few lucky enough to have it working on their hardware at the time) was a mistake, and if he had it to do over again he would have handled it differently.

        The FSF's stance on wanting the entire operating system to be called GNU/Linux rather than Linux is that they wish to emphesize the Freedom that the FSF philosophy tries to promote, and that recognition for their (by any measure massive) contribution to Linux, or GNU/Linux if you prefer, is very secondary to that goal.

        I have tried to make a habit of refering to the entire collection of software as GNU/Linux not out of some misguided notion of political correctness or to appease RMS as such, but simply as a small courtesy in saying "thanks" to the guys whose software (GNU gcc, file-utils, lib-utils, etc.) and kernel (Linux) has vastly improved the quality of that portion of my life spent in front of a computer and has enabled me to make a very comfortable living. It seems a small request on their part, and the least I can do to give something back.
        • I have tried to make a habit of refering to the entire collection of software as GNU/Linux not out of some misguided notion of political correctness or to appease RMS as such, but simply as a small courtesy in saying "thanks" to the guys whose software...


          And by doing so you're being discourteous to all the other guys who wrote stuff that you make a living from. I speak of such stuff as the kernel, XFree86, Perl, Mozilla, Python, tcl, KDE, Apache, Samba, MySql, openssh, webmin, and many more besides.


          FSF software is what it is - a valuable subset of any distribution, but certainly not *so* important that it deserves everything to be tarred with the same brush.

          • Let me correct you slightly. KDE, Gnome, MySQL, etc, are NOT part of the operating system. Neither is gcc, bash or emacs. Think about it, if you replaced bash with tcsh, are you now running a different operating system? Of course not!

            An operating system is "software that controls the operation of a computer and directs the processing of programs (as by assigning storage space in memory and controlling input and output functions)." A strict reductionist would consider only the kernel and kernel modules to be the operating system. In reality, we must also include the file system, init process, boot loader, etc. as part of the OS.

            What is there of GNU that is absolutely necessary to get a Linux system up and running? Nothing! However, GNU has provided a mass of software that makes using Linux much, much more convenient. Although this software is not the operating system, it does comprise the majority of the standard Unix "operating environment". Since it is not necessary, I cannot consider it part of the operating system.

            What RMS does not realize in his crusade to rename LinuxOS, is that Linux is a NEW kind of system. It is the first component operating system and environment. It was created not from scratch, but from existing parts. Some of these parts came from GNU, but not all of them. Just as Home Depot does not get to name your kitchen extension, neither does GNU get to name this new kind of system just because it used some GNU parts.
          • I understand RMS' point here, but a Linux distro is much more than just Linus' kernel and a bunch of GNU stuff on top. It seems unfair to single out GNU/FSF/RMS when KDE, Gnome, XFree, MySQL, sendmail.org/Eric Allman, the ReiserFS, Emacs and LVM people and loads of others are just as well-deserved of a honourable mention.

            Silly silly. Emacs is GNU - in fact it was the first piece of GNU. Gnome is GNU also. But that's not the point.


            The point is that an Operating System is a collection of software that makes a computer usable. There is a minimum level, and it's more than a kernel. You have to have a text editor. You have to have a compiler collection. Without those you can't do anything at all.


            RMS and the FSF have been working to make all the crucial components of an OS available for decades. Without that work there wouldn't be any Linux. Don't believe me? Just what do you suppose Thorvalds himself had to have before he started writing the kernel? VIM and GCC. RMS himself wrote GCC. VIM was written by people inspired by his example, who preferred the design of vi, but longed for the freedom of Emacs.


            For that matter, BSD in the form we know it today relies on GCC, and quite a bit of other GNU software too. It's probably possible, at this point, to put together a Free system that doesn't use anything GNU. But it would be an inferior system, so no one, not even OBSD (Theo hates RMS and yanks anything GPL out of his base the moment anything half-usable under another license is available,) does. But would it be possible to do that at this point if it weren't for RMS' unflagging uncompromising belief in Free Software, were it not for the tremendous amount of work he has done? I very much doubt it. So yes, I think he does deserve some credit, and yes, I think it's quite accurate to call most linux-based OSes GNU/Linux.


            • The point is that an Operating System is a collection of software that makes a computer usable. There is a minimum level, and it's more than a kernel. You have to have a text editor. You have to have a compiler collection. Without those you can't do anything at all.

              Actually, an operating system does not need a text editor, etc. - spend some time in the embedded world.

              -jerdenn
  • I don't know how many times I wanted to do this, but always got bogged down in the details. The OpenPackages [openpackages.org] project has had their system working on Linux for a while now. However, OpenPackages departs from the FreeBSD ports collection and takes a lot from OpenBSD and NetBSD as well. And it's not finished yet. Work seems to have slowed down on it too, unfortunately.
    • 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.
  • Both on RedHat and on Debian, installing software either from source or from binary is trivial. And almost all the software I have ever wanted has been packaged for Linux distributions. Why would I want the BSD ports? Is there any software that I don't know about that I am missing?
  • I'm an avid FreeBSD user, so I am really glad to see FBSD technology making its way into the Linux camp. I hope many Linux newbies benefit from this. I believe it or not, I found FBSD easier than Linux when I knew nothing about UNIX. The Ports Tree was a huge part of that.

    But let me see if I've got this right...the FreeBSD ports tree is a port of Linux/nonBSD-UNIX based software (mostly Linux based) to FreeBSD, and now someone has taken it and ported it back to Linux...heh.

    (Okay, okay, I realize it's the actual ports tree system which is being ported, but still... ;)
  • by On Lawn (1073) on Friday September 21 2001, @02:01PM (#2331215) Journal

    Well, how is this better than Rock [rocklinux.org] 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.
  • by Jagasian (129329) on Friday September 21 2001, @02:24PM (#2331321)
    A full Linux distro that utilizes a "BSD Ports" like software management system is already available. The Linux distro is called "Gentoo" [gentoo.org].

    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.
  • by Lethyos (408045) on Friday September 21 2001, @02:31PM (#2331357) Journal
    Amusing as the infighting between the *BSD and Linux camps may be, it's hardly beneficial in our primary struggle to wrench market share away from MS. By developing projects that aid greatly in bringing these two platforms together, we can demonstrate a number of things:

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

  • by scrytch (9198) <chuck@myrealbox.com> on Saturday September 22 2001, @12:04AM (#2333507)
    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 am sick and tired of the GNU/Linux / Linux arguement.

        Call it whatever you want, just don't call it Microsoft/Linux. ;-)
          • Richard Stallman pointed ou that since Linus Torvalds used some GNU programs in developing his OS this could be acknowledged by calling the new OS GNU/Linux. Nothing wrong with that!

            Yup, and Symantec writes a lot of their software in Microsoft Visual C++, but we don't call it Microsoft / Norton AntiVirus, do we?

            -jerdenn
    • "Its basically ports++ that forms the core of the distro (aka its not just for "third party packages")."

      Please, read the FreeBSD handbook :)

      cd /usr/src && make -j8 buildworld

      I installed FreeBSD 4.3 on my box when it was released, I CVSuped the latest source code last week and now my box reads:

      ainhoa# uname -srn

      FreeBSD ainhoa.energyhq.org 4.4-STABLE

      Yep, FreeBSD is cool :)
    • Install FreeBSD if that's what you want.

      Forget GNU. Forget Linux. Forget BSD. Forget Microsoft.

      Just use the system that best fits your needs. This may mean that your pet OS is not a universal fit for someone else.


      That's what this is ABOUT!

      The OS and the applications are separate entities. This is a port of the applications so they'll compile and run identically, from a common source base, on both BSDs and Linux. This makes them tweakable on Linux or a BSD, and so on.

      Once this is fully done you'll be able to have a common environment across the (unix-like) OS spectrum. Pull out the OS and swap in another, and it won't matter. So you'll be able to pick or change the OS to meet your needs for *OS* performance, hackability, or special feature set, without having to switch to a different set of applications just because you changed the platform under them.
    • The only thing I hope is that they let every choices to me. I use slackware and tarballs for one reason: the word automatic have been sounding weird for me.

      You can do the same under FreeBSD as well. There are prebuilt binary "packages" that are essentially identical to Slackware tarballs.

      What is great about ports is that you get all of the benefits of building from scratch, with the convenience of automatic builds, dependency checking, etc.