Normalmente, o seu 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 / está reservado para uso dos gerenciadores de pacotes. Portanto, quando você escreve um software, é muito educado configurá-lo para que o prefixo seja / usr / local. Isso pode ser substituído quando alguém o empacota para uma distribuição.
Observe que não estou falando especificamente de "lib". Existem vários subdiretórios comuns sob o prefixo, lib sendo apenas um deles. "bin" é usado para executáveis, "share" para arquivos de dados, "lib" para bibliotecas compartilhadas e assim por diante. Portanto, se o seu programa for uma biblioteca, você poderá 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.