Ubuntu 22.04 のアップデート

いつもと変わらず Ubuntu を起動する。
何事もなく、普通に Ubuntu は目を覚ます。しばらく何もせずにいると、いくつかのアップデートの通知が開く。それらを処理させる。ひととおり終了すると、またアップデートの通知が開く。22.04 LTS のアップデートができるとのこと。これは実は待っていたことでもある。

20.04 LTS のときも同じような具合だった。同じように通知が開き、それにおまかせしてアップデートさせた。途中に何かエラーの通知が出ていたのかは、もう覚えてはいない。一見、なにごともなくアップデートは終了したかのように思えた。しかし、ひとつ不具合が発生してしまうこととなった。

全部で5台の PC が繋がっている。Ubuntu は一台だけであとは Windows10。その不具合というのは、メイン PC の Windows10 にある画像が大量に入っているフォルダを、ドキュメントルート以下のフォルダにマウントさせ、そのフォルダにある画像を、ローカルホストでアクセスしたブラウザで表示させることができなくなってしまったというもの。アップデート前は同じことが問題なく出来ていたし、ブラウザ経由でなければ、それらの画像を表示させることはできた。

アップデートする直前にも、ブラウザで画像のスライドショーをするページで、それらの画像を見ていたのが、この件についての問題が生じてしまった原因なのかもしれない。アップデートするまえに一度、リブートさせていればよかったのかもしれない。

とにかく、何をどうすれば改善されるのかもわからず、さほど重要なことでもなかったので、その件についてはあきらめてしまっていた。つぎのアップデートのときに、気をつけてやれば改善されるのではないか、ぐらいに思っていた。

と、いうことで、何気なく待っていた 22.04 へのアップデート。このときは、その前に何も動かしてはいなかったので、さっそくアップデートを始めさせた。
途中、いくつか通知が表示された。今回はしっかりとそれを書き留めていた。
主だったところをいくつか並べてみると。

「サードパーティが提供するリポジトリを使わない設定にしました。
sources.list にあるサードパーティが提供するリポジトリを使わない設定にしました。アップグレード完了後、ソフトウェアソース ツールもしくはパッケージマネージャーを使って再び利用可能な設定にすることができます。」

「Failure restarting some services for GNU libc updrade
The following services could not be restarted for the GNU libc library upgrade: mysql
You will need to start these manually by running ‘invoke-rc.d <service> start’.」

「Libpam0g:amd64 を設定しています。
Most services that use PAM need to be restarted to use modules built for this new version of Libpam. Please review the following space-separated List of services to be restarted now, and correct it if needs.Services to restart for PAM LIbrary upgrade: 
yaws cron」

「Starting in Ubuntu22.04, all new releases of Firefox are only available to Ubuntu users through the snap package.
This package update will transition your system over to the snap by installing it.
It is recommended to close all open firefox windows before proceeding to the upgrade.」

「’yaws-chat’がインストールできません
アップグレードを続けますが、’yaws-chat’パッケージが動かない状態にある可能性があります。この件に関してバグレポートを送信することを検討してください。
installed yaws-chat packege post-installation script subprocess returned error exit status 1」

だいたいこんなところ。yaws に関しては、yaws-chat の他に yaws-mail など内容は同じものでいくつも表示された。この yaws 関連のものは、アップデート終了後のリカバリーだかなんだかで(よく覚えていない)結局インストールできたのだと思う。
気になるのは、MySQL に関するもの。この時に、なぜ MySQL において restart できないのだろう?と気がついていれば、そもそもこの後でおこる落とし穴に落っこちることもなかったのかもしれない。

アップデートは再起動することもなく終わった。あれっ?と、いう感じ。再起動しなくてもいいのだろうか?と思いつつ。それとも気がつかないうちに再起動してしまったのだろうか。ログインした記憶もないのだけれど。
なんにしても、アップデートは終了した。何事も問題はなさそうだった。すぐに、python やら Rust で作ったプログラムを動かしてみる。そして、Windows10 のフォルダをマウントし、ブラウザを起動してマウントフォルダの画像を表示させてみると、うれしいことに問題なく表示されるようになっていた。

