Eu usei o código fonte para criar um pacote, como abaixo:
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib --with-package-name="Myplugin" --with-package-origin="http://www.ubuntu.org/" --enable-gtk-doc --disable-static
make
make install
Mas, infelizmente, descobri que é a versão mais recente e tem muitos bugs, por isso preciso removê-lo / desinstalá-lo. Mas como posso fazer isso? Eu tentei, make clean; make uninstall
mas ainda vejo que existe:
# pkg-config --list-all | grep Myplugin
myplugin-....
$ ls /usr/lib/myplugin/libXYZ.so
exist....
Como você remove isso agora?
fonte
checkinstall
- ele evapora todo esse problema.make install
foi executado como root (por exemplo,sudo make install
), o que geralmente ocorre, é sempre virtual executarsudo make uninstall
para remover o software.make install
, ainda pode usá-locheckinstall
. Normalmentecheckinstall
, substituirá tudo o que foimake install
criado. Depois disso basta usardpkg -r <package.deb>
, e tudo deve ser removido.Eu não acho que isso seja um bug, seria uma boa idéia ler e aprender a usar o checkinstall ao instalar a partir do código-fonte.
você pode instalar o checkinstall a partir dos repositórios, uma breve descrição do pacote;
O CheckInstall rastreia todos os arquivos criados ou modificados pelo seu script de instalação ("make install" "make install_modules", "setup" etc.), cria um pacote binário padrão e o instala no seu sistema, permitindo desinstalá-lo com utilitários de gerenciamento de pacotes padrão da sua distribuição.
Esses links abaixo podem ser úteis para entender melhor. http://en.wikipedia.org/wiki/CheckInstall
http://checkinstall.izto.org/
fonte
Isso não é um erro - compilar a partir da fonte é um método não suportado de instalação de software que ignora completamente o sistema de gerenciamento de pacotes (que é usado pelo Centro de Software).
Não existe uma maneira padrão de instalar ou desinstalar o software compilado a partir do código-fonte; portanto, o Ubuntu não pode saber o que fazer. O software nem está listado como um programa instalado.
Você deve seguir as instruções do distribuidor para instalação e remoção desse software personalizado. Você também pode entrar em contato com o desenvolvedor para solicitar que ele crie um pacote Debian para que o sistema de gerenciamento de pacotes possa ser usado.
fonte
Não é um bug, é o que acontece quando os desenvolvedores recorrem à distribuição via fonte e não pelos métodos de empacotamento nativos.
Você pode fazer com que seus arquivos de origem se tornem pacotes debian usando checkinstall ou dhbuild. Honestamente, na minha opinião - novos usuários devem evitar a instalação a partir do código-fonte e os desenvolvedores devem evitar a distribuição somente pelo código-fonte.
fonte
Conheço alguns pacotes que suportam "make uninstall", mas muitos outros que suportam make install DESTDIR = xxx "para instalações em etapas.
Você pode usar isso para criar um pacote que você instala em vez de instalar diretamente da fonte. Não tive sorte com o checkinstall, mas o fpm funciona muito bem.
Isso também pode ajudá-lo a remover um pacote instalado anteriormente usando o make install . Você simplesmente força a instalação do seu pacote construído sobre o make instalado e o desinstala.
Por exemplo, usei isso recentemente para lidar com o protobuf-3.3.0. No RHEL7:
Prefira yum a rpm, se puder.
No Debian9:
Prefira o apt ao dpkg onde puder.
Também publiquei esta resposta no stackoverflow
fonte
Precisamos negociar o fato de que fazer desinstalação se não sempre funciona, assim abaixo é mais de uma solução pró-ativa.
Isso envolve o uso do programa paco, que está disponível no Ubuntu Software Center. Depois de instalar o paco, podemos usá-lo no modo de log quando "instalamos" um programa. O Paco atua como um wrapper para o seu "make install" e cria um log no diretório / var / log / paco com a lista de arquivos copiados para vários diretórios. Além disso, você pode ver os arquivos no front end do Paco.
Por exemplo, quando compilei o php da fonte, fiz o seguinte:
O parâmetro l faz com que o paco seja executado no modo de log. Isso criou um arquivo de log em / var / log / paco chamado php5 (o nome que eu dei no comando). Continha todos os arquivos copiados para vários locais padrão durante a instalação. Você pode usar um editor de linha de comando ou paco gui para visualizar os arquivos.
Abaixo está o exemplo de como obter a lista de arquivos usando o editor de linha de comando sed
(Substitua php5 pelo seu nome de arquivo).
Depois de obter a lista dos arquivos, você sabe como excluí-los, não é? Na verdade, você pode passar os resultados do comando acima para rm usando backticks como mostrado abaixo:
Tarefa concluída!
Nota: Devido às limitações do LD_PRELOAD, o paco não pode seguir o rastreio de programas suid. Veja a página de manual.
fonte
Eu tinha compilado php-5.6.30 da fonte sem configurá-lo com o OpenSSL, então eu tive que voltar e instalá-lo a partir scratch.Using fazer desinstalação não funcionar como o Makefile para php não apoiá-lo.
No entanto, esta etapa funcionou para mim: - listei todos os arquivos relacionados ao php e os removi manualmente; levei cerca de 5 minutos sem suar a camisa. Da mesma forma, você pode usar essas etapas para desinstalar o software compilado.
Substitua php pelo software que você precisa para desinstalar
whereis php
O comando acima lista os diretórios nos quais os binários estão instalados, por exemplo: / usr / local / bin / php, / usr / bin / php .. remova cada arquivo / diretório listado em sua saída.
sudo rm -f /usr/local/bin/php
Faça isso com todos os arquivos listados na saída acima e está tudo pronto para instalar a versão mais recente do zero.
fonte