次の問題があります。
└─$ sudo apt update && sudo apt full-upgrade -y
[sudo] password for kali: Hit:1 http://kali.download/kali kali-rolling InR
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required: exfat-fuse gstreamer1.0-pulseaudio libidn11 librest-0.7-0 libsoup-gnome2.4-1
Use 'sudo apt autoremove' to remove them.
The following packages will be upgraded: postgresql-13 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 664 not fully installed or removed. Need to get 0 B/14.7 MB of archives. After this operation, 106 kB of additional disk space will be used.
Preconfiguring packages ... Setting up libss2:arm64 (1.46.4-1) ... (Reading database ... 255637 files and directories currently installed.)
Preparing to unpack .../postgresql-13_13.4-2_arm64.deb ... invoke-rc.d: could not determine current runlevel
Stopping PostgreSQL 13 database server: mainError: Data directory /var/lib/postgresql/13/main must not be owned by root ... failed! failed!
invoke-rc.d: initscript postgresql, action "stop" failed. dpkg: warning: old postgresql-13 package pre-removal script subprocess returned error exit status 1
dpkg: trying script from the new package instead ...
invoke-rc.d: could not determine current runlevel Stopping PostgreSQL 13 database server: main
Error: Data directory /var/lib/postgresql/13/main must not be owned by root ... failed! failed! invoke-rc.d: initscript postgresql, action "stop" failed.
dpkg: error processing archive /var/cache/apt/archives/postgresql-13_13.4-2_arm64.deb (--unpack): new postgresql-13 package pre-removal script subprocess returned error exit status 1
Errors were encountered while processing: /var/cache/apt/archives/postgresql-13_13.4-2_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
私が逃したものは何ですか?
ベストアンサー1
このスレッドには正しくタグが付けられておらず、親の答えは完全に間違っており、正解(JP)にステップがありません。この問題はarm64のKali Nethunter(携帯電話)で発生し、まだ問題であり、すべてのarm64携帯電話で発生します。一部の古いデバイスでTermux経由でNethunter Rootless 2022.2をインストールすると、この問題が発生しました。
私が知っている限り、rootlessはpostgresqlで使用される機能をサポートしていないため、Nethunter rootlessをインストールする場合、このパッケージは重要ではありません。しかし、修正したい場合...
あなたがしなければならないことは、以下を実行することだけです:
sudo apt update && sudo apt full-upgrade -y
今すぐ実行するには、一緒に実行する必要があります。それ以外の場合は動作しません。
rm -rf /var/lib/dpkg/info/postgresql* && dpkg --configure -a
パッケージをアップグレードするには、このコマンドを再実行する必要があります。
sudo apt update && sudo apt full-upgrade -y
chownコマンドが機能しない場合、OPの合計n00bではなく、この問題が発生したときに最初に試みた操作であり、奇妙なのでスレッドを探し始めました。 chownコマンドを使用する前に、デフォルトのkaliユーザーとrootユーザーを使用して/var/lib/postgresqlディレクトリを確認しましたが、ディレクトリ所有者は常に私がログインしているユーザーと一致し、chownはそれを変更しませんでした。その後、/etc/passwdをチェックしてpostgresがユーザーであることを確認しましたが、そこにあり、すべてが正確でした。 cliが同じファイルに対して異なる所有者を表示する理由はわかりません。ルート化されていない奇妙なAndroid file-privの問題かもしれませんが、上記の3つのコマンドはアップグレードの問題を解決します。 Nethunter Liteまたはkaliカーネルをインストールする場合は、この問題を解決することが重要です。