Normalmente, o software será instalado em /, ou / usr ou / usr / local. Isso é chamado de "prefixo". / normalmente é reservado para os programas mais críticos do sistema operacional. / usr / é reservado para uso pelos gerenciadores de pacotes. Portanto, quando você escreve software, é mais educado configurá-lo para que o prefixo seja / usr / local. Então isso pode ser substituído quando alguém o empacota para uma distribuição.
Observe que não estou falando especificamente sobre "lib". Existem vários subdiretórios comuns sob o prefixo, sendo lib apenas um deles. "bin" é usado para executáveis, "share" para arquivos de dados, "lib" para bibliotecas compartilhadas e assim por diante. Então, se o seu programa é uma biblioteca, você pode instalá-lo por padrão em / usr / local / lib. Se for um programa normal, você pode instalá-lo em / usr / local / bin com seus arquivos de dados em / usr / local / share. O importante é que você faça com que o prefixo seja selecionável em tempo de compilação. Alguns podem preferir instalar em / usr em vez de / usr / local ou vice-versa.