Мне нужно установить netcdf на машину SuSE Linux, но у меня возникли некоторые проблемы с пониманием папок usr/local/ и моих папок myusername/local/. Я думаю, что мне нужно зайти в несжатую папку netcdf и сделать
./configure --prefix=/usr/local/netcdf-gfortran
Однако мне нужно создать эту папку, верно? И почему в usr/local, а не в my username/local ...?
решение1
Обычная комбинация:
./configure --prefix=... [more options]
make
make install
Вы, вероятно, не захотите его использовать, /usr/local
так как для этого также потребуются права root, поэтому используйте --prefix=$HOME
или --prefix=$HOME/programs
(или что-то другое, что вам больше подойдет).
Возможно, стоит поговорить с вашим системным администратором по поводу дополнительного программного обеспечения — вам следует поговорить с ним в любом случае, поскольку openSUSE 11.3 уже давно вышел из строя. По крайней мере, ему следует обновиться до11.4 Вечнозеленый, который получает как минимум обновления безопасности.
Что касается сборки пакетов, обычно хорошей идеей будет взглянуть на.spec-файлычтобы иметь некоторое представление о том, какие могут быть полезные configure
опции, исправления исходного кода и приемы сборки - в вашем случае вы, вероятно, захотите проверитьФайл netcdf .spec для openSUSE:Factory(или любой более старый дистрибутив).
решение2
В общем, под Linux, /usr
для программ, предоставляемых дистрибутивом и управляемых его менеджером пакетов (dpkg/apt, rpm/yum, emerge и т. д.), и /usr/local
для программ, устанавливаемых и управляемых вручную системным администратором. Программы под /usr
и /usr/local
устанавливаются для всех пользователей.
Если вы хотите установить программы для собственного использования, поместите их куда-нибудь в свой домашний каталог.
Я рекомендую использоватьСтоуилиXStowдля отслеживания программ, которые вы устанавливаете вручную. (Используйте один или другой вариант: они являются реализациями одной и той же концепции.) При установке программ вручную у вас есть выбор между двумя неудобными вариантами:
- Поместите все программы в один каталог. Тогда вам будет трудно их сортировать, выяснять, какие файлы принадлежат каким программам, удалять программы и т. д. С другой стороны, все программы просты в использовании: вам нужно всего лишь один раз обновить PATH и другие подобные настройки.
- Поместите каждую программу в свой собственный каталог. Тогда удаление будет таким же простым, как
rm -r
. Недостатком является то, что вам придется добавлять каждую программу в PATH и так далее.
Stow дает вам лучшее из обоих миров. Этот инструмент поддерживает символические ссылки из общего каталога в каталог для каждой программы. Вы устанавливаете каждую программу (из исходного кода или из бинарного пакета) в ее собственный каталог в stow
, а Stow создает символические ссылки в bin
, lib
, man
, …
Итак, создайте каталог programs/stow
в вашем домашнем каталоге. Установите netcdf с помощью
./configure --prefix=~/programs/stow/netcdf-gfortran-4.3
make
make install
Затем запустите stow netcdf-gfortran-4.3
из ~/programs/stow
каталога, чтобы создать символические ссылки для всех частей этого пакета.
Отредактируйте свои .profile
настройки (или те, где вы их разместили) для добавления ~/programs/bin
в путь поиска исполняемых файлов, ~/programs/lib
в путь поиска библиотек и т. д.
PATH="$HOME/programs/bin:$PATH"
if [ -n "$LD_LIBRARY_PATH" ]; then
export LD_LIBRARY_PATH="$HOME/programs/lib:$LD_LIBRARY_PATH"
else
export LD_LIBRARY_PATH="$HOME/programs/lib"
fi
if [ -z "$MANPATH" ]; then
MANPATH=$(manpath)
fi
export MANPATH="$HOME/programs/share/man:$HOME/programs/man:$MANPATH"
При компиляции программ передайте , --with-cppflags="-I $HOME/programs/include"
чтобы configure
она могла найти заголовки в области stow.
Для получения более подробной информации см.Отслеживание программиКакой эффективный метод установки актуального программного обеспечения на устаревшее производственное оборудование?