2012-09-08 4 views
8

배경 : 데스크탑 컴퓨터에서 Silex를 사용하여 새 프로젝트를 설정하고 내 composer.json 파일을 나는 필요하다. 나는 아무 문제없이 데스크탑에서 "composer.phar install"을 성공적으로 실행했습니다.Composer가 "install"을 사용하지만 "update"를 사용하지 않는 설치 패키지 세트를 해결하지 못합니다.

나는, 좀 더 프로젝트에 대한 작업을 내 노트북으로 전환 노트북에 자식의 repo를 복제하고, "composer.phar 설치"하려고 노력하지만,이 메시지를받은 : 그래서

Your requirements could not be resolved to an installable set of packages. 

을 대신 "composer.phar 업데이트"를했는데 작동했지만 작곡가가 필요하지 않았습니다. 잠금 파일이 업데이트되었습니다.

다른 사람이이 문제가 있습니까? 그렇지 않다면 누군가 내가 뭘 잘못하고 있는지 설명해 주실 수 있습니까?

편집 : 나는 아마 이것으로 돌아와서 질문을 업데이트해야한다고 생각했다. 꽤 오랜 시간이 걸리지 않았습니다. 나는 그것을 고쳤던 작곡가에게 업데이트인지 (사람들이 여전히이 문제를 겪고 있는지 알려주기 위해 코멘트해야 할 수도 있음), 아니면 작곡가에 대해 더 많이 배웠을 지 모르겠다. 내가 이런 일을 겪지 않는 방식으로 일을한다. 어쨌든 composer.json의 패키지 사양이 실제로 손상되지 않은 한 거의 1 년 반 만에이 메시지를 보지 못했습니다. 당신은 메인테이너 최근 푸시을 강제했을있는 지점 (dev-master, dev-branch-name 또는 [email protected])를 기반으로하는 라이브러리를 사용하고 있는지

+2

프로젝트를 복제 할 때 공급 업체 폴더와 composer.lock 파일을 포함했는지 묻습니다. 보통 컴퓨터를 교체 할 때 공급 업체 폴더 나 .lock 파일이 커밋되지 않았으며 가장 먼저 할 일은 composer.phar를 실행하는 것입니다. – gunnx

+0

repo에 공급 업체 폴더가 없지만 잠금 파일이 포함됩니다. 프로젝트를 체크 아웃하고 종속성을 설치하는 모든 사람들이 같은 버전에 있다는 것입니다. – Moismyname

+0

해결 했습니까? –

답변

1

흠, 내 생각 엔이 될 것이다 (예를 들어 분기를 리베이스합니다).

안정적인 브랜치 (브랜치는 태그 (v1.0.0, 1.0. * 등)에 연결된 버전으로 브랜치를 사용하십시오.) 어디에서 봐야할지 모르면, 당신의 Packagist에 패키지 및 버전을 사용을 위해 이는 dev-에 의해 시작하거나 dev에 최소한의 안정성을 설정하는 @dev 수정을 사용합니다. 물론

, 그것은 때로는 피할 수있다. 그러나이 경우, 당신은 할 수 없습니다 :) 항상 라이브러리의 관리자에게 버전에 태그를달라고 요청하십시오. :)

두 번째 추측은 사용자 컴퓨터에 다른 라이브러리 버전이 있다는 것입니다. 예를 들어, symfony/icu 라이브러리를 가져 가십시오. 컴퓨터에있는 Icu의 버전에 따라 그리고 활성화 한 사실 또는 컴퓨터에 Intl 확장을 설치했는지 여부에 따라 이러한 문제가 발생할 수 있습니다. composer가 composer.lock을 이전 시스템과 비교하려고 시도하면 종속 패키지가 시스템에없는 종속성을 필요로하므로 종속성이 해결되지 않습니다. 간단한 수정 방법은 필요한 확장 프로그램을 설치하는 것입니다.

+0

이 문제가 생겨서 꽤 오랜 시간이 걸렸습니다. 저는 작곡가를 많이 사용하면서 어렸습니다. 나는 이것이 아마도 정확한 경우라고 생각하고있다.솔직히 말해 태그가 붙은 버전을 사용하기 시작한 이래로 나는이 문제가 없었습니다. Composer가 잠금 파일을 통해이를 관리해야한다는 것을 알고 있지만 와일드 카드 버전 사양 (예 : "1. *"또는 "1.1. *")을 사용하더라도 진짜 태그 버전으로 훨씬 더 많은 성공을 거두었습니다. 대답 한 모두에게 감사드립니다. – Moismyname