오래된 생산 기계에 최신 소프트웨어를 설치하는 효율적인 방법은 무엇입니까?

오래된 생산 기계에 최신 소프트웨어를 설치하는 효율적인 방법은 무엇입니까?

우리 회사에서는 숫자 처리(더 구체적으로 유한 요소 계산)를 위해 오래된 작은 클러스터(CentOS 5.4)를 사용합니다. 그들은 상용 패키지를 사용하고 있으며 Linux에 대한 지식이 없습니다. 그들은 기계가 실행되는 동안 기계의 어떤 것도 변경하고 싶어하지 않습니다. 이것이 시간 절약 전략이라고 생각합니다. 그래요아니요행정권을 가지고 있습니다.

더 작은 패키지를 설치하도록 할 수는 있었지만 Python 버전을 2.4에서 2.6+으로 변경할 수 없었기 때문에 현재 버전( ./configure --prefix=/home/mysuser/root2)을 컴파일하기로 결정했고 일부 종속성 문제(예: 잘못된 버전의 readline, zlib, 저주)가 발생했습니다. , bz2...또는 패키지를 찾을 수 없음). GMP, MPFR및 가 누락되었다고 불평하는 gcc도 업데이트해야 합니다 MPC.

그 이유는 이 컴퓨터에서 실행될 다른 테스트 소프트웨어를 컴파일하고 싶기 때문입니다. 사용해야 하는 소프트웨어를 컴파일하기 위해 필요한 패키지를 효율적으로 설치하려면 어떻게 해야 합니까? 다른데서 사용해요아키텍처Linux그리고 다음과 같은 방식으로 뭔가를 할 수 있다는 것이 매우 편리하다는 것을 알게 될 것입니다.

pacman --root /home/myuser/root2 -S <package>

하지만 이것이 가능한지 현명한지는 모르겠습니다.

기타 SE 관련 질문:젠투 접두사그리고패키지 소스그리 쉬운 일은 아닌 것 같습니다(제가 틀렸을 수도 있습니다).

답변1

경영진은 독점 소프트웨어 패키지를 기반으로 중요한 기능을 수행하는 작업자 클러스터를 업그레이드하지 않는 것이 현명합니다.

패키지 백포트는 시간이 많이 걸리고 위험합니다. 즉, 항상 가능한 것은 아닙니다. 원래 CentOS 5.4 저장소 또는 일부 CentOS 5.4 백포트 저장소에서 설치하려는 패키지를 찾을 수 있으면 이러한 시간 손실을 피할 수 있습니다. 단일 호스트 시스템에 동시에 여러 버전의 GCC를 갖는 것이 가능하지만(임베디드 시스템/크로스 컴파일러 사람들은 항상 이 작업을 수행함) 단일 런타임 환경에 여러 glibc를 갖는 것은 사소한 문제가 아닙니다.

따라서 필요한 패키지가 포함된 별도의 최신 환경에서 작업하고 새 환경에서 이전 환경의 출력을 테스트할 수 있는 방법을 찾는 것이 가장 좋습니다. 어쨌든, 이전 환경에서 어떤 것도 깨뜨릴 위험을 감수하지 마십시오. 그렇지 않으면 다음 직업을 얻으려면 stackexchange.com 평판 포인트가 모두 필요할 수 있습니다 ;-)

답변2

루트 권한이 없으면 배포판에서 패키지를 설치하는 것이 어려운 경우가 많습니다. 왜냐하면 루트 권한이 없으면 종속 시스템에 루트가 아닌 소프트웨어 패키지를 설치할 수 없는 setuid 또는 setgid 프로그램이 포함된 일부 패키지가 필요한 경우가 있기 때문입니다.

일반적으로 소스에서 컴파일하는 것이 가장 쉬운 방법입니다. (속도를 중시한다면 특정 프로세서 모델에 가장 적합한 컴파일 옵션을 선택할 수 있습니다.)

컴파일된 패키지를 구성하려면(또는 tarball을 추출하여 설치하려면) 다음을 사용하는 것이 좋습니다.가게또는 더 강력하지만 더 복잡합니다.닫다. 기본 작동 모드는 각 패키지를 별도의 디렉토리에 설치한 다음 심볼릭 링크를 만들어 모두 하나로 모으는 것입니다. 이것은 stow를 사용한 일반적인 컴파일 및 설치 세션입니다.

tar xzf foobar-42.tar.gz
cd foobar-42
./configure --prefix=~/software/stow/foobar-42
make
make install
cd ~/software/stow
stow foobar-42

마지막 명령은 아래 파일과 디렉터리에서 심볼릭 ~/software/stow링크를 만듭니다 ~/software. 예를 들어 디렉터리와 파일을 ~/software/stow/foobar-42포함 하면 결국 심볼릭 링크가 생성됩니다.lib/foobarbin/foobarman/man1/foobar.1

~/software/bin/foobar -> ../stow/foobar-42/bin/foobar
~/software/lib/foobar -> ../stow/foobar-42/lib/foobar
~/software/man/man1/foobar.1 -> ../../stow/foobar-42/man/man1/foobar.1

프로그램을 제거하려면 stow -D foobar-42해당 디렉터리에서 실행한 ~/software/stow다음 을 삭제하세요 ~/software/stow/foobar-42. 프로그램을 일시적으로 사용할 수 없도록 하려면(예: 다른 버전 시도) 해당 stow -D섹션을 실행하세요.

당신은 또한 볼 수 있습니다루트가 아닌 패키지 관리자;Ubuntu 10.04에서 vim/gvim을 7.3으로 업그레이드하는 가장 좋은 방법은 무엇입니까?

관련 정보