2010-04-05 2 views
3

나는 이클립스 3.5.2를 사용하고 있는데 나는 다음과 같은 정보가 p2.inf 만들었습니다P2 Touchpoint chmod가 작동하지 않습니까?

instructions.install = \ 
chmod(targetDir:@artifact,targetFile:$os$/libfoo.so,permissions:755); 

instructions.install.import= \ 
org.eclipse.equinox.p2.touchpoint.natives.chmod 

내가 조각의 META-INF 폴더 안에 p2.inf을 배치하지만 때를 업데이트 사이트를 설치하면 libfoo.so에 실행 권한이 없습니다.

내 머리카락을 꺼낸 후, 존재하지 않는 * .so를 참조하는 p2.inf를 시도했지만 아무 것도 일어나지 않는 것 같습니다. P2 터치 포인트 액션이 실패했다는 것을 나타내는 어떤 종류의 오류 메시지, 예외 또는 경고도 없습니다 ...

무슨 거래인가요? 어떤 아이디어?

답변

1

은 몇 가지 내가주의 사항 :

  1. @artifact을 지원하는 것처럼 "touchpoint.natives.chmod"조치가 보이지 않는다. 대신 org.eclipse.equinox.p2.touchpoint.eclipse.chmod을 사용해보세요.
  2. os은 설치시 교체되는 매개 변수로 보이지 않습니다. 또한 p2 소스 코드에서 "os"가 매개 변수 인 경우 구문이 실제로 ${os} 인 것으로 보입니다. wiki에 언급 된 $version$과`$ 한정자 $ '매개 변수 메타 데이터 생성/출판시에 대체되는 것을

주 (ParameterizedProvisioningAction # processVariables 참조),하지에 시간을 설치합니다.

+0

설명서에 org.eclipse.equinox.p2.touchpoint.eclipse.chmod가 없습니다 ...? – Michael

+0

불행히도 위 제안 중 아무 것도 해결되지 않았습니다 ... – Michael

2

Eclipse 3.6 (이전 버전에 대해 알지 못함)에서 @artifact 대신 사용할 변수는 $ {artifact.location}입니다. 그것을 찾으려면 p2 소스 코드를 파고야만했지만 targetDir 매개 변수에서 사용하면 매력처럼 작동합니다.

3

가져 오기 라인은 org.eclipse.equinox.p2.touchpoint.eclipse.chmod (즉 아니라 이상의 원주민 ECLIPSE) org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.ChmodAction

// This basically a copy of the chmod action in the native touchpoint, 
// only it provides @artifact support. 

에서 다음 주석에 따르면,

I 천국 (비교를 들어, 'natives' chmod action 참조)해야한다 'os'와 같은 변수를 보간하는 것에 대한 지원을 확인하지 않았습니다.

+0

이 질문은 1 년 전입니다. 방금 찾은 답변을 추가했습니다. :) –

+0

좋습니다! 1 년 후에 나는 그것을 찾아야했습니다! – giZm0