ふと、画面が青っぽいことに気がついた。これは、ディスプレイサーバーとして「Wayland」が起動していたから。そう、いままでは、従来からの「Xorg」を使っていた。と、いうのは Wayland においての モニターの色調整のやり方がわからなかったからである。その点、Xorg は gamma が使えたので、青が強いモニターの色を、それを抑えて赤を補正するようにしていた。と、いうことで、それも Xorg に戻して、ほぼ、元のままの画面表示となった。

MySQL にログインできない?

ちょっと気になっていた MySQL に関しての告知。ためしに、と、ばかりにログインしようと試みてみたが・・・、と、いうかこのあたりのことはあまり記憶にない。はたして起動すらしていなかったのか、それならば、sudo systemctl start mysql で起動させたのか。
が、なんにしてもログインを試みた結果、あっさりと拒否されてしまったのは確かなこと。

この MySQL。実のところ全く使っていなかったので、インストールはしてあるがはたしてその先どこまで設定したのか全く記憶にない。そんなことなので、パスワードなどは何にしたのか全くわからない。あれこれと思い当たるものを試してみるが全滅。ちょっと調べてみると、全く何もしてなくて、初めてログインするということなら、パスワードは未設定のはずなので、パスワード無しでログインできるということなのであるけれど、そうはうまくいかず、「 ERROR: Access denied 」と、怒られてしまう。

ネットで探してみると、root のパスワードを忘れてしまった場合の対処の仕方は、いくつも教えてくれているところがある。ありがたや~、とその恩恵にあずかりたいけれど・・・。
その時検索した結果で、一番、目に付いたのが初期パスワードにてログインする方法。/var/log ディレクトリにある mysqld.log というファイルに保存されているということだが、残念ながら見当たらなかった。他に my.cnf を使ったり、セーフモードで起動したりといろいろ教えてくれている方法を試してみたが、一切、状況がかわることはなかった。

これ、後で気がついたことで、とりあえずインストール後、初期設定だけは終わらせていたならば、もしかしたら sudo mysql -u root でログイン出来たのかもしれない、と。
しかし、どうにもできないことが苛立たしく、もう、あきらめて再インストールしようということにしてしまった。そして、アンインストールしてから再びインストール。

でもね、アンインストールにしてもそんなに単純なことでもないようで、再インストールした後、MySQL は起動すらしなくなってしまった。なんでもエラーコードだそうで。結局これも相当格闘したけれど、解決することはできず。どうも、アンインストールのやり方が悪かったようなので、完全に消す方法が書いてあったサイトを参考にして再度アンインストール+インストールを試みた。すると今度はなんとか正常に新規インストールができたようで、ログイン+ mysql_secure_installation と難なく処理することができ、その後、データベースも問題なく扱うことができた。

で、そのアンインストールの手順を忘れないように残しておく。
参考にさせてもらったページはここ→「UbuntuへのMySQLインストール手順と設定
ひとつ気をつけることは、4行目にある autoremove –purge。実はこの流れではこの4行目は使わなかった。と、いうのは、この前で mysql をアンインストールしたときにすでにやっていたから。そしてその時に、なぜか使っている python3 も消えてしまったから。その時の Ubuntu の起動中には使わなかったから?なのだろうか。

$ sudo apt remove --purge mysql-server
$ sudo apt remove --purge mysql-client
$ sudo apt remove --purge mysql-common
$ sudo apt autoremove --purge
$ sudo rm -r /etc/mysql
$ sudo rm -r /var/lib/mysql
Bash
CopyExpand

と、いうことで、このコマンドで MySQL はきれいに消すことができたようで、再インストール後、正常に使うことができるようになった。
以下はここのページ→「Qiita Ubuntu22.04 MySQL8.0.30をインストールする」を参考にさせてもらってMySQL をインストールした手順。間違いなく忘れてしまうから残しておこう。

$ sudo apt update
$ sudo apt install mysql-server mysql-client

#MySQL の起動
$ sudo systemctl start mysql.service
#MySQL の状態を知る
$ systemctl status mysql.service
#この画面は Ctrl+c で終われる

