-1

Я хочу установить bedtools (т. Е. Исходный код на C ++ для манипулирования файлами определенного типа). Для того, чтобы установить его, инструкция по установке говорит, что нужно скачать tar-файл, распаковать его, перейти в каталог файлов untar, а затем набрать make.

Инструкции по установке следующие:

curl http://bedtools.googlecode.com/files/BEDTools.<version>.tar.gz > BEDTools.tar.gz
tar -zxvf BEDTools.tar.gz
cd BEDTools
make clean
make all
sudo cp bin/* /usr/local/bin/

Но как я могу дать ему префикс, чтобы я мог установить его в определенном каталоге?

Я знаю, что могу зайти в Google и попытаться найти ответ, но так как я устанавливаю программное обеспечение, я предпочитаю спрашивать и проверять, правильно ли я его запускаю, не рискуя не зная, где я его установил и т.д.

Я попытался сделать --prefix, но префикс не вариант. Я привык использовать configure, make, make install, но это программное обеспечение говорит, что оно устанавливается только вместе с make.

Спасибо!

3 ответа3

3

Линия

sudo cp bin/* /usr/local/bin

устанавливает скомпилированные двоичные файлы в /usr/local/bin . Если вы хотите установить их в другом месте, просто измените папку назначения в этом утверждении. Например, если вы хотите поместить их в папку bin в вашем домашнем каталоге, это будет

cp bin/* ~/bin

(Вы можете опустить часть sudo если вы устанавливаете в то место, к которому у вас уже есть доступ для записи.)

1

Последняя часть процесса установки состоит в том, чтобы скопировать двоичные файлы в место, которое находится в пути поиска вашей оболочки. Вы можете узнать о пути поиска, набрав echo $PATH . Для меня это:

$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin

Это означает, что когда я набираю имя программы в оболочке, она сначала заглядывает в /opt/local/bin если там можно найти команду, потом в /opt/local/sbin и т.д. Если я хочу, чтобы она выглядела в моей домашней папке я бы выполнил следующую команду:

PATH=$PATH:~/bin # search my personal bin folder last

или же

PATH=~/bin:$PATH # search my personal bin folder first

Это изменение исчезнет, как только я выйду из оболочки. Чтобы это исправить, мне нужно добавить команду в скрипт, который выполняется при входе в систему (это может зависеть от ОС). Для меня (в Mac OS X) это (скрытый) файл .profile в моей домашней папке, где я добавляю следующую строку:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH:~/bin

$PATH важен для сохранения важных путей поиска, которые уже были установлены. Если вы случайно удалили эту часть, вы должны указать абсолютный путь к вашим командам: например, /bin/ls , /usr/bin/vim , ...

Вы можете узнать, какая команда выполняется, введя which <cmd> в вашу оболочку.

1

Это зависит от конкретного проекта.

Для многих программ GNU вы можете изменить место назначения, передав --prefix во время configure .

И несколько Makefile написаны так, чтобы вы могли

  make install DESTDIR='/tmp/somedestdir'

(но это может не сработать, если в двоичном файле есть какой-то жестко заданный путь)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .