IDEA가 성공적으로 설치되었는지 확인하기 위해 가상 머신에서 CLI를 사용하는 방법은 무엇입니까?

IDEA가 성공적으로 설치되었는지 확인하기 위해 가상 머신에서 CLI를 사용하는 방법은 무엇입니까?

나는IntelliJ IDEA 설치를 위한 타사 Puppet 모듈, 설치가 유효한지 자동으로 확인하고 싶습니다.현재 솔루션라이센스가 없어 실패했습니다:

$ make test
[...]
/usr/bin/vagrant ssh --command '/opt/idea/bin/inspect.sh "/home/user/dev/root" ~/.IntelliJIdea14/config/inspection/Default.xml /tmp -d "/home/user/dev/root/test/module"'
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=350m; support was removed in 8.0
Sep 14, 2015 1:40:43 AM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
Sep 14, 2015 1:40:43 AM java.util.prefs.FileSystemPreferences$6 run
WARNING: Prefs file removed in background /home/vagrant/.java/.userPrefs/prefs.xml
[   1380]  ERROR - nse.impl.GeneralLicenseManager - No valid license found 
java.lang.Throwable
        at com.intellij.openapi.diagnostic.Logger.error(Logger.java:115)
        at com.intellij.ide.a.g.cb.a(cb.java:107)
        at com.intellij.idea.MainImpl$1.start(MainImpl.java:43)
        at com.intellij.idea.StartupUtil.prepareAndStart(StartupUtil.java:117)
        at com.intellij.idea.MainImpl.start(MainImpl.java:38)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.intellij.ide.plugins.PluginManager$2.run(PluginManager.java:91)
        at java.lang.Thread.run(Thread.java:745)
[   1389]  ERROR - nse.impl.GeneralLicenseManager - IntelliJ IDEA 14.1.4  Build #IU-141.1532.4 
[   1389]  ERROR - nse.impl.GeneralLicenseManager - JDK: 1.8.0_60 
[   1389]  ERROR - nse.impl.GeneralLicenseManager - VM: OpenJDK 64-Bit Server VM 
[   1390]  ERROR - nse.impl.GeneralLicenseManager - Vendor: Oracle Corporation 
[   1390]  ERROR - nse.impl.GeneralLicenseManager - OS: Linux 
Connection to 127.0.0.1 closed.
Makefile:198: recipe for target 'test-integrated-development-environment' failed
make: *** [test-integrated-development-environment] Error 255

분명히 내 라이센스 파일을 저장소에 넣을 수 없습니다. 따라서 옵션은 다음과 같습니다.

  1. 커뮤니티 라이센스 파일을 생성하여 저장소에 포함하고, 파일이 아직 없는 경우에만 라이센스 파일 위치에 기록합니다. 그게 얼마나 해키적인지 잘 모르겠습니다.
  2. 위와 동일한 조건에서 커뮤니티 라이센스 파일을 동적으로 생성합니다. 이것이 가능한지 모르겠습니다.
  3. 실행 중인 X 서버나 라이센스가 필요하지 않은 완전히 다른 명령을 실행합니다.

이것해결책이제 그냥/opt/idea/bin/inspect.sh존재하는지 확인, 제 생각에는 좋은 지표가 아닙니다.

사용 가능한 라이센스 파일이 없으면 커뮤니티 버전을 설치하는 등의 작업을 수행하고 싶지 않습니다. 실제로 설치하고 싶은 패키지의 설치를 확인하고 싶습니다.

답변1

첫 번째 아이디어가 아마도 가장 좋은 아이디어일 것입니다. 인형은속성file내장 유형 의 경우 다음과 같이 하십시오.

file { "idea-license":
    source => "puppet:///.../community-license",
    replace => false,
}

라이선스 파일이 아직 존재하지 않으면 커뮤니티 라이선스가 설치되지만, 존재하는 경우에는 건드리지 않습니다.

관련 정보