#まず MySQL にログインして MySQL の root ユーザの認証方法とパスワードを変更・設定
#インストールして初めての場合はパスワードなしでログインできるはず
$ sudo mysql -u root
#ちょっと記憶にないが、自分の時の場合、下のパスワード入力はでただろうか?
[sudo] password for lustm5: (Ubuntuのsudoパスワードを入力)

#root ユーザのパスワードを変更
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'WasurenaiP@ssw0rd';
mysql> exit

#セキュリティスクリプトを実行してセキュリティオプションを変更
$ sudo mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root: (WasurenaiP@ssw0rdを入力)
#この後、セキュリティのいくつかの設定がつづく。この時は参考にしたページのお教えどおり、パスワードを変えるかどうかはn、それ以外はすべてyで進めた、実際はそれぞれにちゃんと説明文がついている
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
All done!

#rootユーザ の パスワードを設定する所で変更した認証方法をデフォルトの auth_socket に戻す。パスワード認証のままでよければ飛ばしても問題なし。
$ mysql -u root -pWasurenaiP@ssw0rd
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
mysql> exit

$ sudo mysql -u root
#参考にしたページには下のパスワード入力が書いてあるが、自分の場合は上のコマンドだけでログイン出来たと思う
[sudo] password for lustm5: (Ubuntuのsudoパスワードを入力)
Bash
CopyExpand

MariaDB に気を引かれる

これで MySQL も使えるようになったし、WordPress も使えるようにしておこうか、などと考えていたところで、ふとしたことを知ることとなる。それは Ubuntu 22.04 のOS標準データベースは MariaDB とのこと。えっ!となったけれど、それでインストールのときに MySQL に関しての告知が出たのかな!などと思ったりした。

しかし、OS標準が MariaDB なら、そちらの方がいいなぁ、と気を引かれる。WordPress でも使ってみたいし。と、そう考えだしたらもう先に進むことしかできず、再びの MySQL アンインストールとなった。MariaDB のインストールも難なくおわり、ログインして mysql_secure_installation もあっさりと済み正常に使えるようになった。MariaDB のインストールもほとんど MySQL の場合と同じ。

参考にさせてもらったのはこのページ→「Ubuntu 22.04 : MariaDB 10.6 インストールと設定 : Server World」。ちょっとわからないのが、apt install の -y オプション。このオプションに関する説明がどこにも見つけられなかった。

sudo apt -y install mariadb-server
sudo systemctl restart mariadb

#root のパスワードに関する unix-socket の件とパスワード変更の件は推奨通り n。それ以降は y。これも実際はそれぞれにちゃんと説明文がついている。
sudo mysql_secure_installation
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

#ログインは以下でOK
sudo mariadb
Bash
CopyExpand

phpMyAdmin がインストールできない

それではっ!と WordPress をインストールしようと思ったが、ちょっとその前に phpMyAdmin の方を先に入れておこうと。なんてことはなかろう、と始めてみたものの、その予想は見事に裏切られ、なにやらパッケージの依存関係にエラーがあるとのことで、インストールは拒否されてしまった。下は他のサイトからコピーしてきたものだけれど、ほぼ、同じような内容のものが表示されていたと思う。

「インストールすることができないパッケージがありました。おそらく、あり得ない状況を要求したか、(不安定版ディストリビューションを使用しているのであれば)必要なパッケージがまだ作成されていなかったり Incoming から移転されていないことが考えられます。以下の情報がこの問題を解決するために役立つかもしれません:以下のパッケージには満たせない依存関係があります」

で、そのパッケージというのは、あまり記憶が定かではないけれど、php8.1-mysql か php8.1-mysqli と php8.1-common だったと思う。そして、どちらがどちらだったかも定かではないけれど、バージョン表示が8.1.9 と 8.1.2 とかになっていて確かに違ってはいた。このとき稼働していた php は最新だった 8.1.9。ちなみに phpMyAdmin のインストールはこのページを参考にさせてもらった。ありがたいことです。ここ→「たまーのテクノロジー 【Ubuntu】phpMyAdminをインストールしてWebブラウザで管理【データベース】
間違いなく忘れてしまうので、これもか大まかなところを書きとどめておく。

