Se você era esperto o suficiente e usou algum prefixo não padrão ao configurar o Git para que ele fosse instalado sob uma hierarquia específica, como em / opt / git, basta excluir essa hierarquia recursivamente.
Se não, então você poderia ir assim:
1) Busque o tarball de origem exatamente da versão que você construiu e instalou, descompacte.
2) Configure exatamente como você fez com a instalação original em relação aos locais de instalação (prefixo, exec-prefix etc); supostamente você não deveria substituir nada.
3) Crie um diretório temporário para executar a instalação, como este: $ mkdir / var / tmp / git
4) Instale o Git passando uma variável DESTDIR apropriada para fazer: $ make DESTDIR = / var / tmp / git install A hierarquia do Git será criada nesse diretório temporário.
5) Use a hierarquia criada para decidir quais arquivos serão excluídos na hierarquia real ("/").
O último passo é onde "a mágica" acontece, para dar mais explicações. Por exemplo, você pode executar
(como root) exclui os arquivos instalados pela primeira instalação incorreta no sistema de arquivos raiz. A encantação acima usa a hierarquia / var / tmp / git para imprimir a lista de arquivos encontrados, mas substitui o prefixo "/ var / tmp / git" neles por "/", para que o "/ var / tmp / git / usr / bin / git "na saída será listado como" / usr / bin / git ". Essa lista é então canalizada para a xargsqual é executada rm
nos nomes dos arquivos que lê em pacotes de dez (apenas para reduzir o número de chamadas de rmuma ordem de magnitude).
Depois de lidar com arquivos, execute
$ find /var/tmp/git -type d -printf '/%P\n'
para inspecionar a lista de diretórios instalados. Isso requer abordagem manual, basta olhar para a lista gerada e pensar qual deles você poderia rmdirusar com segurança do seu sistema (esses serão os diretórios como "/ usr / libexec / git" ou algo parecido com isto; você provavelmente não deseja excluir "/ usr / share / man / mann" ou algo que esteja vazio).
PS No futuro, nunca instale nada em um sistema executando
make install! Atualmente, a maioria dos makefiles não suporta o destino de "desinstalação", pois eles são usados para instalar em um local de rascunho privado para teste ou criar um pacote (.rpm, .deb etc.) e, em seguida, o gerenciador de pacotes cuida da limpeza. Se você precisar instalar algo, tente encontrar um pacote oficial ou faça o backport de outro pacote oficial de uma versão mais recente do seu sistema operacional, se disponível. Como último recurso, tente usar a checkinstallferramenta que tenta criar um pacote binário fora da sua make installexecução. Isso é péssimo, mas ainda melhor do que nu make install.
Por favor, expanda alguns dos detalhes encontrados lá. A podridão de bits acontece e, quando isso ocorre, essa resposta se torna inútil.
sysadmin1138
ok, atualizei minha resposta
Mikhail
Respeito. funciona
dotslash 02/02
Resumo: ./configure. sudo make && sudo make DESTDIR=/var/tmp/git install. sudo find /var/tmp/git -type f -printf '/%P\n' | sudo xargs -n 10 rm -f
Vahid 10/01
3
Eu apenas fui através de 2691 linhas de Makefile. Na verdade, não faça desinstalação. Drat.
Nesse caso, uma solução alternativa pode ser usar a make rpmopção Instale o rpm (substituindo todos os arquivos instalados, que devem ser idênticos aos arquivos já instalados). Em seguida, desinstale o rpm.
Em todos os casos futuros, construa um pacote (RPM, yum, qualquer que seja). Isso facilita muito a manutenção.
Exceto normalmente make installcoloca as coisas no prefixo, /usr/localenquanto o rpm / deb / your-package-here é executado ./configurecom parâmetros diferentes para que os arquivos que eles instalam terminem com prefixo /usr.
Ptman #
Sou novato no CentOS. Que comando devo executar? Você pode explicar mais, por favor
Mikhail
Eu executei o make rpmcomando. O que devo fazer na próxima?
11555 Mikhail
Comece com man rpmou 'rpm --help. Provavelmente lhe dirá para usar rpm -i packagename.rpm. No entanto, pode ser melhor pedir ao administrador do sistema na umbrella-web para ajudá-lo. Há muito o que podemos fazer à distância.
make install
?Respostas:
Encontrei a solução aqui .
ATUALIZADO 2.11.2012
Se você era esperto o suficiente e usou algum prefixo não padrão ao configurar o Git para que ele fosse instalado sob uma hierarquia específica, como em / opt / git, basta excluir essa hierarquia recursivamente.
Se não, então você poderia ir assim:
1) Busque o tarball de origem exatamente da versão que você construiu e instalou, descompacte.
2) Configure exatamente como você fez com a instalação original em relação aos locais de instalação (prefixo, exec-prefix etc); supostamente você não deveria substituir nada.
3) Crie um diretório temporário para executar a instalação, como este: $ mkdir / var / tmp / git
4) Instale o Git passando uma variável DESTDIR apropriada para fazer: $ make DESTDIR = / var / tmp / git install A hierarquia do Git será criada nesse diretório temporário.
5) Use a hierarquia criada para decidir quais arquivos serão excluídos na hierarquia real ("/").
O último passo é onde "a mágica" acontece, para dar mais explicações. Por exemplo, você pode executar
(como root) exclui os arquivos instalados pela primeira instalação incorreta no sistema de arquivos raiz. A encantação acima usa a hierarquia / var / tmp / git para imprimir a lista de arquivos encontrados, mas substitui o prefixo "/ var / tmp / git" neles por "/", para que o "/ var / tmp / git / usr / bin / git "na saída será listado como" / usr / bin / git ". Essa lista é então canalizada para a
xargs
qual é executadarm
nos nomes dos arquivos que lê em pacotes de dez (apenas para reduzir o número de chamadas derm
uma ordem de magnitude).Depois de lidar com arquivos, execute
para inspecionar a lista de diretórios instalados. Isso requer abordagem manual, basta olhar para a lista gerada e pensar qual deles você poderia
rmdir
usar com segurança do seu sistema (esses serão os diretórios como "/ usr / libexec / git" ou algo parecido com isto; você provavelmente não deseja excluir "/ usr / share / man / mann" ou algo que esteja vazio).PS No futuro, nunca instale nada em um sistema executando
make install
! Atualmente, a maioria dos makefiles não suporta o destino de "desinstalação", pois eles são usados para instalar em um local de rascunho privado para teste ou criar um pacote (.rpm, .deb etc.) e, em seguida, o gerenciador de pacotes cuida da limpeza. Se você precisar instalar algo, tente encontrar um pacote oficial ou faça o backport de outro pacote oficial de uma versão mais recente do seu sistema operacional, se disponível. Como último recurso, tente usar acheckinstall
ferramenta que tenta criar um pacote binário fora da suamake install
execução. Isso é péssimo, mas ainda melhor do que numake install
.fonte
./configure
.sudo make && sudo make DESTDIR=/var/tmp/git install
.sudo find /var/tmp/git -type f -printf '/%P\n' | sudo xargs -n 10 rm -f
Eu apenas fui através de 2691 linhas de Makefile. Na verdade, não faça desinstalação. Drat.
Nesse caso, uma solução alternativa pode ser usar a
make rpm
opção Instale o rpm (substituindo todos os arquivos instalados, que devem ser idênticos aos arquivos já instalados). Em seguida, desinstale o rpm.Em todos os casos futuros, construa um pacote (RPM, yum, qualquer que seja). Isso facilita muito a manutenção.
fonte
make install
coloca as coisas no prefixo,/usr/local
enquanto o rpm / deb / your-package-here é executado./configure
com parâmetros diferentes para que os arquivos que eles instalam terminem com prefixo/usr
.make rpm
comando. O que devo fazer na próxima?man rpm
ou'rpm --help
. Provavelmente lhe dirá para usarrpm -i packagename.rpm
. No entanto, pode ser melhor pedir ao administrador do sistema na umbrella-web para ajudá-lo. Há muito o que podemos fazer à distância.