web-dev-qa-db-fra.com

Comment supprimer complètement les bibliothèques php?

J'utilise zsh. lorsque je tente de mettre à niveau le système, certains paquets liés à php pop up, je veux les supprimer

$ Sudo apt-get upgrade              
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  fonts-opensymbol kdelibs-bin kdelibs5-data kdelibs5-plugins kdoctools
  libkcmutils4 libkde3support4 libkdeclarative5 libkdecore5 libkdesu5
  libkdeui5 libkdewebkit5 libkdnssd4 libkemoticons4 libkfile4 libkhtml5
  libkidletime4 libkio5 libkjsapi4 libkjsembed4 libkmediaplayer4
  libknewstuff3-4 libknotifyconfig4 libkntlm4 libkparts4 libkprintutils4
  libkpty4 libkrosscore4 libktexteditor4 libnepomuk4 libnepomukquery4a
  libnepomukutils4 libplasma3 libsolid4 libssl1.0.0 libssl1.0.0:i386
  libthreadweaver4 openssl php-pear php5-cli php5-common php5-curl php5-fpm
  php5-Gd php5-intl php5-mysql php5-pspell php5-readline php5-recode php5-snmp
  php5-sqlite php5-tidy php5-xmlrpc php5-xsl
54 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 18.4 MB/20.0 MB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] 

Ce que j'ai essayé:

 Sudo apt-get remove php
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package php

▶ Sudo apt-get remove php*
zsh: no matches found: php*

Sudo apt-get remove php *
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'dropbox' is not installed, so not removed
E: Unable to locate package php
E: Unable to locate package avlfolder
E: Unable to locate package boot-scripts
E: Unable to locate package Calibre Library
E: Unable to locate package Desktop
E: Unable to locate package Documents
E: Unable to locate package Downloads
E: Unable to locate package Dungeons and Dragons Online
E: Unable to locate package Games
E: Unable to locate package Java ide
E: Unable to locate package jdownloader
E: Unable to locate package lello
E: Unable to locate package liberam
E: Unable to locate package Music
E: Unable to locate package netbeans-8.0
E: Couldn't find any package by regex 'netbeans-8.0'
E: Unable to locate package netbeans-8.0.desktop
E: Couldn't find any package by regex 'netbeans-8.0.desktop'
E: Unable to locate package Pictures
E: Unable to locate package PlayOnLinux's virtual drives
E: Unable to locate package projects
E: Unable to locate package Public
E: Unable to locate package qtprojects
E: Unable to locate package Savage2
E: Unable to locate package sketchbook
E: Unable to locate package Templates
E: Unable to locate package text.txt
E: Couldn't find any package by regex 'text.txt'
E: Unable to locate package themes
E: Unable to locate package tor-browser-linux64-3.6.1_en-US.tar.xz
E: Couldn't find any package by regex 'tor-browser-linux64-3.6.1_en-US.tar.xz'
E: Unable to locate package Videos
E: Unable to locate package VirtualBox VMs
E: Unable to locate package workspace
E: Unable to locate package xal

Et j'ai essayé la même chose avec php5 et avec purge, rien n'a changé. autoremove n'a pas fonctionné non plus

Mise à jour

N'ayant pas eu de réponse jusqu'à présent, j'ai couru

Sudo apt-get remove --purge php-pear php5-cli php5-common php5-curl php5-fpmphp5-Gd php5-intl php5-mysql php5-pspell php5-readline php5-recode php5-snmpphp5-sqlite php5-tidy php5-xmlrpc php5-xsl
[Sudo] password for elie: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package php5-fpmphp5-Gd
E: Unable to locate package php5-snmpphp5-sqlite

Je cherchais une meilleure solution, de toute façon, je ne comprenais pas comment php5-fpmphp5-Gd et php5-snmpphp5-sqlite devaient être mis à niveau s'ils n'étaient pas installés. Comment le système a-t-il pu détecter la nécessité de les mettre à niveau mais ne les a pas détectés lorsque j'ai essayé de les supprimer?

2
Lynob

contrairement à bash, zsh a un système global/générique/d'expansion différent, de sorte qu'il fonctionne différemment, donc php*peut ne pas fonctionner comme prévu.
Ainsi, au lieu de Sudo apt-get remove php*, vous pouvez:

  • Citez le:

    Sudo apt-get remove "php*"
    
  • Bash it:

    bash -c "Sudo apt-get remove php*"
    

