netcdf 설치 및 usr/local... 폴더

netcdf 설치 및 usr/local... 폴더

SuSE Linux 시스템에 netcdf를 설치해야 하는데 usr/local/ 폴더와 myusername/local/ 폴더를 이해하는 데 몇 가지 문제가 있습니다. 내가 해야 할 일은 압축되지 않은 netcdf 폴더로 가서 다음을 수행하는 것입니다.

./configure --prefix=/usr/local/netcdf-gfortran

그런데 이 폴더를 만들어야 겠죠? 왜 내 사용자 이름/로컬이 아닌 usr/local에 있습니까?

답변1

일반적인 콤보는 다음과 같습니다.

./configure --prefix=... [more options]
make
make install

루트 권한도 필요하므로 사용하고 싶지 않을 것입니다 /usr/local. 따라서 --prefix=$HOME또는 --prefix=$HOME/programs(또는 다른 것이 더 잘 작동하는 것)입니다.

추가 소프트웨어에 관해 시스템 관리자에게 문의하는 것이 좋습니다. openSUSE 11.3의 수명이 훨씬 지났으므로 시스템 관리자에게 문의해야 합니다. 최소한 그는 다음으로 업그레이드해야 합니다.11.4 에버그린, 최소한 보안 업데이트를 받습니다.

패키지 구축에 관해서는 일반적으로 다음을 살펴보는 것이 좋습니다..spec 파일유용한 옵션, 소스 코드 패치 및 구축 요령이 무엇인지 알아보기 위해 configure- 귀하의 경우에는 아마도 확인하고 싶을 것입니다.openSUSE:Factory용 netcdf .spec 파일(또는 이전 배포판).

답변2

일반적으로 Linux에서는 /usr배포판에서 제공하고 패키지 관리자(dpkg/apt, rpm/yum, 이머지 등)에서 관리하는 프로그램이고, /usr/local시스템 관리자가 수동으로 설치하고 관리하는 프로그램입니다. /usr및 아래의 프로그램 /usr/local은 모든 사용자를 위해 설치됩니다.

자신이 사용할 프로그램을 설치하려면 해당 프로그램을 홈 디렉터리 아래 어딘가에 두십시오.

나는 사용하는 것이 좋습니다집어 챙겨 넣다또는X스토우수동으로 설치한 프로그램을 추적합니다. (둘 중 하나를 사용하십시오. 동일한 개념을 구현한 것입니다.) 프로그램을 수동으로 설치할 때 불편한 두 가지 옵션 중에서 선택할 수 있습니다.

  • 모든 프로그램을 동일한 디렉토리에 넣으십시오. 그런 다음 파일을 정렬하고, 어떤 파일이 어떤 프로그램에 속하는지 파악하고, 프로그램을 제거하는 등의 작업에 어려움을 겪게 됩니다. 반면에 모든 프로그램은 사용하기 쉽습니다. PATH 및 기타 유사한 설정을 한 번만 업데이트하면 됩니다.
  • 각 프로그램을 자체 디렉토리에 넣으십시오. 그런 다음 제거는 rm -r. 단점은 각 프로그램을 PATH 등에 추가해야 한다는 것입니다.

Stow는 두 가지 장점을 모두 제공합니다. 이 도구는 공통 디렉터리에서 프로그램별 디렉터리로의 기호 링크를 유지 관리합니다. 각 프로그램(소스 또는 바이너리 패키지에서)을 아래의 자체 디렉터리에 설치하면 Stow는 , , , … stow에 기호 링크를 만듭니다.binlibman

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"

프로그램을 컴파일할 때 stow 영역에서 헤더를 찾을 수 있도록 --with-cppflags="-I $HOME/programs/include"에 전달하십시오.configure

자세한 내용은 다음을 참조하세요.프로그램 추적그리고오래된 생산 시스템에 최신 소프트웨어를 설치하는 효과적인 방법은 무엇입니까?

관련 정보