Slashdot Mirror


BSD Version Of Gentoo's Portage

eugene ts wong writes "Here is some good news for BSD users. Gentoo Weekly Newsletter has an article that says that there is a BSD version of portage. It's still in a developmental stage, but it's definitely making progress."

20 of 155 comments (clear)

  1. Not good news by Geekboy(Wizard) · · Score: 4, Insightful

    Most BSD users don't want this. Ports works quite well for us, thank you very much. Any shortcomings that Ports has, are being worked on.

  2. Ease of Use for Package Management by eugene+ts+wong · · Score: 4, Interesting

    1 of the things that I like about portage is the ease of use. You don't have to find dependencies. Nor do you have to find the web sites that host these packages. If you can find a place that's closer than the defaults, then you'll have the option of getting packages from there.

    I think that these general advantages should be available all across the board for all OSes, unless of course there are specific needs for specific alternatives.

    I'm not trying to start a flame war or anything. I'm just sharing my own likes & dislikes.

    1. Re:Ease of Use for Package Management by sporty · · Score: 5, Informative

      Do realize, that ports has done this for a long time. Only diff beween ports and portage are the command structure, some layout and the systems that they originated for.

      The cool thing about ports in relation to freebsd, and prolyl the other bsd's.. is that they integrate with the package systems used. SO if you want, you can download the tbz (vs tgz) package or use /usr/ports.

      --

      -
      ping -f 255.255.255.255 # if only

  3. Why? by aliquis · · Score: 5, Insightful
    Then I first tried gentoo I thought portage was better than ports, but that was because I hadn't read the onlamp article about portupgrade.

    The differences I've noted is that portage is upgraded every now and then which gives you the small trouble of running etc-update and upgrade it's config files. It might actually be broken at some times to.

    Ports on the other side is rock solid and has been used for a much longer time. You can of course set compiler flags for ports to, and atleast for freebsd the upgrade tool is as good as the gentoo one. I do however like netbsds approch most since their pkgsrc seems most intelligent with their /usr/pkg path for everything installed from it. I must admit I don't know that much about their different port handling tools thought, I've mostly used make install.

    The huge advantage of gentoos portage is the USE-flags, which I really like. Don't know if it would be hard to get the same functionallity in the BSDs without using portage, or if there already are a few alternatives which works almost the same way. Feel free to reply or e-mail me information about usefull ports tools if you have any.

    1. Re:Why? by Arandir · · Score: 2, Interesting

      Don't know if it would be hard to get the same functionallity in the BSDs without using portage, or if there already are a few alternatives which works almost the same way.

      There are things in FreeBSD that work almost the same way. But they tend to be much more specific than what Gentoo users are used to. They're informally called "knobs" and can be put in the global /etc/make.conf file to apply to everything, or used on a per-port basis. Adding new knobs is not that hard, but you have to go through and make sure the affected ports use them.

      The biggest problem with the knobs is that they are not fully documented. For example, there is a very useful "WITHOUT_X11" knob that several ports respect, but which isn't mentioned in the Handbook or FAQ.

      The "WITHOUT-X11" knob is described in the porter's handbook, but that isn't an end-user document, so many people skip over it. Perhaps the Handbook needs another page in the ports and packages section.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
  4. Portage versus Ports? by Mad+Marlin · · Score: 2, Insightful

    As a FreeBSD user, my question is this: How exactly is this different from the ports tree? I thought that it was basically the same. I am glad to see somebody doing it, though.

    1. Re:Portage versus Ports? by aliquis · · Score: 2, Informative

      The huge difference between ports and portage is that portage has replaced makefiles and instead uses a python based solution. They also got USE-flags there you can specify stuff like "X ssl gtk -kde -cups" and stuff like that, to make applications which can use X and ssl compile with those options enabled, but not compile kde and cups support.

  5. Gentoo by rf0 · · Score: 2, Insightful

    I can't see the difference. If anything pkg_add -r would almost be suprior

    Rus

  6. Why? by Arandir · · Score: 4, Insightful

    The big question on my mind is "why?" Why would I want to use portage instead of ports? Why would I want to use a copy when I already have the original?

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  7. Why? by Matty_ · · Score: 4, Insightful

    I see absolutely zero need for Portage on any of the popular BSD systems, except for Mac OS X. Having it on Mac OS X would be much better than using Fink.

    I use Fink now, but I don't have flexibility in deciding what features I wish to have compiled in to my software (at least, not that I am aware of).

  8. Re:Splitting the user base! by cant_get_a_good_nick · · Score: 2, Interesting

    Gentoo already forked; the coder base is split, though not sure about the user base.

    ports vs. portage is a debate of utility. Its a meta-tool; how do I get the tools that I need in a better manner (* Better to be defined by the user). I sincerely doubt that the tipping point between selecting gentoo and FreeBSD is the difference in a metatool.

  9. Re:Splitting the user base! by cant_get_a_good_nick · · Score: 4, Insightful

    1) I shouldn't be answering to trolls, but the whole "my free x86 based UNIX OS that runs tons of software is SOOOO much better than your free x86 based UNIX OS that runs tons of software that you must be a luser and i rock!" thing is pathetically old. See a tree. Pet a dog. get laid. Get a life outside of petty arguments about free OSes showing "heh, I said BSD sucks, on a BSD FORUM, I sooooo rule".

    2) FreeBSD is not about speed really, though it is fast, and in many ways faster than Linux. FreeBSD is about a system. Not a kernel with 24 vendor specific patches (I honestly can't read the patch version on my current RH kernel, nor do I bother to look it up) with a billion RPMs each with their own vendor specific patches or apt dpkges and a few tarballs here and there, but a cohesive system. The problem that "BSD SUXXORS" dorks have with FreeBSD is that its beauty is subtle; you don't really get it until you've had the system for a while and you realize how everything just feels right. They don't switch scheduler and VMs in the middle of a "stable" branch. They don't make you change firewall code with every major kernel release. It just works, and works well. If chasing every RPM, worrying abut what vendor has what is what you like doing, cool, go for it. But BSD users (like myself) will be quite happy with what we chose, for reasons you can't seem to understand.

  10. also coming soon... by bcrowell · · Score: 5, Funny
    • vi keybindings for emacs
    • a Windows skin for MacOS X
  11. Re:Portage versus Ports? -- IMHO/IMOE by Ricin · · Score: 3, Informative

    Portage doesn't replace makefiles, at least not the ones provided to build the actual program.

    The FreeBSD's ports' Makefile basically sets a load of build/package organization variables, almost the same as a portage "ebuild" does. An ebuild is a script though. I've submitted a few when I was trying out Gentoo a while ago.

    Portage just happens to be written in python (good choice BTW IMHO) whereas the traditional pkg-tools for FreeBSD are C based and the portupgrade utility is written in Ruby.

    Portage was inspired by NetBSD's pkgsrc which was derived from FreeBSD ports. Flags like PROVIDES are similar to USE and somewhat comparable to FreeBSD's make options for ports e.g. "NO_GUI"=true and stuff like that. I do like the USE idea though.

    The interesting thing about portage as a FreeBSD user is two sided really: the pro would be that the functionality of portupgrade would be part of the portmanager tool (portage) itself, the con is that *BSD (even Net) are not a kernel with packaged userland, it is a full (perhaps small though) OS and the hard thing is always where to draw the line and whether or not the base system can and should be put into packages/ports/ebuilds also. Like any OS Gentoo Linux needs a bootstrap and a chaintool too to build the rest. LFS'ish (quite easy though, they have good docs).

    The Gentoo "rc scripts" are also very NetBSD inspired and recently FreeBSD has followed this approach, e.g. using PROVIDES, and BEFORE, etc.

    My (rather short) experience with portage was that I liked it, but it's definately more geared towards a linux (kernel+tools+pkgs) system. It also broke quite frequently though. And of course, python is always nice, if only to unbreak little things easily (I'm not much of a C person).

  12. cross-platform package managment by jschauma · · Score: 4, Insightful

    As usual, when this comes up, let's plug NetBSD's Packages Collection. ``pkgsrc'', as it's known, originally derived from FreeBSD's ports is available for a large number of platforms (Netbsd, of course, and then Darwin, FreeBSD, OpenBSD, Linux, Solaris and Irix), thus allowing system administrators who have to take care of more than one OS to take advantage of its strengths. So, uhm, sorry, but I'd also have to add my vote to the ``who needs portage'' camp.

    --

    -- "Tradition is the illusion of permanence."
  13. Re:Shortcoming #1: by Arandir · · Score: 4, Informative

    Do we really need to throw out stable and robust ports entirely just because you like the USE flags? If it's so desperately wanted by you, then perhaps you could actually code it up. It's all just simple makefiles, so you don't even need to learn python.

    There already are "USE" flags of a sort, but they're more specific than the general purpose flags that Gentoo uses. Adding some new flags should be a piece of cake, if you can convince the committers of their need.

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  14. Re:Shortcoming #1: by stab · · Score: 2, Informative

    OpenBSD has FLAVOR and MULTI_PACKAGES exactly for this. Each port has a set of knobs that can be twiddled, and the binary packages are generated and named appropriately.

  15. The software is only the smallest part by R.Caley · · Score: 2, Interesting

    Who is going to meta-port the 7000 (or whatever it is) ports to whatever format portage needs it's information in and then keep them up to date?

    --
    _O_
    .|<
    The named which can be named is not the true named
  16. Re:Splitting the user base! by harmgsn · · Score: 2, Funny

    Not to forget about having to chase down the dependancies, hoping they're the right version, then chasing down the dependancies' depandancies, etc., etc., etc. That's one of the major reasons I chose to stay away from the RPM-based systems and went with FreeBSD. The ports tree gets the dependancies for you (if you are in a lazy enough mood to go that route) or the pkg_add gets them as well. It's a lot less of a headache to worry about "oops, I forgot this dependancy!". I personally think that the RPM users who are die hard "OMFGZORZ MY RPMS PWNZORZ UR SYSTEM" just think that they are cool because they know how to use a search engine and find the rpm they need and spend 12 hours hunting down everything needed to get something installed whereas a FreeBSD user would get the software installed and move on to things that are more important (ie: life away from hunting rpms). Just my 2 cents.

    --
    Harm
  17. Re:Changes to ports by __past__ · · Score: 2, Informative
    The problem with this is that some ports (e.g. ghostscript and php) have curses based front-end for selecting make flags. This causes portupgrade to wait for user input
    Use portupgrade -m "BATCH=yes", and no user input will be required. You can also set the variables that you want your ports to be built with in /etc/make.conf, or, more flexibly, in /usr/local/etc/pkgtools.conf, based on the ports name (including wildcards). This is a good idea anyway, because you don't have to remember all these options, they will be the same on every update.

    The only problem is finding the options you can use. The best approach is currently to simply examine the port's makefile, say by grepping for "^\.if", but that doesn't always work (for example, the postfix ports use a different mechanism). So learning to read and understand makefiles is a good idea, and reading the porter's handbook also pays off. A standardized mechanism to query a port for all available options would be definitly a Good Thing (it would also make writing graphical frontends for the ports tree way easier, for example) - there have been some ideas how this could be done, but nothing has worked good enough yet, and of course, switching ~8000 ports to a new system would be a lot of work.