sudo apt install phpmyadmin

#この後、webサーバー選択の画面が表示されるので apache2 を選択
#次にデータベースをインストールするか確認の表示。すでに MariaDB をスタンバイしているのでNo

#そして MariaDB にログインする。自分の場合は以下でOK

sudo mariadb

#次にデータベースに接続するためのユーザーを作成
#strixadmin というユーザー名でパスワードは strixpassword

MariaDB [(none)]> create user 'strixadmin'@'localhost' identified by 'strixpassword';

#そして今作ったユーザーにすべての権限を与えるコマンドを実行

MariaDB [(none)]> grant all on *.* to 'strixadmin'@'localhost';

#そして権限を反映させるためのコマンドを実行

MariaDB [(none)]> flush privileges;

#ユーザーと権限を確認するなら下のコマンド

MariaDB [(none)]> show grants for 'strixadmin'@'localhost';

#これにてMariaDB においての設定はおしまい

MariaDB[(none)]> exit;

#こんどは phpMyAdmin 側の設定
#/etc/phpmyadmin にある config-db.php を編集

sudo vi config-db.php

#このファイルにある dbuser と dbpass に先程作ったユーザーを指定
#つぎに /etc/dbconfig-common にある phpmyadmin.conf を編集

sudo vi phpmyadmin.conf

#このファイルも dbc_dbuser と dbc_dbpass の指定をする
#最後に、Apache から phpMyAdmin にアクセスするため、「phpmyadmin.conf」のシンボリックリンクを /etc/apache2/conf-available に作成する。シンボリックを確認するコマンドは ll or ls -l(これは同じこと)。

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin

#phpMyAdmin で変更した設定を反映するために apache を再起動

sudo systemctl apache2 restart

#これで終了
Bash
CopyExpand

さあて、と。これはいったいどうすれば良かったのだろうか。確かに、古い Windows が使えば使うほど著しく不安定になってしまった原因は、古いソフトのインストールによって、現行バージョンの DLL が旧バージョンのもので上書きされてしまうことだったからで、インストールされるソフトのバージョン管理は必須のことだというのはわかる。けれど、ちゃんと管理されているのであれば、なぜ 8.1.2 のものが存在しているのだろう、と文句を言ってもしょうがない。何度も MySQL をアンインストールしたのが原因だろうか。しかも一度目は不完全なアンインストールだったようだし。

この時点で、phpMyAdmin の方はちょっとあきらめて WordPress の方をインストールさせてみようと試してみた。WordPress のインストールは、大まかに言えば、データベースに WordPress 用のデータベースとユーザーを設定し、ダウンロードしたファイルを解凍して、ブラウザでセットアップページにアクセスしてデータベースの設定などすれば良いとのこと。が、いざセットアップページにアクセスしてみると、データベースにアクセスできないといわれ、セットアップページは止まったままで全く機能しない状態だった。

このあたりも、あまりはっきりとは覚えていないのだけれど、php.ini において mysqli の extension を設定しても、phpinfo() では確認できなかったので、php-mysql などのモジュールをインストールしないといけないのだろうと思い、それを試みた。けれど、結果は phpMyAdmin のときと全く同じ。全く同じものの依存関係の問題でインストール出来なかったのだと思う。

ネットを漁っていると、aptitude というコマンドを使う方法があったので、さっそくこれをインストールして試してみた。はじめに提案されたものを受け入れてお願いしてみるものの、何も変わらなかった。再度チャレンジして、はじめに提案されたものを拒否して、二番目の提案をお願いしてみた。いくつかの php- がついたものを 8.1.2 にダウングレードするという提案だった。

処理が終わってみると、結果は改善どころか php すら動かなくなってしまった。あれま!である。やはり何をやっているのかちゃんと理解していないまま、事をすすめても良い結果は得られないということだと思う。Windows の php にしろ MySQL にしろ phpMyAdmin にしろ WordPress にしろ、フォルダごともってきて、あとは少し設定ファイルをいじり、必要ならパスを通してやるだけのことで、実にシンプルでわかりやすい。自動でやってくれるのはありがたいけれど、ブラックボックスの部分が多いと、問題がおきたときに結局よくわからずバンザイとなる。勉強不足でよく知らないということがそもそもの原因なんだけれども。

