I am packaging an application that contains binaries that would normally go in /usr/bin and a shared library that would go in /usr/lib.

However, the package guidelines for submitting applications to the software center suggest that binaries should go into /opt.

What is the proper way of putting these files into /opt yet making sure they are in the $PATH?

For clarification, the page I'm referring to is here: http://developer.ubuntu.com/publish/my-apps-packages/ and it states:

"Be able to be installed into /opt/...."

2 Answers 2


Packages that are submitted for extras.ubuntu.com cannot install binaries that are intended to be accessible from the default $PATH - they are meant to be relatively lightweight GUI applications. This excludes installing Upstart services or other files into /etc.

The restrictions on files were made for security reasons when the ARB process was written up.

For applications such as these, you can still submit them to the Ubuntu archive (main, universe) & request a backport to the stable release.



Could you give more information - "the package guidelines suggest that binaries should go into /opt" ?

I think that the Debian and the Debian based don't use the /opt directory. By the LinuxFilesystemTreeOverview /1/:

"/opt can be used to store addition software for your system, which is not handled by the package manager."


If you want to use the /opt, you could make the symlinks /2/, /3/, /4/ to the /usr/bin etc.


The Project Neon /5/ is packaging the development versions of the Amarok and the KDE to /opt so they can be used side by side the stable versions.

The Neon has a ppa /6/ so you could donwload the source packages and examine them.


  1. https://help.ubuntu.com/community/LinuxFilesystemTreeOverview
  2. http://forums.debian.net/viewtopic.php?f=19&t=45964
  3. http://man.he.net/man1/dh_link
  4. https://wiki.ubuntu.com/PackagingGuide
  5. https://wiki.kubuntu.org/Kubuntu/ProjectNeon/
  6. https://launchpad.net/~neon/+archive/ppa


Thoughts after reading the http://developer.ubuntu.com/publish/my-apps-packages/.

"Be able to be installed into /opt/"

just means that the source should run from the /opt/. It does not be in the $PATH, if you are calling it with the full path.

Here the development version of the Amarok is installed under the /opt and the Exec /1/,/2/ key is:

Exec=/opt/project-neon/bin/amarok %U

enter image description here

But this is only my impression !

More links

  1. http://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
  2. http://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .