O problema é que muitos programas Unix não são relocáveis. Eles sempre procurarão por arquivos no caminho que você fornecer para configurar (não em relação ao seu próprio local). Se você quer que ele seja relocável, então ele pode ser instalado em qualquer diretório de usuários (ou em qualquer outro lugar) e ainda encontrar seus arquivos, onde não há outra maneira senão modificar o programa para se comportar dessa maneira.
Não há regras genéricas para criar tarballs geralmente distribuíveis, especialmente para programas feitos para serem instalados a partir da origem. A maioria das distribuições Unix possui algum tipo de sistema de pacotes especiais para distribuir binários. A melhor coisa é usar isso / aqueles. A maioria dos aplicativos comerciais que são enviados como binários em tarballs usam uma variável de ambiente para localizar seus arquivos e usar um script de shell de wrapper que define essa variável (procurando os arquivos relativos a seu próprio caminho, por exemplo). Então, novamente, você provavelmente terá que modificar o programa para se comportar dessa maneira.