Corrí sudo pacman -Syuy obtuve algunos errores interesantes al leer:
error: error al confirmar la transacción (archivos en conflicto)
y una larga lista de archivos seguidos de exists in filesystem. La salida completa está aquí: http://ix.io/lLw
Parece que muchos de estos archivos no están asociados con un paquete cuando los verifiqué pacman -Qo <path-to-file>, pero no los verifiqué todos. Tuve una conexión débil cuando corrí pacman -Syu, pero recibo los mismos errores cuando actualicé más tarde: http://ix.io/lLx
¿Qué tengo que hacer? ¿Debo verificar todos los archivos y eliminar los que no tienen un paquete asociado? ¿Debo forzar la actualización (con sudo pacman -S --force <package-name>?)
Actualizar
Intenté correr sudo pacman -S --force <package-name>y obtuve esto:
[my-pc]/home/average-joe$ pacman -Qo /usr/lib/python3.5/site-packages/PyYAML-3.11-py3.5.egg-info
error: No package owns /usr/lib/python3.5/site-packages/PyYAML-3.11-py3.5.egg-info
Parece pacman -S --force <packageque no sobrescribe los directorios que contienen archivos. Del hombre:
El uso de --force no permitirá sobrescribir un directorio con un archivo o instalar paquetes con archivos y directorios en conflicto.
¿Debo eliminar los directorios en conflicto? (no tienen paquetes asociados)
fuente

/usr/local/lugar de/usr/)sudo pip install -U docker-compose==1.5.0rc3en esta página . Quizássudo pip installconflictos con pacman?-Sactualizaciones incorrectas (instalaciones parciales, etc.) le permitirá ese escenario. Caso de mí--forcetrabajó todo el tiempo.Respuestas:
Ok, parece que
sudo pacman -S --force <package-name>funciona, pero no resuelve directorios en conflicto. En tales casos, se ejecutasudo rm -rfen los directorios en conflicto, seguido desudo pacman -S --force <package-name>trabajos.Ahora mi
pacman -Syuresuelve bien.fuente
sudo pacman -Syu --forcefuncionó para mí, pero sobrescribir no fue reconocido.tl; dr: desinstala la aplicación en conflicto antes de ejecutarla
pacman.pacman(y otros administradores de paquetes) mantienen un índice de paquetes y archivos que administran (pacman --query --list). Algunos archivos, como la configuración, se marcarán como modificables y no se sobrescribirán durante la actualización (excepto en circunstancias especiales, donde el administrador de paquetes generalmente alejará el archivo anterior antes de crear el nuevo). Otros archivos se marcarán como no modificables. Si otra aplicación cambia esos archivos de alguna manera sin actualizar el índice en consecuencia, no hay forma de que el administrador de paquetes sepa qué hacer con esos archivos durante una actualización.Muchas aplicaciones instaladas con el
./configure && make && sudo make installpatrón estándar se pueden desinstalar usandosudo make uninstall. Si ha instalado la aplicación de alguna otra manera, puede que tenga que hacer algo más para desinstalarla. En general, puede ser una buena idea conservar una copia de los archivos de instalación algún lugar (por ejemplo~/install) para poder desinstalarlos de manera confiable en tales casos. Simplemente eliminar los archivos en conflicto probablemente dejará otros archivos por ahí, lo que posiblemente podría causar otros problemas.Al instalar software con otros administradores de paquetes, hay formas de aislarlos de los archivos del sistema. Esta es una práctica recomendada establecida, por ejemplo, durante el desarrollo de software, donde realmente desea mantener las versiones consistentes y evitar conflictos con otro software. Ejemplos incluyen:
fuente
sudo pip installcomando. ¿Quizás debería evitar usar pip con sudo?Estaba instalando paquetes que generalmente instalo con pip a través de pacman debido a esto. Pero algunos paquetes no se encuentran en repositorios pacman. Creo que deberíamos evitar instalar pip con privilegios de sudo y, en cambio:
- La marca de usuario hace paquetes de instalación de pip en su directorio de inicio, que no requiere ningún privilegio especial. https://stackoverflow.com/questions/42988977/what-is-the-purpose-pip-install-user
fuente
TLDR;
sudo pacman -Syunuevo.editado para agregar TLDR y corregir errores tipográficos
Aunque estoy bastante seguro de que no he estado haciendo nada estúpido, tal vez he tenido este problema cada vez que he intentado actualizar desde que uso Manjaro; tres o cuatro veces en dos meses. Punto de ser, esto lo arregla.
Obtenga una lista de sus archivos.
Cuando la actualización falla en la ventana de su terminal, obtiene esto:
... y mucho más.
Copie el resultado del terminal y póngalo en un archivo. Usé nano , y llamé a los "archivos" míos, como en ~ / work / files .
Tira información extraña:
cat files | awk '{print $2}' >> ~/work/files2Esto toma la segunda "palabra" de cada línea y la imprime en archivos2.
Lidiar con los archivos
Puede eliminarlos, moverlos o cambiarles el nombre.
Si algo se rompe, es más fácil solucionarlo si lo rompemos moviéndolo en lugar de eliminarlo o renombrarlo:
mkdir ~/work/oldfiles while read -r file; do sudo mv -- "$file" ~/work/oldfiles/$file; done < files2Si realmente desea eliminarlos, no hay razón para hacerlo ( PELIGRO PELIGRO ): mientras lee el archivo -r; do sudo rm - "$ archivo"; hecho <archivos2
Actualización
Para que --overwrite funcione, lo que debemos hacer para que pacman se dé cuenta de que el paquete no está roto, necesita la siguiente sintaxis:
sudo pacman -S package_name --overwrite /location/of/thingsudo pacman -S libidn2 --overwrite /usr/lib/libidn2.so.0sudo pacman -S libx000 --overwrite /usr/lib/libx000.so.f.u.loserTuve un lindo problema en el que si eliminaba el enlace simbólico libidn2.so.0, nada funcionaba, y cuando lo volví a colocar, recibí el error "existe en el sistema de archivos". Lo anterior, con --overwrite, es todo lo que funcionó para mí.
Finalmente:
sudo pacman -Syufuente
Después de que pacman finalmente desactive la
--forceopción y haga que la--overwriteopción sustituta funcione como se espera, se debe tener en cuenta el siguiente patrón de uso.Un comando equivalente para reproducir la
--forceopción que sobrescribe ciegamente cualquier conflicto será:O
La parte difícil es escapar del globo para evitar que el caparazón lo expanda primero.
fuente
Si tienes muchos archivos como yo,
resuelve todos los problemas.
fuente