GNU make를 4.1에서 3.81로 다운그레이드한 이후 make는 더 이상 작동하지 않습니다. 다운그레이드 방법은 다음과 같습니다.
- 로
/usr/bin
이름을 바꾼 후make
make-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/bin
make
./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
. 충분한 주의와 주의, 자원을 통해 이러한 방식으로 구축된 소프트웨어 저장소는 다음과 같이 발전할 수 있습니다.아폴로, 특정 사이트에 대한 소프트웨어 라이브러리의 이상적인 형태는 사이트의 크기, 공급업체가 제어하지 않는 소프트웨어를 얼마나 설치해야 하는지 등에 따라 달라질 수 있습니다.