Como o apt-get irá lidar com o software instalado manualmente?

2

Suponha que a versão do Emacs no repositório do APT seja 24.3, eu configure && make install meu próprio emacs 24.4. Após um longo período, o software no repositório do APT foi atualizado para 24.5. O que o APT faria quando eu corro apt-get update && atp-get safeupgrade ?

Qual é a maneira geral de permitir que o APT cuide do meu software instalado manualmente?

    
por Nick 25.11.2014 / 03:16

2 respostas

3

O Apt-get não possui um comando "safeupgrade". Você está pensando em "atualização segura de aptidão"?

Além disso, o apt-get só "sabe" as coisas, porque o sistema de pacotes mantém um banco de dados de todas as mudanças feitas pelos programas do subsistema de pacotes. Quando você faz o download do source, constrói você mesmo e depois o instala, isso não é feito usando o subsistema do pacote, então nenhuma dessas mudanças é registrada em qualquer lugar, então o apt-get simplesmente não pode saber sobre elas.

Se você nunca fez "apt-get install emacs" no seu computador, o subsistema de pacote nunca saberá que o emacs está instalado, então "apt-get upgrade" nunca irá tocá-lo e você estará seguro. Apenas os programas listados em "dpkg --list" serão processados pelo "apt-get upgrade".

Se você fez "apt-get install emacs", é uma história diferente.

Se você fosse esperto o suficiente para usar "./configure --prefix = / usr / local / bin" (e possivelmente alguns outros parâmetros especificando localizações), então os arquivos do seu emacs customizados estarão em locais diferentes do que " apt-get install emacs "carregado em seu sistema, e você terá duas instalações de trabalho do emacs. Então quando você faz o "apt-get upgrade" e há um pacote mais novo do emacs no repositório do que o apt-get colocado lá antes, ele substituirá isso e sua versão personalizada não será tocada.

Se você não usou as opções de configuração ao construir o emacs customizado, ele provavelmente as escreveu em cima, se os arquivos dos emacs empacotados. Mas isso realmente depende de quais opções o mantenedor de pacotes usou quando construiu o .deb para colocar no repositório, então é um pouco imprevisível. Em qualquer caso, qualquer coisa que tenha sido sobrescrita pela sua instalação personalizada será sobrescrita novamente quando você fizer o upgrade do apt-get. Após cada instalação, você terá apenas uma versão funcional do emacs com algumas chances e finalidades estranhas.

    
por 25.11.2014 / 04:39
1

O APT não sabe nada sobre o seu software instalado manualmente.

Se você instalou o Emacs em /usr/local (o local padrão), essa instalação é completamente independente da instalação do Emacs em /usr gerenciada pelo APT. A execução de emacs executará /usr/local/bin/emacs (sua instalação manual); executar o /usr/bin/emacs irá rodar o Emacs instalado pelo APT (mais especificamente, a versão mais recente - o pacote Emacs do Debian suporta a instalação de múltiplas versões).

Se você instalou o Emacs em /usr - bem, você criou uma bagunça, mas espero que não seja um grande problema. /usr é reservado para o gerenciador de pacotes, exceto /usr/local , que é para o administrador do sistema (o gerenciador de pacotes cria apenas alguns diretórios lá). Execute make uninstall do diretório de origem do Emacs para remover esses arquivos. Faça isso antes de reinstalar os pacotes Debian.

Se você quiser instalar o software manualmente (em /usr/local ), mas declará-lo ao gerenciador de pacotes para atender às dependências, você pode criar um pacote falso com equivs . Veja Como fazer com que o apt reconheça uma instalação instalada pacote tar?

O Debian automaticamente compila os pacotes Elisp para as versões instaladas do Emacs. Para se beneficiar disso, instale uma versão do Emacs através do gerenciador de pacotes, além da instalação manual. Certifique-se de escolher um com bytecode compatível ( uma versão secundária mais antiga com a mesma versão principal deve estar ok , por exemplo, uma instalação manual 24.3 deb e 24.4 manual). Faça com que a versão instalada manualmente leia os mesmos diretórios bytecode: carregue /usr/share/emacs/24.3/lisp/startup.elc da instalação local startup.el .

¹ Neste post, "Debian" inclui derivados que usam o mesmo pacote Emacs, incluindo Ubuntu, Mint, etc.

    
por 26.11.2014 / 01:29