깨진 패키지를 수리하는 적성을 피하는 방법은 무엇입니까?

깨진 패키지를 수리하는 적성을 피하는 방법은 무엇입니까?

나는 다음과 같이 설치된 내 서버의 응용 프로그램 중 하나를 실행하는 데 필요한 Rubygems 버전을 사용하고 있습니다.

dpkg --install /tmp/rubygems1.8_1.3.7-2_all.deb

사용할 때마다 aptitude는 이전 버전의 rubygems(리포지토리에 저장되어 있음)로 롤백하려고 합니다.

이 문제를 무시하는 적성을 어떻게 알 수 있습니까?

서버(Ubutun 10.04)를 사용하고 있으므로 명령줄 솔루션을 원하므로 다음과 중복되지 않습니다.손상된 패키지를 무시하도록 적성에게 지시

답변1

apt 외부에 필요한 gem 버전을 설치하기만 하면 됩니다. 이것은 실제로더 나은또한 배포용으로 사용되는 것(다운로드하는 저장소에 내장된 것) /usr/local/bin이 아니라 (당신이 설치한 것) 에 있을 것이기 때문입니다 . /usr/bin이 경우 배포판은 분명히 귀하의 gem 버전을 거부하려고 합니다.

게다가 귀하의 Ruby Gems 버전과 함께 설치된 것들은 아마도 다음 디렉토리의 더 높은 곳에 있는 다른 디렉토리에 있을 것입니다.포함 경로/usr/local/share보다는 좋아요 /usr/lib. 이는 물건을 설치할 때 설치하는 /usr/local/bin/gem물건을 방해하지 않는 특별한 장소로 이동한다는 의미입니다 /usr/bin/gem.

답변2

나는 를 사용하여 패키지를 보관합니다 aptitude hold <package>. 롤백 방지에도 효과가 있는지는 확실하지 않지만 시도해 볼 가치가 있습니다.

dpkg를 사용할 수도 있습니다. echo “<package> hold” | dpkg --set-selections

참조

답변3

내가 당신이라면 종속성이 깨지지 않도록 패키지를 다시 컴파일(수정)할 것입니다.

dpkg/apt에게 충족되지 않거나 깨진 종속성에 만족하도록 지시할 수 있는 적절한 방법이 없다고 생각하기 때문입니다. 기본적으로 그것이 바로 그들이 만들어진 이유이기 때문입니다.

답변4

당신이 사용할 수있는equivs누락된 패키지를 제공하는 더미 패키지를 생성합니다.

물론 이것은 설치된 패키지 간에 충돌이 없는 경우에만 작동합니다.

관련 정보