Usé el código fuente para construir un paquete como el siguiente:
./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
Pero desafortunadamente, descubrí que es la última versión y tiene muchos errores, así que necesito eliminarlo / desinstalarlo. ¿Pero cómo puedo hacerlo? Lo intenté make clean; make uninstall
pero aún veo que existe:
# pkg-config --list-all | grep Myplugin
myplugin-....
$ ls /usr/lib/myplugin/libXYZ.so
exist....
¿Cómo eliminas esto ahora?
fuente
checkinstall
: hace que todo este problema se evapore.make install
se ejecutó como root (p. Ej.sudo make install
), Que suele ser el caso, siempre es virtual ejecutarlosudo make uninstall
para eliminar el software.make install
, aún puedes usarlocheckinstall
. Normalmentecheckinstall
sobrescribirá todo lo que hayamake install
creado. Después de eso, simplemente usedpkg -r <package.deb>
, y todo debe eliminarse.No creo que esto sea un error, sería una buena idea leer y aprender a usar checkinstall al instalar desde la fuente.
puede instalar checkinstall desde los repositorios, una breve descripción del paquete;
CheckInstall realiza un seguimiento de todos los archivos creados o modificados por su script de instalación ("make install" "make install_modules", "setup", etc.), crea un paquete binario estándar y lo instala en su sistema, lo que le permite desinstalarlo con las utilidades de administración de paquetes estándar de su distribución.
Estos enlaces a continuación pueden ser útiles para obtener una mejor comprensión. http://en.wikipedia.org/wiki/CheckInstall
http://checkinstall.izto.org/
fuente
Esto no es un error: la compilación desde el origen es un método no compatible de instalación de software que omite completamente el sistema de administración de paquetes (que es utilizado por el Centro de software).
No hay una forma estándar de instalar o desinstalar el software compilado desde la fuente, por lo que Ubuntu no puede saber qué hacer. El software ni siquiera aparece como un programa instalado.
Debe seguir las instrucciones del distribuidor para la instalación y eliminación de dicho software personalizado. También puede ponerse en contacto con el desarrollador para solicitarles que creen un paquete Debian para poder utilizar el sistema de gestión de paquetes.
fuente
No es un error, es lo que sucede cuando los desarrolladores recurren a la distribución a través de la fuente y no a través de los métodos de empaquetado nativos.
Puede hacer que sus archivos fuente se conviertan en paquetes de Debian utilizando checkinstall o dhbuild. Honestamente, en mi opinión, los nuevos usuarios deben evitar la instalación desde la fuente, y los desarrolladores deben evitar distribuir solo por fuente.
fuente
Conozco algunos paquetes que admiten "realizar desinstalación", pero muchos más que admiten la instalación de DESTDIR = xxx "para instalaciones por etapas.
Puede usar esto para crear un paquete que instale en lugar de instalarlo directamente desde la fuente. No tuve suerte con checkinstall pero fpm funciona muy bien.
Esto también puede ayudarlo a eliminar un paquete previamente instalado usando make install . Simplemente fuerce la instalación de su paquete integrado sobre la marca instalada y luego desinstálelo.
Por ejemplo, usé esto recientemente para tratar con protobuf-3.3.0. En RHEL7:
Prefiere ñam a rpm si puedes.
En Debian9:
Prefiere apt a dpkg donde puedas.
También publiqué esta respuesta en stackoverflow
fuente
Tenemos que negociar el hecho de que hacen desinstalación podría no siempre funciona, es abajo es más de una solución proactiva.
Esto implica el uso del programa paco que está disponible en el Centro de software de Ubuntu. Una vez que hemos instalado Paco, podemos usarlo en el modo de registro cuando "hacemos que la instalación" sea un programa. Paco actúa como un contenedor para su "make install" y crea un registro en el directorio / var / log / paco con la lista de archivos copiados en varios directorios. Además, puede ver los archivos en la interfaz de Paco.
Por ejemplo, cuando compilé php de la fuente, hice lo siguiente:
El parámetro l hace que el paco se ejecute en el modo de registro. Esto creó un archivo de registro en / var / log / paco llamado php5 (el nombre que he dado en el comando). Contenía todos los archivos que se copian en varias ubicaciones estándar durante la instalación. Puede usar un editor de línea de comandos o paco gui para ver los archivos.
A continuación se muestra el ejemplo de cómo obtener la lista de archivos utilizando el editor de línea de comandos sed
(Reemplace php5 con su nombre de archivo).
Una vez que obtuviste la lista de archivos, sabes cómo eliminarlos, ¿no? De hecho, puede pasar los resultados del comando anterior a rm utilizando los backticks como se muestra a continuación:
¡Trabajo hecho!
Nota: Debido a las limitaciones de LD_PRELOAD, paco no puede seguir el rastro de los programas suid. Ver página del manual.
fuente
Había compilado php-5.6.30 desde la fuente sin configurarlo con openssl, así que tuve que volver e instalarlo desde cero. El uso de make uninstall no funcionó ya que el Makefile para php no lo admite.
Sin embargo, este paso funcionó para mí: enumeré todos los archivos relacionados con php y los eliminé manualmente, me llevó unos 5 minutos sin sudar. De manera similar, puede seguir estos pasos para desinstalar su software compilado.
Reemplace php con el software que necesita desinstalar
whereis php
El comando anterior enumera los directorios donde se instalan los archivos binarios, por ejemplo: / usr / local / bin / php, / usr / bin / php ... elimine cada archivo / directorio que figura en su salida.
sudo rm -f /usr/local/bin/php
Haga esto con todos los archivos enumerados en el resultado anterior y ya está todo listo para instalar la versión más nueva desde cero.
fuente