NB Tout en étant une mauvaise idée (comme indiqué précédemment ), Sudo apt-get remove php * renvoyait les noms de fichiers et dossiers dans le répertoire de travail actuel (probablement votre répertoire personnel) à cause du * - mais cela signifie également que vous avez des fichiers dans le terminal de Hte répertoire de travail actuel commençant par php, vous pouvez avoir un problème d’utilisation de php* pour demander des choses, car cela pourrait inclure ces noms de fichiers dans l’extension.

n autre N.B. php5-fpmphp5-Gd et php5-snmpphp5-sqlite ont peut-être fait partie de la mise à jour, car certains des paquets mis à jour avaient besoin de ces paquets en tant que nouvelles dépendances. Par php5-fpmphp5-Gd et php5-snmpphp5-sqlite, vous vouliez probablement dire php5-fpm, php5-Gd, php5-snmp, php5-sqlite... (en regardant le résultat que vous avez fourni, c'est parce que les nouvelles lignes sont apparues à ces points)

Sudo apt-get remove --purge php-pear php5-cli php5-common php5-curl php5-fpm php5-Gd php5-intl php5-mysql php5-pspell php5-readline php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
4
Wilf

aptitude est une alternative à apt-get qui permet de faire facilement correspondre plusieurs noms de paquets à l'aide de modèles ressemblant à des expressions régulières.

Par exemple, pour répertorier tous les packages installés dont les noms contiennent le terme "php":

aptitude search ~iphp

Edit: lorsque vous utilisez zsh Shell, citez l’argument pour qu’il ne tombe pas sur le tilde:

Sudo aptitude search "~iphp"

Ou pour les désinstaller:

Sudo aptitude remove ~iphp

ou

Sudo aptitude purge ~iphp

Consultez cette référence pour plus d'informations sur la syntaxe de recherche d'aptitude.

Note: aptitude est plus puissant qu'apt-get et facilite donc la tâche de votre système. Vérifiez toujours quels paquets il est prévu de supprimer, d'installer ou de rétrograder avant de confirmer que cela doit aller de l'avant. Par exemple, parfois, pour satisfaire votre demande de désinstallation d'un paquet, aptitude devrait désinstaller un ensemble d'autres paquets qui en dépendent.

Si vous vous demandez pourquoi les paquets php ont été installés en premier lieu, vous pouvez effectuer un travail de détection en recherchant les dépendances inverses d'un paquet: quels paquets dépendent de un paquet . Les dépendances recommandées sont installées par défaut, mais il est possible de les remplacer et d'installer un package sans ses dépendances "recommendées", ou de supprimer certaines dépendances "recommendées" sans supprimer le package d'origine.

Pour lister les paquets qui sont actuellement installés et qui dépendent aussi, disons, de php5-fpm:

aptitude why php5-fpm

Cela devrait fonctionner la plupart du temps, mais pour diverses raisons, il peut parfois être impossible au système de dire la cause de l'installation automatique d'un paquet. Peut-être que c'était une dépendance de quelque chose, mais après une mise à jour, cela ne dépend plus, etc. .

Si vous obtenez un command not found en essayant d'utiliser aptitude, vous devez l'installer sur votre système, comme ceci:

Sudo apt-get install aptitude

Remarque: dans le passé, il était courant d'avertir les utilisateurs de ne pas utiliser apt-get et aptitude de façon interchangeable pour réellement modifier le système, car ils ne pouvaient pas savoir quels paquets étaient automatiquement installés l'un par l'autre. Ce n'est plus un problème (depuis au moins 3 ans), et ils utilisent tous deux le même mode d'enregistrement des paquets qui ont été installés automatiquement.

Edit: corrige aptitude pourquoi commande

4
thomasrutter

Vous pouvez utiliser purger, supprimer et supprimer automatiquement. J'utilise autoremove comme exemple pour cela.

$ Sudo apt-get autoremove 'php*'

vous pouvez aussi utiliser aptitude

$ Sudo aptitude remove 'php*'

vérifier les paquets installés

$ Sudo apt-cache policy 'php*'

si tous ne sont pas nuls, donc toutes les applications php ne sont pas installées

s'il y a un paquet installé, vous pouvez le supprimer en

$ Sudo apt-get autoremove 'packagename'

Remarque: purger et enlever ne sont pas identiques. purge supprime le package et sa configuration et remove supprime uniquement le package.

2
hwez

Utilisez cette commande pour votre problème:

Sudo apt-get -y purge php*
0
sparkmood