2010-11-22 7 views
1

지난 금요일, 나는 장고 프로젝트를위한 RPM 스펙을 만들었습니다. RPM은 virtualenv을 만들고 pip을 통해 종속성을 다운로드하고 모든 것을 패키지에 넣습니다. 오늘, BeautifulSoup 3.2가 출시 된 것을 알게되었습니다. 다행히도, 내 BeautifulSoup 버전을 requirements.txt에 고정 시켰기 때문에 빌드가 실패했기 때문에 알게되었습니다.각 업스트림 버전으로 업그레이드하지 않고 virtualenv 기반 배포 방법을 사용하려면 어떻게해야합니까?

완전히 다른 문제는 다음과 같습니다. 앞으로 어떻게 업그레이드하지 않으시겠습니까? BeautifulSoup은 이전 버전의 모든 PyPI를 삭제했기 때문에 실제로 테스트 한 버전을 다운로드 할 수 없습니다. pip의 다운로드 캐시는 여기에 도움이되지 않습니다. pip은 항상 PyPI를 먼저 확인하려고하기 때문에.

이 상황을 피하기 위해 권장 할만한 것이 있습니까?

답변

2

처음에는 비정상적인 상황입니다. BeautifulSoup가하는 것처럼 이전 패키지를 제거하는 다른 패키지를 본 적이 없습니다. 아마도 심각한 보안 수정이있는 경우를 제외하고는 사용자가 적대적인 행동이라고 생각합니다.

즉, pip를 사용하여 안정적인 빌드 프로세스를 원한다면 로컬로 의존하는 모든 패키지를 미러링해야합니다. 그것은하기가 어렵지 않습니다. pip의 --download 옵션 (또는 기존의 pip cache)을 사용하여 모든 패키지 타르볼을 가져온 다음 인덱싱 된 웹 서비스 디렉토리에 덤프하고 요구 사항 파일의 --find-links를 사용하여 pip를 지정할 수 있습니다. PyPI를 사용하지 말 것을 명령하는 --no-index). 문제

+0

지퍼를 주변에 유지하는 것처럼 "로컬 핏 빛"을 줄 가능성이 높습니다. 감사. –