up vote 2 down vote favorite

I have user access to a Ubuntu instance and I'd like to use CTags. The error says:

The program 'ctags' can be found in the following packages:
 * exuberant-ctags
 * emacs22-bin-common
 * emacs21-bin-common
 * elvis-tools
 * emacs-snapshot-bin-common
Ask your administrator to install one of them
-bash: ctags: command not found

This and all the instructions online indicate that I need to be root. Is there a way to install it as a user?

flag

75% accept rate

migrated from stackoverflow.com

7 Answers

up vote 3 down vote

Yes.

You will need to compile it yourself and install it in your home directory.

Download ctags source: http://prdownloads.sourceforge.net/ctags/ctags-5.8.tar.gz

In hour shell:

$ tar zxf ctags-5.8.tar.gz
$ cd ctags-5.8
$ ./configure --prefix=$HOME
$ make && make install

This will compile and install ctags in your home directory. The resulting binary will be: $HOME/bin/ctags

You will now have to modify your PATH environment variable prior to launching vim.

$ vim $HOME/.bashrc (or whichever shell you're using)

put this line in your .bashrc

export PATH="$HOME/bin:$PATH"

You will now need to resource your .bashrc (remember that .bashrc is normally only loaded from non-interactive shells. Make sure that you source .bashrc from .bash_profile)

If you need to, modify your .bash_profile and make sure it has a line like:

. $HOME/.bashrc

or

source $HOME/.bashrc

To continue without closing your shell, simply type:

$ . $HOME/.bashrc

You can now launch vim and ctags will be working.

link|flag
No --- the point of Ubuntu and Debian is that you have more than 20,000 sanely built and configured packages available. – Dirk Eddelbuettel Nov 5 '09 at 20:33
1  
Yes, sometimes you don't have permission to run apt-get install, like when you have an account with a hosting provider where you share the machine with many other users. I find sometimes I need to install a source tarball this way, and these instructions are solid. – Harold L Nov 5 '09 at 20:40
debian packages are wonderful and all, but any unix user should know how to install packages from source into a local directory. It's useful for testing packages before installing globally, compiling a personal version that's different from the local version (I always compile a custom mutt for myself), and it works on every unix-like operating system. – Bob Nov 5 '09 at 21:44
up vote 2 down vote

You don't have to compile anything. Ctags is just a single binary program, so you can download the appropriate package, unpack it and put the binary in your path. Like that:

cd
mkdir tmp
cd tmp 
wget http://mirrors.kernel.org/ubuntu/pool/main/e/exuberant-ctags/exuberant-ctags_5.5.4-1_i386.deb
dpkg -x exuberant-ctags_5.5.4-1_i386.deb .
mkdir ~/bin
cp usr/bin/ctags-exuberant ~/bin
cd ~/bin
ln -sf ctags-exuberant ctags
export PATH=$PATH:$HOME/bin
link|flag
+1 good idea. May not always work for software that has loads of dependencies (then compiling from source will be easier), but if it works it's simpler than compiling. – sleske Dec 27 '09 at 14:32
up vote 0 down vote

You should be able to do it yourself if you compile and install your own copy of the editor. You're not going to be able to install a system-wide package like the ones it's asking for without being root.

link|flag
up vote 0 down vote

You can always install it localy, say under your home directory. After that add the directory where ctags resides to yout shell PATH environment variable.

link|flag
up vote 0 down vote

If you are the one who installed this Ubuntu machine, then you are the user with uid 1000 meaning that you can run commands requiring root via the sudo command, e.g.

sudo app-get install exuberant-ctags

You may need to precede this with

sudo apt-get update

to get fresh package information.

link|flag
You fail at reading the question. He said he doesn't have root access. – Paul McMillan Nov 5 '09 at 20:39
up vote 0 down vote

Certainly, just install it in your home directory from source.

Go to http://ctags.sourceforge.net/ and download the latest version. Expand it, open a terminal and go to the directory where you expanded it, then do this:

./configure --prefix=`( cd ~ ; pwd ~ )`
make all
make install

Now, edit your PATH with this (assuming bash, which is probably what you are using if you don't know how to do this without help):

export PATH=$PATH:`( cd ~ ; pwd ~ )`/bin

You might want to add that last line into your .bashrc or .bash_profile file as well for that matter.

link|flag
How does pwd ~ differ from just pwd? Why not just $HOME? – Harold L Nov 5 '09 at 20:41
up vote 0 down vote

Thanks for the answers, I love this site.

I don't even have gcc available. I may just wait until the admin installs it

link|flag
If you don't have a compiler, then your only other choice would be to build and install it on another, similar box, and copy the binaries over. Of course, at the point, I'd start with building gcc itself on the other box, move THAT over, then you can build whatever you need. – Michael Kohne Nov 5 '09 at 22:03
Thanks Michael. I followed your suggestion with gcc and it worked nicely, but the admin got C-TAGS installed already so I'm good. – mcgyver5 Nov 10 '09 at 17:02

Your Answer

get an OpenID
or
never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.