# FreeBSD v10 ports system has me yearning for a GUI manager



## rekabis (Jan 1, 2014)

Just to be clear, while I have been working with computers since 82, on the Internet since 88, on the Web since 92 and in the I.T. industry since 98, I am somewhat of a UNIX noob. To be specific, this is my first time working with Unix without any sort of a GUI, and it is driving me batty beyond belief.

For one thing, the actual ports system seems to be smoking crack and dropping acid.

For example, when I try to install any sort of a package with a dependency, even a very recent one, does it stump up for the latest version of the dependency? Nooo... it goes for one two versions older than it itself (at minimum… the record so far is 8 versions back, dating from 2008). I tried to install Apache 2.4, and all of a sudden it’s complaining that it cannot install because db4 is no longer supported and db5 or db6 is recommended. Like… WTF??

And this is only the beginning. The very latest version of PHP tries to install Apache 2.2, which cannot install because 2.4 is already installed. On a previous setup I had installed 2.2 first, and then tried to upgrade to 2.4 but that was refused because 2.2 was already installed.

When I tried to make use of portmaster, the vast majority of ports that are installed refuse to be recognized as older versions. As such, I could have MySQL 5.5 installed, and yet portmaster would absolutely refuse to recognize the fact that MySQL 5.6 has been released for quite some time now. It would utterly refuse to see that MySQL was available for updating. This was not just an isolated incident -- at least 80% of all ports that had upgrades available (as in, I could see new entries once portsnap was properly run) but portmaster breezed by them as if the latest versions were already installed.

I even tried to use the -o flag to get portmaster to manually move a software package from one version to another(such as: `portmaster -o lang/python27 lang/python33`), but even that threw some strange error and refused to work 100% of the time.

Portmaster itself threw me a strange curveball -- it needs Python 2.7 and installs it, but doesn’t actually register it with the system -- even after using Portmaster to install Python 3.3.3, I still had to manually create a softlink so that running `python -V` actually gave me a result (the current version) from anywhere in the file system instead of “command not found”.

I still don’t know how to force-update a port when it’s not being recognized as upgradable by portmaster (or even the regular commands, which refuse to install a newer version of a port when an older one is installed).

I am on the verge of installing a GUI like Gnome and some sort of third-party package management system where I can actually MANUALLY DETERMINE what versions of dependent ports are actually selected, instead of being forced to accept 2008’s well-worn hand-me-downs. Plus the ability to force-install ports that the system refuses to recognize as updatable even though updated versions are sitting in the ports system.

Any direction on how to properly manage such a schizophrenic package management system would be greatly appreciated. I would prefer to remain with a commandline in order to keep the system as slim as possible, but right now it’s appearing less and less likely. I’ve been hammering my head against this for three straight days (and as many reinstalls of FreeBSD) so any help beyond RTFM would be greatly appreciated. Because the manual was the first thing I actually went after… and it doesn’t seem to have helped.


----------



## nanotek (Jan 1, 2014)

*Re: FreeBSD v10 ports system has me yearning for a GUI manag*

lmao!!! LMAO!

Sorry. It isn't funny and I feel your pain. I really do. This is one of the major reasons I despise ports and avoid them at all costs! I can't think of the last port I built that actually built the latest version of any dependency. Stick to `pkgng`. Ports are a liability.


----------



## frankpeng (Jan 1, 2014)

*Re: FreeBSD v10 ports system has me yearning for a GUI manag*

You cannot install two revisions if they are eventually conflict. For example, Apache24 and Apache22. The solution is to install one revision first, say, Apache22. Then try to make everything else compatible with it. In another machine, install Apache24, try to make everything else compatible to it. Never upgrade any software after installing it. In another machine, install the higher version of the same software and make everything compatible to it. Once it worked, never upgrade your ports and kernel. The rule is one machine for one application of one revision.


----------



## scottro (Jan 1, 2014)

*Re: FreeBSD v10 ports system has me yearning for a GUI manag*

While I agree that it can be a pain, usually it can be worked around by changing the order of installation. For example, before installing www/apache24 first install databases/db6.

I found, for example, that with zabbix I had to first  install databases/db6, then www/apache24, then databases/mysql56-client and so on.  Otherwise, for example,zabbix2 pulled in mysql55-client.

Annoying though it may be, it has been, at least in my experience, not that difficult to fix.  If I see something is pulling in an older version of a dependency than I want, I stop the install and install the later version of the dependency first.  So, in the case of zabbix, I first install databases/db6, then www/apache24, then databases/mysql56-client. After that, php5 won't pull in apache22 because it's already got apache24, apache24 has its database requirement, zabbix won't try to pull in mysql55-client.

