Zshを使用します。システムをアップグレードしようとすると、phpに関連するいくつかのパッケージがポップアップ表示されるので、それらを削除したい
$ 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]
私が試したもの:
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
そして、php5
とpurge
で同じことを試みましたが、何も変わっていません。 autoremove
も機能しませんでした
更新
今まで答えがなかったので、走りました
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
とにかく、php5-fpmphp5-Gd
とphp5-snmpphp5-sqlite
がインストールされていない場合、それらをアップグレードする必要があることを理解していません。システムは、アップグレードする必要があることをどのように検出できましたが、それらを削除しようとしたときに検出できませんでしたか?
zshはbashとは異なり、グロブ/ワイルドカード/拡張システムが異なるため、動作が異なるため、php*
mは期待どおりに動作しない可能性があります。
そのため、Sudo apt-get remove php*
の代わりに、次のことができます。
引用:
Sudo apt-get remove "php*"
バッシュイット:
bash -c "Sudo apt-get remove php*"
NB悪いアイデア(以前指摘したように)である一方で、Sudo apt-get remove php *
はファイルの名前を返し、現在の作業ディレクトリ内のフォルダ(ホームディレクトリの可能性が高い)*
のため-しかし、これは、hteターミナルにファイルがある場合php
で始まる現在の作業ディレクトリでは、php*
を使用してファイルを要求する際に問題が発生する場合があります。
別のN.B。 php5-fpmphp5-Gd
およびphp5-snmpphp5-sqlite
は、更新の一部である可能性があります。更新されるパッケージの一部は、それらのパッケージを新しい依存関係として必要としたためです。php5-fpmphp5-Gd
およびphp5-snmpphp5-sqlite
とは、おそらくphp5-fpm
、php5-Gd
、php5-snmp
、php5-sqlite
...(あなたが提供した出力を見て、それはそれらのポイントで改行が発生したためでした)おそらく実行する必要があります:
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
aptitudeは、正規表現のようなパターンを使用して複数のパッケージ名を簡単に一致させるapt-getの代替です。
たとえば、パッケージ名に「php」という用語が含まれるインストール済みパッケージをすべてリストするには、次のようにします。
aptitude search ~iphp
編集:zshシェルを使用する場合、チルダで壊れないように引数を引用してください:
Sudo aptitude search "~iphp"
またはそれらをアンインストールするには:
Sudo aptitude remove ~iphp
または
Sudo aptitude purge ~iphp
Aptitudeの検索構文の詳細については、 このリファレンス を参照してください。
注:aptitudeはapt-getよりも強力であるため、システムのホース接続が簡単になります。続行する必要があることを確認する前に、削除、インストール、またはダウングレードを計画しているパッケージを常に確認してください。たとえば、パッケージをアンインストールするという要求を満たすために、aptitudeはそれに依存する他のパッケージをアンインストールする必要がある場合があります。
そもそもphpパッケージがインストールされる原因がわからない場合は、パッケージの逆依存関係を検索することで、検出作業を行うことができます:which packages depend on a package。推奨される依存関係はデフォルトでインストールされますが、これをオーバーライドして、「推奨」依存関係なしでパッケージをインストールするか、元のパッケージを削除せずに「推奨」依存関係を削除することができます。
たとえばphp5-fpmにも依存している現在インストールされているパッケージを一覧表示するには:
aptitude why php5-fpm
これはほとんどの場合に機能しますが、さまざまな理由により、パッケージが自動的にインストールされた原因をシステムが判断できない場合があります。 。
Aptitudeを使用しようとしたときにcommand not found
を取得した場合、次のようにシステムにインストールする必要があります。
Sudo apt-get install aptitude
注:過去には、お互いに自動的にインストールされたパッケージを追跡できなかったため、実際にシステムを変更するためにapt-getとaptitudeを交互に使用しないように警告するのが一般的でした。これはもはや問題ではなく(少なくとも3年前から)、どちらも自動的にインストールされたパッケージを同じ方法で記録します。
編集:aptitude whyコマンドを修正
パージ、自動削除、および削除を使用できます。この例としてautoremoveを使用しています。
$ Sudo apt-get autoremove 'php*'
aptitudeを使用することもできます
$ Sudo aptitude remove 'php*'
インストールされたパッケージを確認する
$ Sudo apt-cache policy 'php*'
それらがすべてない場合、すべてのphpアプリはインストールされません。
インストールされたパッケージがある場合は、それを削除することができます
$ Sudo apt-get autoremove 'packagename'
注:パージと削除は同じではありません。 purge
はパッケージとその構成を削除し、remove
はパッケージのみを削除します。
問題に対して次のコマンドを使用します。
Sudo apt-get -y purge php*