サイトアイコン アラコキからの Raspberry Pi 電子工作

Raspberry Pi sudo apt update でのエラー対策

Raspberry Pi 運用・管理
sudo apt update を実行するとエラーがでる
 
エラーの内容-その1。
以下の署名が無効です: EXPKEYSIG B188E2B695BD4743 DEB.SURY.ORG Automatic Signing Key <deb@sury.org>
 
エラーの内容-その2。
公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY B188E2B695BD4743
 
エラーの内容-その3。
N: リポジトリ 'http://nginx.org/packages/debian buster InRelease' がアーキテクチャ 'armhf' をサポートしないため設定ファイル 'nginx/binary-armhf/Packages' の取得をスキップ
 
以下、これら sudo apt update でのエラーへの対処策を記録。
 
 

 

スポンサー リンク

 

 
 
 
 
 
1. 「署名が無効」の原因と対策
 
sudo apt update の実行結果。
 
エラーメッセージ。
エラー:1 https://packages.sury.org/php buster InRelease
以下の署名が無効です: EXPKEYSIG B188E2B695BD4743 DEB.SURY.ORG Automatic Signing Key <deb@sury.org>
 
「apt-key list」コマンドで、GPG の署名状態を確認する。
 
「/etc/apt/trusted.gpg.d/php.gpg」が、[期限切れ]になっている。
 
php.gpgを削除する。
sudo rm /etc/apt/trusted.gpg.d/php.gpg
 
DEB.SURY.ORG の キー を削除する。(キーは、エラーメッセージ中に表示されたEXPKEYSIGの値。)
sudo apt-key del B188E2B695BD4743
 
削除結果。
 
DEB.SURY.ORG の GPGファイルをダウンロードする。
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
 
ダウンロード結果。
 
再度「apt-key list」コマンドで、GPG の署名状態を確認する。
 
DEB.SURY.ORG の、署名の有効期限が更新された。
 ・・・ これで「署名が無効」は解決。
 
 
 
2. 「公開鍵を利用できない」の原因と対策
 
sudo apt update の実行結果。
 
エラーメッセージ。
エラー:1 https://packages.sury.org/php buster InRelease
公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY B188E2B695BD4743
 
原因は、公開鍵がシステムに登録されていないためで、「DEB.SURY.ORG の GPGファイルをダウンロード」を行わなかった場合に表示される。
 
「DEB.SURY.ORG の GPGファイルをダウンロード」を行っていない場合、「apt-key list」コマンドでの【GPG の署名状態】には「/etc/apt/trusted.gpg.d/php.gpg」が表示されない。
 
公開鍵を登録するコマンド。(キーは、エラーメッセージに表示された値。)
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B188E2B695BD4743
 
公開鍵の登録結果と、sudo apt update の実行結果。
 
公開鍵を登録することで、解決。
 
 
 
3. 「'armhf' をサポートしない」の原因
 
sudo apt update の実行結果。
 
エラーメッセージ。
N: リポジトリ 'http://nginx.org/packages/debian buster InRelease' がアーキテクチャ 'armhf' をサポートしないため設定ファイル 'nginx/binary-armhf/Packages' の取得をスキップ
 
 
原因。
 Raspbian のデフォルトパッケージリポジトリを使用して Nginx をインストールすると、Nginx のバージョンが古いものになってしまう。
 セキュリティを考慮すると最新版を使うことが望ましいが、Raspberry Pi のプラットフォーム(armhf)用のバイナリパッケージは、公式サイトでは配布されていない。
 そこで、ソースパッケージからビルドして Debパッケージ(バイナリパッケージ)を作成し、導入することになる。
 これが原因で、エラーメッセージが出現する。
 
Nginx の最新版をインストールするために、
 sudo nano /etc/apt/sources.list で、
sources.list」に nginx公式のリポジトリを登録している。
 
「sources.list」の内容。
 
このように、Raspbian の「デフォルトパッケージリポジトリ」を使用せずに、nginxのリポジトリを登録して Nginx をインストールしていると、nginxの公式リポジトリが、Raspberry Pi のプラットフォーム『armhf』をサポートしていない為、更新情報が取得されずスキップされる。
 
この「エラーメッセージ」を止めるには、「sources.list」に登録した【nginxのリポジトリ】を削除すればよい。
 
 
 
4. 【Raspberry Pi】パッケージの最新化
 
パッケージの最新化コマンド。
sudo apt full-upgrade -y
 現在インストール中のパッケージに新しいバージョンがあれば更新
 
「php.ini」の取り扱い。
 
「sshd_config」の取り扱い。
 
パッケージの更新が完了するまでには、時間が掛かる。
 
 
不要パッケージの削除コマンド。
sudo apt autoremove -y
 更新に伴い不要になったパッケージの削除
 
削除結果。
 
パッケージキャッシュをクリアして、再起動。
sudo apt clean
 キャッシュされている全てのdebファイルを削除
sudo reboot
 
 
ファームウェアをアップデート可能か確認。
sudo rpi-eeprom-update
 
ファームウェアのアップデートは無かった。
 
 
 
5. パッケージの最新化における注意点
 
①.502 Bad Gateway
 
「502 Bad Gateway」が表示され、サイトに接続できなくなる。
 
 
原因:
 PHPが 7.4 から 8.0 に、バージョンアップされ、
 PHP 7.4 のパッケージが削除された。
 
 
「sudo apt autoremove -y」で、PHP 7.4 のパッケージが削除された。
 
 
「sudo apt autoremove -y」を実行しなければ、
PHP7.4 のままで継続運用できる。
 
 
PHPのバージョンアップに伴い、設定を変更する必要があるファイル。
①.sudo nano /etc/nginx/conf.d/default.conf 
②.sudo nano /etc/php/8.0/fpm/php-fpm.conf 
③.sudo nano /etc/php/8.0/fpm/pool.d/www.conf 
④.sudo nano /etc/php/8.0/fpm/php.ini 
 
 
②.カーネルモジュールのロードに失敗する
 
Raspberry PI OS を最新の状態に full-upgrade すると、EEP-ROMの【BIOS】が書き換えられる。
 
5.4.51-v71+ #1333 → 5.10.17-v71+ #1421
armv71 なので、32ビットOS
 
 
microSDカードをブートローダにして、SSD化している環境で「sudo apt autoremove -y」を実行すると・・・。
 
カーネルモジュールのロードに失敗する」ようになる。
microSDカードのみで運用している場合は、問題ない。
 
 
参考:
 
以上。
(2021.06.11)
 

 

スポンサー リンク

 

             

 

 

 
モバイルバージョンを終了