Linux GUI (and command line) managers, as well as those for Windows and Apple, can frequently have their own problems too.


----------



## wblock@ (Jan 1, 2014)

*Re: FreeBSD v10 ports system has me yearning for a GUI manag*



			
				rekabis said:
			
		

> Portmaster itself threw me a strange curveball -- it needs Python 2.7 and installs it, but doesn’t actually register it with the system -- even after using Portmaster to install Python 3.3.3, I still had to manually create a softlink so that running “python -V” actually gave me a result (the current version) from anywhere in the file system instead of “command not found”.



Let's start there.  portmaster (ports-mgmt/portmaster) is a shell script.  It does not need Python at all.  Also, the ports system is set up so more than one version of Python can be installed anyway.  By creating a link, that has been overridden.  Maybe it won't break anything.  ("command not found" is likely due to using csh(1) and not using rehash after installing new commands.)

In general, if you find big problems with something that others are using successfully, it often means that an assumption is wrong.  For example, an assumption here is that a port will always try to use the latest version of a dependency.  Many do not, either because they require an older version, or because a newer version has not been tested.  The db4 change is very new, and did not provide a default version.  That may change.  In the meantime, @scottro is correct: install the database first.  (Check the licenses, though, I picked databases/db5 for that reason.)

It's not clear how a GUI would help this, although I think there have been attempts at them.  Not sure what is available, since I've never felt it would make things easier and so haven't looked.

The original posts lists too many problems to really address any of them.  An individual thread for each major problem will make it easier for people to help.


----------



## rekabis (Jan 2, 2014)

*Re: FreeBSD v10 ports system has me yearning for a GUI manag*

Another classic example just cropped up -- I had just installed Ruby 2.0 from the ports, and was in the process of installing Rails via either method (rubygem-rails or rubygem-passenger). Problem is, both methods want to install Ruby 1.9! I already have Ruby installed, but both of these ports want to install an older version of Ruby?

Also, can confirm: FreeBSD Ports install does _not_ create a symlink to the default version of anything. With my install of Ruby 2.0, I was still unable to go `ruby -v` (for the version number) until I created the symlink inside of /usr/local/bin/. In order to run anything from the command line, you _will_ have to manually create the symlink under FreeBSD 10, it is no longer created automatically upon installing the port.


----------



## rekabis (Jan 2, 2014)

*Re: FreeBSD v10 ports system has me yearning for a GUI manag*



			
				nanotek said:
			
		

> Stick to `pkgng`. Ports are a liability.


Thank you for your recommendation, but the PKGNG information I have found is mostly about the technical aspects of it, and not how to use it. Do you have a link you can pass on to me that would guide me?

Edit: Found it.


----------



## wblock@ (Jan 2, 2014)

*Re: FreeBSD v10 ports system has me yearning for a GUI manag*



			
				rekabis said:
			
		

> Another classic example just cropped up -- I had just installed Ruby 2.0 from the ports, and was in the process of installing Rails via either method (rubygem-rails or rubygem-passenger). Problem is, both methods want to install Ruby 1.9! I already have Ruby installed, but both of these ports want to install an older version of Ruby?



As said above: "...an assumption here is that a port will always try to use the latest version of a dependency. Many do not, either because they require an older version, or because a newer version has not been tested."



> Also, can confirm: FreeBSD Ports install does _not_ create a symlink to the default version of anything. With my install of Ruby 2.0, I was still unable to go `ruby -v` (for the version number) until I created the symlink inside of /usr/local/bin/. In order to run anything from the command line, you _will_ have to manually create the symlink under FreeBSD 10, it is no longer created automatically upon installing the port.




```
% ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [amd64-freebsd10]
% whereis ruby
ruby: /usr/local/bin/ruby /usr/local/man/man1/ruby.1.gz /usr/src/contrib/file/Magdir/ruby
% pkg which /usr/local/bin/ruby
/usr/local/bin/ruby was installed by package ruby-1.9.3.484,1
```


----------



## Oko (Jan 3, 2014)

*Re: FreeBSD v10 ports system has me yearning for a GUI manag*

Now defunct DesktopBSD http://desktopbsd.net/ used to have a GUI for ports. That particular tool was ported to FreeBSD. I have no idea what happened to it. I stopped using FreeBSD on my desktops almost six years ago.


----------

