Установка netcdf и папки usr/local...

Установка netcdf и папки usr/local...

Мне нужно установить 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.

Для получения более подробной информации см.Отслеживание программиКакой эффективный метод установки актуального программного обеспечения на устаревшее производственное оборудование?

Связанный контент