Можно ли установить 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
Вы всегда можете установить его локально, скажем, в своем домашнем каталоге. После этого добавьте каталог, в котором находится ctags, в переменную окружения PATH yout shell.