php のインストールし直し

あっさりとバンザイして、php も再インストールさせた。バージョンは、たぶんこの時点での Ubuntu 22.04 デフォルトの 8.1.2。 これにより php は起動するようになり、モジュールのインストールも出来るようになった。けれど結局バージョンは 8.1.2 にダウングレードしてしまった。

WordPress の設定

WordPress のインストールは、「WordPress.org 日本語 WordPress のインストール」を見ればわかる。ただ、このページは日本語ページなのに、ダウンロードするファイルの url は英語バージョンのファイルである。そのままダウンロードすると英語になってしまうので気をつけるべし。まぁ、ただ、後で日本語版をダウンロードして上書きすれば事は済む。

あと、必要なことは WordPress をインストールしたフォルダのパーミッションの変更。これをしておかないと WordPress がファイルを扱えない。そして、Apacherewrite モジュールを有効にする必要がある。これをしておかないと、投稿の保存の時に、「更新に失敗しました。返答が正しい JSON レスポンスではありません。」のエラーが出て保存ができなかったり、サイトヘルスで「 REST APIで予期しない結果が発生しました」の表示が出たりするし、パーマリンクを設定しても、当然のこと正常に機能してはくれない

sudo a2enmod rewrite
sudo systemctl restart apache2
Bash
CopyExpand

あとがき

その後、phpMyAdmin も無事インストールすることができた。
ただし、すべてが解決したわけではない。php のバージョンは 8.1.2 のままである。さて、これはアップデートしてしまっても良いのだろうけれど・・・、と、なんだか不安ではある。しかしアップデートするにしても、その後、何日経っても apt update による対象の中には入ってはこなかった。これは Ubuntu 22.04 の php の標準のバージョンがこの時点では 8.1.2 だったからということらしい。

ならばどうして無理やりダウングレードする前は 8.1.9 だったのだろう。これに関しては、22.04 にアップグレードする前に動いていたのが 8.1.9 だったからであって、それは ppa のリポジトリ ondrej/php を登録していたからにほかならない。22.04 にアップグレードした後、一向にアップデートされなかったのは、22.04 のアップグレード時に、サードパーティが提供するリポジトリは、使わない設定にされているからである。それはアップグレードの時にしっかりと告知されていたとおり。

ゆえに、「設定」を開いて、「ソフトウェアのアップデート」ー>「他のソフトウェア」タブにおいて表示されるリストのなかにある、php の ondrej/php にチェックを入れれば、再び機能するようになってくれて、めでたく php は 8.1.9 と元に戻すことができた。

こんなに手間がかかってしまったのは、すべて、よく知らないということが原因。もっと Ubuntu のことをよく知っておかないといけない。そろそろ Windows にも見切りをつけようかとも思っていることであるし。と、さっそく Linux の本を2冊と MySQL の「詳解」と題名のついた本を図書館で借りてきたのであった。

Leave a Reply!

JavaScript is necessary to send a comment.
You can edit and delete your comment if you input a edit key.
Edit key is necessary for attesting you when you edit and delete it.
The tag of HTML cannot be used in comment.
When you comment for the first time, it is displayed after the approval of the administrator.
Because I cannot speak English so much, it takes time to answer.
Required fields are marked *.

※Please enter more than 5 characters only alphabets.
※Edit or delete are possible for 2000 days after approval.

*

♠Simplistic Comment User Editable v4.0

♠When visitors leave comments on the site this site collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.
♠This site does not use cookie when visitors leave comments and commenter edit comment.
♠This site uses Akismet to reduce spam. Learn how your comment data is processed.

Comments feed

Trackback URL : https://strix.main.jp/wp-trackback.php?p=172033

Sanbanse Funabashi
2011.01.01 sunrise

Top

スクロールさせるか画像をクリックすると元に戻ります。