Prática recomendada para rastrear instalações de software personalizadas no Linux em / usr?

5

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.

    
por mark 30.04.2012 / 09:05

3 respostas

4

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.

    
por 30.04.2012 / 10:13
4

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.

    
por 30.04.2012 / 09:13
1

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 …»

    
por 30.04.2012 / 09:14