Можно ли установить ctags без привилегий root?

У меня есть доступ пользователей к экземпляру Ubuntu, и я хотел бы использовать CTags. Ошибка говорит:

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

Это и все инструкции онлайн указывают на то, что мне нужно быть пользователем root. Есть ли способ установить его как пользователь?

7 ответов

Решение

Да.

Вам нужно будет скомпилировать его самостоятельно и установить в своем домашнем каталоге.

Загрузите источник ctags: http://prdownloads.sourceforge.net/ctags/ctags-5.8.tar.gz

В часовой оболочке:

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

Это скомпилирует и установит ctags в вашем домашнем каталоге. Полученный двоичный файл будет иметь вид: $HOME/bin/ctags

Теперь вам нужно изменить переменную среды PATH перед запуском vim.

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

поместите эту строку в ваш.bashrc

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

Теперь вам необходимо создать ресурс для вашего.bashrc (помните, что.bashrc обычно загружается только из неинтерактивных оболочек. Убедитесь, что вы используете.bashrc из.bash_profile)

Если вам нужно, измените ваш.bash_profile и убедитесь, что он имеет такую ​​строку:

. $HOME/.bashrc

или же

source $HOME/.bashrc

Чтобы продолжить без закрытия оболочки, просто введите:

$ . $HOME/.bashrc

Теперь вы можете запустить vim, и ctags будет работать.

Вам не нужно ничего компилировать. Ctags - это всего лишь одна двоичная программа, поэтому вы можете скачать соответствующий пакет, распаковать его и поместить двоичный файл на свой путь. Как это:

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

Если вы тот, кто установил этот компьютер с Ubuntu, то вы пользователь с uid 1000, что означает, что вы можете запускать команды, требующие root через sudo команда, например

sudo app-get install exuberant-ctags

Возможно, вам придется предшествовать этому с

sudo apt-get update

чтобы получить свежую информацию о пакете.

Вы должны быть в состоянии сделать это самостоятельно, если вы скомпилируете и установите свою собственную копию редактора. Вы не сможете установить общесистемный пакет, подобный тому, который он запрашивает, не будучи пользователем root.

Конечно, просто установите его в свой домашний каталог из источника.

Перейдите на http://ctags.sourceforge.net/ и загрузите последнюю версию. Разверните его, откройте терминал и перейдите в каталог, в котором вы его развернули, затем сделайте следующее:

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

Теперь, отредактируйте ваш PATH с помощью этого (предполагая bash, который, вероятно, используется вами, если вы не знаете, как сделать это без посторонней помощи):

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

Вы можете добавить эту последнюю строку в ваш файл.bashrc или.bash_profile.

Определенно, вы можете скомпилировать его и установить в определенный каталог без прав root.

Если вы уже используете Anaconda, вы можете установить ctags с помощью anaconda.

      conda install -c conda-forge ctags

https://anaconda.org/conda-forge/ctags

Вы всегда можете установить его локально, скажем, в своем домашнем каталоге. После этого добавьте каталог, в котором находится ctags, в переменную окружения PATH yout shell.

Другие вопросы по тегам