Переменные среды, мешающие банке - PullRequest
0 голосов
/ 07 февраля 2011

У меня есть файл jar, который работает на многих машинах. Однако мы просто попросили нового пользователя Unix установить его, и он не ведет себя так же ... интересно, может ли это быть что-то связанное с какой-то env. вар.

Основная идея:

WorkingUser@box$ java -jar install.jar -h
[output help instructions]

но потом

NewUser@box$ java -jar install.jar -h
The java class is not found:  pkg1.pkg2.pkg3.Loader

Прежде чем кто-либо спросит, не нужен classpath и да, cksum для фляги в порядке. на самом деле:

$ jar tf install.jar
META-INF/
META-INF/MANIFEST.MF
pkg1/
pkg1/pkg2/
pkg1/pkg2/pkg3/
pkg1/pkg2/pkg3/script/
pkg1/pkg2/pkg3/Loader.class
pkg1/pkg2/pkg3/LoaderHelper.class
package.jar

И вы можете понять, что MANIFEST.MF - это хорошо, так как он работает с другими пользователями.

Я пытался выполнить с -cp install.jar безуспешно. Также $CLASSPATH для работающих и не работающих пользователей содержит только ".".

какие-нибудь подсказки?

спасибо,

е.

1 Ответ

0 голосов
/ 14 февраля 2011

Я копирую ответ от davey в serverfault, чтобы закрыть это. следующим образом.

Попробуйте скопировать файл в / tmp или / var / tmp и запустить установку оттуда. Достигается ли это дальше / успешнее?

[EDIT]

Это было довольно близко к реальной проблеме. В итоге я выполнил аналогичный тест, который сработал и который при некотором тестировании привел меня к обнаружению, что разрешения точка монтирования были неправильными, т.е. папка, в которой смонтирован пользовательский fs, принадлежит root и имел доступ 774 (без exec к другим ).

Меня всегда удивляет, как неправильные разрешения на низком уровне вызывают самые неблагоприятные последствия для верхних уровней. У меня было (и я все еще не совсем уверен в этом), что разрешения точки монтирования влияли на смонтированный fs ...

В любом случае, мы дали ему разрешение exec и voilá , java находит его классы. Есть еще проблемы со всей этой установкой, но они могут перейти к другим вопросам:)

Спасибо всем.

...