Já experimentou checkinstall (está no repositório Debian)?
Em vez de usar make install
, você pode usar checkinstall
e criará (e instalará) um pacote com o software para que você possa rastreá-lo usando o gerenciador de pacotes.
Estou compilando e instalando software no Linux (Debian Squeeze no meu caso). Fazendo o download, descompactando, instalando bibliotecas / cabeçalhos dependentes do desenvolvedor, executando configure e make.
Até este ponto, tudo permanece no diretório de origem. Uma vez que eu corro make install
, basicamente eu começo a ter arquivos não-pacote espalhados em /usr/local
ou /usr
(depende da opção --path
).
Eu também tentei instalá-lo em um lugar diferente, por exemplo /opt
, mas isso geralmente causa problemas em algum lugar. Ou seja Eu sempre lembro de adicionar especificamente isso ao caminho do cabeçalho / linker. Ou eu instalo um pacote lá e o sistema pkg-config
não sabe disso (eu precisaria adicionar bandeiras extras novamente). E mesmo se eu quiser instalar todos os softwares personalizados em /opt
, eu não saberia quais desses arquivos em bin/
, etc lib/
etc. pertencem um ao outro. Se eu começar a instalá-los em /opt/software1/
, o problema de manutenção apenas se multiplica e tenho que controlar ainda mais os caminhos que preciso adicionar para compilar outros pacotes ou precisar deles no caminho da biblioteca LD, etc.
Mas quando eu instalo o software diretamente dentro de /usr
eu tenho um mau pressentimento, não sendo mais capaz de dizer qual dos meus arquivos de instalação personalizados pertence aonde. É fácil determinar se um determinado arquivo pertence a um pacote, mas, se não o fizer, em uma grande instalação personalizada, é difícil lembrar ou descobrir onde um arquivo pertence.
Isso fica pior quando eu quero remover arquivos. Eles estão espalhados em bin/
, lib/
, man/
, etc. Então, se eu quiser remover completamente um pacote personalizado instalado, tenho que realizar o trabalho manual ou, no pior dos casos, não posso mais determinar todos eles e eu vou deixar arquivos obsoletos ao redor.
Eu sei que também posso começar a criar um pacote personalizado a partir dele. Mas isso exigiria que eu analisasse todos os softwares que eu instalo de antemão? Não tenho experiência real com a criação de arquivos .deb
e também não pretendo distribuí-los para outras instalações. Tudo que eu quero é uma boa maneira de acompanhar as instalações locais personalizadas.
Eu provavelmente poderia criar algo por conta própria, ou seja, criar uma lista de todos os arquivos ( find / ...
), instalar o software e, em seguida, fazer isso novamente e salvar o diff em algum lugar. Basta saber se pode haver uma maneira melhor.
Já experimentou checkinstall (está no repositório Debian)?
Em vez de usar make install
, você pode usar checkinstall
e criará (e instalará) um pacote com o software para que você possa rastreá-lo usando o gerenciador de pacotes.
Desde que você pediu as melhores práticas: A melhor é não instalar o software, não nos repositórios. Se isso não for possível, a melhor prática é criar pacotes a partir dele e usar o gerenciador de pacotes de sistemas para gerenciá-los.
Você precisará encontrar uma maneira de verificar atualizações importantes, mas a maneira como você faz isso depende de você. Mas se eles estiverem lá, você precisará construir novamente e atualizar a partir dos novos pacotes.
Eu não sei se você vai achar isso útil no passado, mas eu vou compartilhá-lo pelo menos: «… A Coleção de Pacotes do NetBSD (pkgsrc) é uma estrutura para construir softwares de terceiros no NetBSD e outros sistemas semelhantes ao UNIX …»