help-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Install GNUStep on Ubuntu 16


From: Ivan Vučica
Subject: Re: Install GNUStep on Ubuntu 16
Date: Thu, 12 May 2016 14:30:02 +0100

On Thu, May 12, 2016 at 2:12 PM, Gerhard Huber <G.Huber1@gmx.net> wrote:
thank you. You see, I am not a Linux/Debian/Ubuntu crack :-(

That's why I'm trying to 'teach a man how to fish' :)
 
But it worked, gorm.app was it :-)
I uninstalled it, worked fine.
But then I did make/sudo -E make install, all without a problem, but I can't find Gorm now :-(
All the other apps are at //usr/lib/GNUStep/Applications, but the new Gorm is not here :-(


You know how the Cocoa API NSSearchPathForDirectoriesInDomains() or [NSFileManager URLsForDirectory:inDomains:] has the concept of a 'domain'? Things like NSLocalDomain or NSSystemDomain or NSUserDomain?

You know how filesystem hierarchy standard (FHS) specifies things like /usr vs /usr/local? Or how FreeDesktop.org (a.k.a. xdo) specifies /usr/share vs /usr/local/share vs ~/.local/share?

See, it's really common that free software for UNIX-like systems -- when manually installed -- installs itself into "local" domain. In case of FHS, to which Debian -- and thus Debian packaging for GNUstep -- tries to adhere, local domain is in /usr/local. Programs installed and upgraded by the distribution's packaging system, however it works, get to live in the system domain in /usr. For example, /usr/bin vs /usr/local/bin.

Armed with this information, I would look for it in /usr/local/lib/GNUstep/Applications.

In fact, I just checked -- that's where it should be.

How did I check that? Another useful GNUstep-specific nugget of information: No matter how you installed it, if it's correctly installed you should have a program called 'gnustep-config' in your path. This program, using just small pieces of information in /etc/GNUstep/GNUstep.conf, provides you with enough information to determine everything else about the GNUstep installation.

You'll want to run:
  gnustep-config --help
for more information, but suffice to say that, to discover where programs will be installed 'by default' on your system, you'll want to run:
  gnustep-config --variable=GNUSTEP_LOCAL_APPS

To discover where 'system' programs are installed (i.e. packaged programs):
  gnustep-config --variable=GNUSTEP_SYSTEM_APPS


Now, consider something else.

Like Cocoa apps (and OPENSTEP apps before Cocoa), GNUstep ships apps as 'bundles'. That is, directories with an extension of .app. Reading .app's Info.plist is the primary mechanism GNUstep-aware software can use to find and run the executable for these applications. On OS X, you have a utility called 'open'. On free systems, xdg-open is (to my knowledge) not aware of .app bundles, but GNUstep ships with 'gopen'.

Because 'gopen' won't be well known, gnustep-make's scripts, when installing the application, also produce ApplicationName.desktop and /domain/here/bin/ApplicationName. Note that they leave the original capitalization.

The reason why you can't find 'gorm' is because it's not there; the binary is called '/usr/local/bin/Gorm'. As far as I can tell, Debian doesn't ship any alternative, so however you were finding the app before, that must still work; it's just installed in a different place.

I'd suggest you just punch 'Gorm' in the terminal, or find the menu entry (which should exist because the .desktop file should be correctly installed).




Interesting tidbit: if you are ever packaging, or if you want to install into a different domain, the relevant make variable is GNUSTEP_INSTALLATION_DOMAIN. You can set it, for example, as follows:
  sudo -E make GNUSTEP_INSTALLATION_DOMAIN=SYSTEM

Note that I strongly recommend you do NOT do this while having Debian packages on the system. Treat it as you'd treat OS X's System domain (everything in /System): it's off limits, and even if you touch it, you shouldn't, and even if you still choose to, Apple /will/ overwrite it at the next OS upgrade.


Best of luck!

reply via email to

[Prev in Thread] Current Thread [Next in Thread]