ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

Other Software > Developer's Corner

Per-User Software Installation (and the like...) Under *NIX

(1/3) > >>

ewemoa:
I'm hoping to hear from others who are interested in this topic -- hopefully about actual usage whether current or past :)

Been using the toast [1] tool for a while after having investigated to varying degrees the following:


* paco
* alien
* src2pkg
* src2pkg-ng
* checkinstall
* GNU Stow
* ESP Package Manager
* Smart Package Manager
* OpenPKG
My own usage is under Debian (and a bit of Gentoo).  Some use cases include:


* Want to use a more up-to-date version of something (and/or would like to patch), but would like to be able to cleanly remove traces / disable / enable
* Want to use something on a host which lacks that something, but don't have administrative privileges -- and even if I did, don't want to impact other users' environments
Please share stories!


Version: 1.484
MD5: b66e07cd2839177cb644455cc42be3ca
SHA1: 30ec7216cd62b227b51a2ed4ec08641393454f4c


[1] The best introduction to toast I've encountered so far is the article:

  Installing and tracking software updates with toast

If interested, I recommend looking at the toast manual after reading the article.

ewemoa:
Zero Install looks like another possibility.

ewemoa:
Just learned about Gentoo Prefix and have been testing the Nix package manager.  These both have the advantage of being actively maintained...

Edvard:
By hand.  >:( ;D

Seriously, I have a lot of packages that I've compiled from source because A) they weren't in the repos, or B) the version in the repos lacked a desired feature.  I'm a bit paranoid about mixing package managers, so Toast (interesting as it looks) prolly won't be my cup of tea (though I will take a look).
Also, my favored per-user installation directory is already provided; ~/.local, so if the compilation process is the ubiquitous "./configure && make && make install" sort, I'll do ./configure PREFIX=/home/edvard/.local instead.

Oftentimes folks use a different build system like cmake or waf, which throws a monkey wrench in, but similar 'install to non-default directory' functionality is usually there so a little read through the man pages and I'm good.
If it's something that just compiles to a single executable, I just move it to my personal bin directory, ~/.local/bin.
In the case of Lazarus, it likes to be installed to /usr/lib/lazarus by default, but I just compiled and moved the whole source directory with executables (the source is required for adding components) to ~/.local/lib/lazarus.

Every once in a while, I'll find a program that doesn't like being where it's put, and I have to write a shell script that sets LD_LIBRARY_PATH so it can find things, but I've discovered chrpath lately, which allows you to change the rpath inside the executable, which keeps things a bit cleaner.

... And then there are those times when I simply download a binary package and unpack it, because I don't feel like installing it or I want to see if it the executable really needs all those !@#$%& dependencies...

ewemoa:
I'm a bit paranoid about mixing package managers, so Toast (interesting as it looks) prolly won't be my cup of tea (though I will take a look).
-Edvard (May 20, 2014, 09:39 PM)
--- End quote ---

I don't recommend toast now -- other things look more promising and maintained.


One of the aspects of using a package manager I appreciate is being able to cleanly remove packages -- so I like having a package manager that makes it easy to create packages for because often what I want to try is not packaged yet.  Even with Arch's AUR or Gentoo's overlays, there's still stuff people haven't gotten around to packaging (or in some cases may be they have but not shared their results).  PKGBUILDs and .ebuilds are way easier to put together than .debs IMO.


Thanks for the tip regarding chrpath -- hopefully I won't have to use it much, but it sounds like it could be handy!

Navigation

[0] Message Index

[#] Next page

Go to full version