다운그레이드된 GNU make가 작동하지 않습니다.

다운그레이드된 GNU make가 작동하지 않습니다.

GNU make를 4.1에서 3.81로 다운그레이드한 이후 make는 더 이상 작동하지 않습니다. 다운그레이드 방법은 다음과 같습니다.

  • /usr/bin이름을 바꾼 후makemake-4.1
  • gnu.org에서 make 3.81을 다운로드하세요.
  • make-3.81.tar.bz2다음 으로 추출/usr/bin
  • make-3.81로 이름이 변경되었습니다 make.

이제 실행하면 존재하지 않는 것처럼 보입니다. GNU make 3.81을 작동시키려면 어떻게 해야 합니까?

답변1

첫째, 공급업체 공간(여기서는 /usr/bin디렉터리)을 깨는 것은 나쁜 생각입니다. 다른 공급업체 패키지는 make사용 가능한 4.1에 따라 달라질 수 있거나 공급업체 업데이트가 make공급업체 공간에 대한 수동 변경으로 인해 충돌하거나 중단될 수 있거나 변경 사항을 취소할 수도 있기 때문입니다. 더 나은 옵션은 버전을 다른 곳에 설치하는 것입니다 make. 예를 들어 /usr/local/bin*BSD 시스템에서는 이 영역이 패키지에서 사용되므로 공급업체의 문서를 확인하여 해당 버전을 어디에 배치해야 하는지 확인한 다음 자신의 소프트웨어 저장소를 만들 때 다른 위치를 선택하십시오. /opt또는 환경에 적합한 가상의 이름 등입니다 . 물론 이는 해당 소프트웨어 저장소(특히 보안 업데이트)에서 소프트웨어를 업데이트할 책임이 귀하에게 있음을 의미하며, 소프트웨어 및 사이트에 따라 이러한 단점은 무시할 수 있거나 매우 심각할 수 있습니다.

컴파일 단계는 /usr/local다음과 같이 실행됩니다(사용자 정의 라이브러리 경로 사용).

tar xjf make-3.81.tar.bz2
cd make-3.81
./configure --prefix=/usr/local && make && make install

이전 버전이 필요한 모든 애플리케이션은 make디렉토리 앞에(또는 현재 일부 Linux에서도) 나열되도록 환경 변수를 설정해야 합니다 PATH./usr/local/bin/usr/bin/bin

env PATH=/usr/local/bin:$PATH yoursoftwarethatneedsmake3.81 ...

또는 쉘 rc나 웹 서버 또는 기타 구성에서 수동으로 수행할 수 있습니다. 애플리케이션에 이전 버전이 필요하지만 make다른 소프트웨어에 의해 차단되는 추가 콘텐츠가 필요한 경우 문제가 될 수 있습니다. 이를 방지하려면 버전 디렉터리에 설치하세요./usr/bin/usr/local/binmake

./configure --prefix=/opt/`uname -m`/make-3.81

그런 다음 애플리케이션은 /opt/x86_64/make-3.81/bin먼저 해당 애플리케이션에서 실행 되어야 합니다(Linux에서 amd64 가정) PATH. 또는 하나의 아키텍처만 실행하는 경우 경로를 로 단순화하거나 단일 트리에서 여러 운영 체제를 지원 /opt/make-3.81하도록 더 복잡하게 만들 수 있습니다 . /opt/centos7/x86_64/make-3.81추가 기능이 이런 식으로 설치되면 다음과 같습니다.집어 챙겨 넣다지루 하지 않고 버전이 지정된 설치를 관리하는 데 도움이 될 수 있습니다 PATH. 충분한 주의와 주의, 자원을 통해 이러한 방식으로 구축된 소프트웨어 저장소는 다음과 같이 발전할 수 있습니다.아폴로, 특정 사이트에 대한 소프트웨어 라이브러리의 이상적인 형태는 사이트의 크기, 공급업체가 제어하지 않는 소프트웨어를 얼마나 설치해야 하는지 등에 따라 달라질 수 있습니다.

관련 정보