Isso depende, na verdade. Se o aplicativo tiver um makefile, (para aplicativos python) usar distutils (possui um arquivo setup.py ) ou um sistema semelhante de compilação / instalação, coloque-o em /usr/local/ (comportamento padrão).
Se você precisar extrair um tarball e executá-lo diretamente (por exemplo, Thunderbird, Firefox), coloque-o em /opt/ .
Por quê? Pelo que entendi, /usr/local/ tem uma hierarquia semelhante a /usr/ . Portanto, um programa que espera ser "instalado" em /usr/ deve funcionar bem em /usr/local/ . Um programa que apenas precisa de um diretório e obterá todos os arquivos / bibliotecas relativos a esse diretório pode obter um diretório para si mesmo em /opt/ .