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:공장의 netcdf .spec 파일(또는 이전 배포판).

답변2

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

자신이 사용할 프로그램을 설치하려면 해당 프로그램을 홈 디렉토리에 저장하세요.

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

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

Stowe는 두 가지 장점을 모두 제공합니다. 이 도구는 공용 디렉터리에서 각 프로그램 디렉터리로의 기호 링크를 유지 관리합니다. 각 프로그램(소스 또는 바이너리 패키지에서)을 자체 디렉토리에 설치하면 stowStow는 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

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

관련 정보