(1.) Is there a way to add EVERYTHING I have read/execute permission into my path? Sub-question, is this a bad idea?
... é uma má ideia por motivos de segurança.
(2.) Does whereis only search my path? Is there some equivalent for finding files/directories I need without having to search the ENTIRE host and getting access-denied for every other directory?
Você poderia usar o locate (ou glocate disponível no findutils do OpenCSW ) com a opção -r, que permite usar expressões: glocate -r /gcj$
(3.) Is there a way I can know for sure if a library/binary is definitely not available vs. just not in my path?
O glocate pode lhe dizer isso, assumindo que gupdatedb
foi executado recentemente.
(4.) Is there a way to tell, specifically for gcc if gcj is available?
A melhor maneira de fazer isso é verificar os pacotes instalados. A lista de arquivos instalados está em /var/sadm/install/contents
.
(5.) Can I compile gcj to my user directory without having to compile all of gcc with it?
Não tentei, mas você ainda precisaria passar por muitos problemas. Provavelmente é melhor pegar um binário gcj já disponível. Se você tiver que compilar você mesmo, então é melhor usar as descrições de compilação existentes, como este .
(6.) Is there a (universal) way, when building a binary, to flag the compile or make file to deal with any dependencies as it finds them rather than simply failing?
Eu presumo que você esteja pensando em algo como o emerge do Gentoo, que baixa e instala os pacotes dependentes antes de compilar o que você queria. Não é feito facilmente; especialmente se você compilar tudo como um usuário comum, porque você precisa usar um ambiente chroot. É uma boa ideia, mas não é trivial.
(7.) Does a typical user on a shared-host situation have the ability to use the OS package library to get packages at the user-level?
O que você quer dizer com receber pacotes ? Se o que você quer é extrair o conteúdo de um arquivo .pkg, você pode usar o comando pkgtrans, assim: pkgtrans foo.pkg ./ all
No entanto, há também a possibilidade de fazer algo como pbuilder que cria um ambiente chroot, no qual você faz sua compilação, bem como instalações de pacotes, tudo no diretório inicial.
Voltando à pergunta gcj, eu acho que você precisa especificar as dependências de tempo de compilação do seu makefile e depender de um pacote que contenha gcj, em um caminho conhecido, e então você pode usar esse caminho na sua descrição de compilação. p>
Geralmente, se você está em uma hospedagem compartilhada, a compilação de pacotes será um problema, é muito melhor encontrar um sistema quando você pode instalar e remover pacotes, e escrever para / usr.
Também é uma boa idéia usar algum tipo de estrutura de compilação, como GAR , que faz as coisas certas e remove muitas de aborrecimentos: verifica as dependências de tempo de compilação, tarballs de downloads, checksums verificados, extrações, aplica patches se houver, configura, constrói, instala e faz um pacote, e você pode especificar tudo em um único Makefile. Aprender a usar essa estrutura requer um pouco de tempo, mas se você mesmo tende a criar pacotes, o tempo gasto em aprendizado será compensado rapidamente.