Estou tentando modificar /etc/init.d/jenkins
o script para adicionar meu caminho Java personalizado. Minhas soluções são estas:
JAVAPATH=$(type -p java)
PATH=/bin:/usr/bin:/sbin:/usr/sbin:$JAVAPATH
No entanto, quando inicio o serviço e examino os logs, vejo que a variável JAVAPATH está vazia. Por outro lado, se eu escrever, por exemplo:
PYPATH=$(type -p python)
PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PYPATH
Então a variável PATH incluirá o binário python perfeitamente.
Meu objetivo final é remover o nome do arquivo, apenas salvando dirname assim:
JAVAPATH=$(type -p java | xargs dirname)
Nos meus scripts e testes personalizados, tudo funciona bem, então presumo que haja algo com java que não conheço. Estou executando um Debian 10 e meu caminho java é/usr/lib/jvm/jdk-11.0.9/bin/java
Desde já, obrigado.
Cumprimentos
Responder1
type
é um shell integrado que procura um arquivo em cada diretório especificado em sua $PATH
variável.
No seu exemplo, não está mostrando nada porque não há java
binário em nenhum dos diretórios especificados no seu arquivo $PATH
.
Pelo contrário, python
está sendo encontrado porque está de fato em um de seus $PATH
diretórios (especificamente em /usr/bin
).
Não sei qual método de instalação do Java você usou, mas você pode tentar usar, /etc/alternatives/java
pois geralmente é configurado para apontar para o binário java padrão em seu sistema.
Outra opção não tão limpa é dpkg -L <java package name>
listar todos os arquivos fornecidos pelo seu jdk e filtrá-los para encontrar o binário que deseja usar:
$ JAVA_PATH=$(dpkg -L openjdk-11-jre-headless|fgrep bin/java)
$ echo $JAVA_PATH
/usr/lib/jvm/java-11-openjdk-amd64/bin/java