Archive for the ‘PC・技術’ Category

あるソフトをインストールしようとして調べたら、通常の手順でするもの以外にSnap版(必要なものが全部まとまっているパッケージ)もあった。そのソフトはいくつかの別なソフトを使うため、インストールと設定がなかなか面倒なので、Snapなら全部一括してインストールできて、ほとんど設定しなくて済むうえに更新も自動でされて便利なので、試してみたのだが、最終的には止めた。Snapのセンスの悪さ・将来性のなさを実感したからだ。

まず、Snap版アプリをいくつか使っている際の、Snapのものだけを抽出したマウント(OSへのファイルシステムの登録)状態を見て欲しい。

$ df | grep snap | sort
/dev/loop0 91648 91648 0 100% /snap/core/6034
/dev/loop1 91648 91648 0 100% /snap/core/6130
/dev/loop2 90368 90368 0 100% /snap/core/5897
/dev/loop3 177536 177536 0 100% /snap/spotify/26
/dev/loop4 177792 177792 0 100% /snap/spotify/28
/dev/loop5 55040 55040 0 100% /snap/core18/536
/dev/loop6 35456 35456 0 100% /snap/gtk-common-themes/818
/dev/loop7 173568 173568 0 100% /snap/gimp/94
/dev/loop8 178688 178688 0 100% /snap/spotify/30
/dev/loop9 173568 173568 0 100% /snap/gimp/101

Snapは、基本部分とアプリごとにそのパッケージのファイルを仮想的なファイルシステムとしてマウントするようなのだが、アプリをたった2つ(Spotifyとgimp)しか入れてないのに、10個もマウントされている。。。それぞれのソフトが更新されるたびに、これらは増えるようだ(ディレクトリの最後の数字が増えるようだ)。普通はアプリなんて山ほど入れるが、それが全部Snapになって、それぞれが何度も更新されたら、一体どうなるのだろうか。OSは問題なく動くだろうけど、人が見た時に状態が把握できなくなってしまうだろう。Snapのマウントポイントだけならいいけど、他のものが埋もれてしまって不便になるだろう(上とは反対に、Snapのものを除外して表示すればいいが、今まではいらなかったのに毎回指定すのは手間だ)。どうして、Snapのマウントポイントは1個だけ見えるように(あるいは見えないように)しようとしなかったのだろうか?

見た目だけならまだいいが、もっと深刻なのは、それぞれのSnapパッケージは、各々のアプリが自分に必要なモジュールを全部入れていることだ。仮にアプリ間で同じモジュールがあっても共有しないようなので(共有することにすると、依存性が生まれてSnapの目指すところに反するだろう)、同じライブラリが何個も格納され、同じソフト(例: HTTPサーバ, PHP)が複数動く事態になる*。そうすると、ディスクやメモリの使用量が無駄に増えるし※(Windowsと似たような事態ではないか)、CPUの負荷だって無駄に上がるだろう。

* 日常生活に例えれば、お米だけが欲しいのに、なぜか、専用の炊飯器や米びつまで一緒に買わされるようなものだ。当然、そんなの持っているのに、「持ってないかも・合わないかも知れないから」とか言って手持ちのを使わせてくれないのだ。

※ディスク使用量については、上の一覧(3列目がサイズ(KB))を見ても分かるように、各アプリの量は少なくない。Spotifyもgimpも170MBくらいのがバージョンごとに複数あるようだ(普通のパッケージなら共通のモジュールは共有されるから、全体としてはそんなに大きくならないはずだ)。いくらストレージが大きく安くなったとはいえ、アプリを入れるたび・更新のたびに浪費するなんて止めて欲しい。そして、ディスクを多く使うってことは、使用メモリだって増えるのだ。論外もいいところだ。

更に、重複したモジュールはバージョンや設定が少しずつ違うだろうから、間違いなく悪夢を生み出すだろう。確かに、手っ取り早く使い始められて楽なのだが、使っているうちに、同じモジュールを使っているはずのアプリの動作が微妙に違っていて(例えば、Snapと同様の目的のシステムのAppImage版アプリの日本語入力はそういうことがある)、困って検索して調整する羽目になるのだ。そうでなくても、何かあって設定を調整するにしても、普通の場所にはないから、いちいち調べるのが面倒だ。その設定ファイルも、同じ名前のモジュールであっても、それを含むアプリごとに別だから、それぞれを調整する羽目になって、面倒臭いとしか言いようがない。。。 要は、Linuxの良さをぶち壊しにして、Windowsへの道を進んでいるのだが、それでいいのか??

先のことを考えず無駄ばかりの(「腐った」)システムなんて、全く許容できない。だから、通常のパッケージがあるなら、多少面倒でもなるべくSnap版は使わないことにした。

それにしても、そもそも、Linuxに派生が多過ぎるからSnapのような「全部入り」パッケージができたのだが、それすらAppImageとかFlatpakなどのような別物ができてしまっていて、まとまりのなさには全くがっかりだ。本来、OSの派生を減らせばこんな無駄なものは要らないのに、なぜ、そこに目をつぶるのだろうか。

Linuxにもクソなところはある(でも、クソなのは物じゃなくて人だ※)。

※クソなのは人だけど、クソな考えややり方で作られた物は、やっぱりクソになってしまう。結果は作者の属性には無関係と思うが、当然ながら、作者の考えには大きく影響される。

  •   0
  •   0

迷惑メールが来た時、なぜか、"unsolicited"という単語が頭に浮かぶ。これの読み方すら分からないのだがw 大昔、ネットニュースか何かで目にしたのが記憶に残っているのだろう。

近頃、それにぴったりの、まさにunsolicitedなクソメールが来たので、紹介したい。これは何というか、海外からのお馬鹿メールと違って本当にunsolicitedで頭に来たので、書くことにした。

先週、eleven-tenthsの飯塚とかいう奴(どうせロボットだろう)から、「アーティクル記事の掲載について - スポンサーシップのお願い - blog.piulento.net」という題のメールが来た。もう、この題だけで大笑いなので、放置した。だって、「アーティクル記事」って何ですか? こいつは自分で使っている「article」の意味も分からないのか? 全部日本語にしたら、「記事記事」だぜ。そんな能なしにどんなに金を積まれたって、クソ提灯記事を載せるのはまっぴらだ! そもそも、ここに広告だの他人の記事を載せるつもりは全くない。まず、そういうことを確認してから出せ。

放置して忘れていたら、昨日、そのアホがのこのことまた出して来た。「確認メール アーティクル記事の掲載について - blog.piulento.net」(最初の空白は全角)だと。勝手に出して来たメールへの返事を催促するとは、これぞまさにunsolicited mailだ。ムカつく。

こんにちは。

大変お世話になっております。
お忙しいところ恐れ入りますが、blog.piulento.netさまのウェブサイト上に記事を掲載させて頂く私からの提案を考慮されて頂いておりますでしょうか?
blog.piulento.netさまにご協力頂けると大変光栄に存じます。

何卒よろしくお願い申し上げます。

飯塚

飯塚の世話なんてしてないよ! お前の提案なんて誰が考慮するか。アホ。少しでも脳味噌があったら、返事のない意味を理解しろって感じだ(まあ、これもロボットなんだろう)。

それだけでなく、鬱陶しいので、これに書いてあったメール不要の返信("UNSUBSCRIBE")を出したら(やっぱり、出したのは馬鹿だった)、今日、株式会社もしもの松本 法子(空白は全角w これもロボットだろうから、そのまま載せる)とかいうのから「報酬アップAmazon Music Unlimited 500円→1200円、広告掲載のご相談」というのが来た。以下、見せしめのため、全文掲載する(ただし、真に受けて登録する被害者を生まないように、登録用URLは削除した)。

突然のご連絡恐れ入ります。
もしもアフィリエイトの松本法子と申します。

弊社はもしもアフィリエイトというASPを運営しております。
今回、【Amazon Music Unlimited】の報酬アップキャンペーンのお知らせをさせて頂きたく、連絡致しました。

【通常報酬の500円が1200円】に報酬アップしております。
期間は2019年5月8日までです。

Amazon Music Unlimitedは、4000万曲以上が効き放題の音楽サービスです。
Prime会員なら月額780円と、競合他社は900円代が多い為他社と比べても紹介しやすいと思います。

詳細は以下をご覧ください。(ログイン後ページ)
(URLは削除)

もしもアフィリエイトの登録は以下URLからできます。
(URLは削除)

また、弊社は振り込み手数料無料、報酬も弊社から10%上乗せしてお支払いしています。
(報酬が10000円の場合、11000円のお振込みになります。)

是非、この機会に記事作成いただき、貴サイトの成果向上にお役立てください。
またご不明点がございましたらご連絡いただければ幸いです。

何卒、宜しくお願いいたします。

-------------------------------------------
株式会社もしも
松本 法子

〒140-0002
東京都品川区東品川2丁目2-24
天王洲セントラルタワー12階
MAIL: n.matsumoto@moshimo.co.jp
URL: http://www.moshimo.co.jp/

-------------------------------------------

へえ、Amazon Music Unlimitedは、4000万曲以上が効き放題(ママ)の音楽サービスなんですか、すごいねー。どんな症状に効くのかな? そのうえ、Prime会員なら月額780円なんて安いねー(棒読み)w 更に10%も上積みなんて、そんなに儲かるなら、自分でやればいいじゃん! (どこの金利よりもいいから、マジでやればいいのに) ところで、ASPってなんだっけ?w

もしも、もしもが少しはまともなんだとしてもw、少しはサイトを読んでから出せよ。何も読まずに出して来るなんて全くの手抜きだ。それだけでunsolicitedの極みだし、何万通出しても効果なんて出ないだろう。

見事にUNSUBSCRIBEの罠に引っ掛かった感じだが、これからも来るならアドレスを変えるから別に問題ない(その点は、Googleには大変お世話になっている)。

知らねーよ! eleven-tenthsだの株式会社もしもなんて!

 

PS. 細かいことだけど、IT関係者のリテラシーを見る(というか、そもそもIT関係者かどうかを調べる)のに、全角空白・アルファベットとか半角カナは最初のフィルタにはとても良い。

  •   1
  •   0

さっき眼鏡を掃除して(鼻のパッドを固定する金具のところがひどく汚れていた)、その画像をPCに取り込もうとしたら、「通信エラー」※になった。なんとなく、以前もなった気がする。記憶はないが、画像の枚数が増えるとこうなる気がしたので、画像が余り入っていないであろう古いSDで試したら問題なかったので、SD内のファイルをPCに移動して減らすことにした。それは全く問題なくできて、無事に取り込めるようになった。ちなみに、前回の整理(移動)は2015年6月だったので、次は2022年の後半だろうか。それまでカメラは持つだろうか?

※書いた後で気付いたが、これ、メッセージが全然正しくないではないか! 「通信」とあるから、最初はUSBコネクタの接触とかPCがおかしくなったかと思ったよ。まあ、内部的には、PCと通信(画像転送)する時は、転送の下請けに丸投げして、その中でファイル一覧を作る処理があって、そこで失敗したから「駄目でした」と返されるが、頼んだ人は「何か分かんないけど、失敗しやがったか。原因を調べるのも面倒だから、適当にエラーを出しておけば、こいつ(僕)は諦めるだろう」とか思って出しているのだろう。まあ仕方ないが、ちょっとムカつくw

使用量やファイル数や前回移動したファイルなどを調べたら、SDの使用量が8GBくらい(またはファイル数が3000個くらい)になると、この問題が起こるようだ。結果的に、このデジカメ(IXY Digital 3000IS)に8GB以上のSDカードは使えないことが分かった。今のカードは16GBなので、無駄な物を買ってしまった。まあ何年も前のことだから構わない。実際、画像数が多くなると、(PTPでの)PCへの取り込みの時にえらく時間が掛かる(ファイル一覧の作成か転送が遅い)ので、実用上は(6GBというのはないから)4GBくらいが最適そうだ。

そして、残っている昔からのSDのうち1枚(赤枠)を(小さくないなら使えるかなと思って、)ちらっと見て驚いた。

昔のSD

容量が32MB(GBではない)なのだ(上段のもそれに負けず、128とか512MBだ・・・)。すっかり忘れていたが、昔はこんなに小さいものを使っていたのだ。調べたらデジカメ添付のものも32MBだったので、これはその前のカメラ(IXY Digital 900ISか30かミノルタ?)の時に買ったのかも知れない。それにしても、こんな小さい容量に一体何枚入ったというのか、甚だ疑問だ。

書いた後で気付いたのだが、元々添付されていた32MBのSDカードはどこに行ったのだろうか? 松田優作になって母に聞きたい気分だがw、もうどうしようもないので良しとする。 (18:58)

そして、上に書いたように、今のデジカメの制限を知らずに16GBのカードを買ったのは無駄だったのが残念ではあるのだが、そもそも添付品が32MBだったのに16GBのものが使えているだけでも奇跡のような気がするし、当時は良くそんな大胆なことをしたものだw カードリーダーだって2004年に買ったものが未だに使えており、その頃(SmartMediaが現役の頃と思われる)に16GBなんてカードがあったかどうか怪しいから、もう一つの奇跡のような気がした。

  •   0
  •   0

通信データ量が少ないのでいつもNAVIを試して来たのだが、以下のような欠点が見付かった。

  • [解決済み] 使わない時は地図表示モードを解除しないと(アプリ一覧で閉じても駄目)、電池が減る。
    • 地図モード中はずっとGPSを使い続けるのだろうか。
    • → 設定のアプリの「バックグラウンドアクティビティ」とモバイルデータの「バックグラウンドデータ」をoffにしていたからのようだ。両方をonに戻したら、電池消費量は正常になり(約3.5%/h)、アプリを表示していなければ、地図表示モードを解除しなくても電池は減らなくなった。バックグラウンドデータを切ると、通信失敗とみなして何度もリトライして、電池を食うのかも知れない。(1/21 15:31)
  • 屋内などGPS電波が取れない状態で地図表示させた場合には正しい現在位置が表示できない。
    • バックグラウンドアクティビティを解除しているせいか、位置情報を「端末のみ」にしているせいか。
    • 他のアプリ(GPSロガー)が継続して位置を取っているので、それが使えるはずなのに。
    • → バックグラウンドアクティビティをonにしても駄目な感じ。画面を表に出しておかないとGPSが動かないようだ。まあ、その方が省電力なので好都合ではある。次回は位置情報の設定を「高精度」に変えて試してみたい。 (1/22 16:56)
    • → 「高精度」なら、屋内で少し(結構長い)待つと位置が出るようだ。もしかすると、「端末のみ」でも待てば出るのかも知れない。でも、GPSの電波が取れない状態では無理か。そういう状態では、「高精度」では位置が出てもおかしいことが多い(全く高精度ではない)。だから、特段「高精度」にする必要はなさそうだ。Googleに位置が通知されるのは嫌だし。 (1/26 8:39)
  • 施設名を押しても情報は出ない。
    • 長押しすると住所が出るが、それを押しても住所の情報が出るだけ。
    • ここ地図は出る施設が少しある(アイコンが出ているものは情報が出るようだ)。

Googleマップに慣れているので、施設情報が出ないのは結構不便だ。昨日のドライブ中に困った。いざという時はGoogleマップを使うしかなさそうだ。

※2番目の選択肢にしていたここ地図は、無料版でもナビ(案内)ができる以外はあまり存在価値がなさそうな感じだ。また、NAVITIMEやMapionやYahoo!なども再度試したが、施設情報に関してはいつもNAVIやここ地図と同様に今ひとつだった。

  •   0
  •   0

ちょっと思い付いて、(普段使わないから全然減ってないが、いざという時のため)モバイルバッテリーを充電しようと思ったら、なぜかケーブルが挿さらなかった。見ると、バッテリーの受け口はmicro B、使おうとしていたのはCだ。サイズは似ているが違う。大量のケーブルを放り込んでいる箱を探したが、普通の(A-B)以外はA-mini Bしかなかった。

更に探したら、缶コーヒーか何かの景品だったと思われる、しょぼいケーブル(長さが15cmくらいしかない)があった。一抹の不安はあったが、他にないのでそれで充電した。日本の飲料メーカーなら、景品だって簡単に発火するようなものは出さないだろうと期待した(でも、今は全然甘いかもね)。

それにしても、確かに整理はしたが、少しは残したはずだ。きっと、知らないうちに捨ててしまったのだろうと思い、仕方ないから買おうかと通販サイトを探したら、300円くらいのがあった※。ケーブルの他にB→micro Bの変換コネクタもあったので、それなら邪魔にならないし、安い(150円くらい)からポイント利用で0円で買えると思って決めたのだが、やっぱり物を増やしたくないので、もう一度探してみた。

※別件で100円ショップに行ったら、探していたmicro USBケーブルがいろいろあった。まさに灯台下暗しだ。たまに充電に使うくらいなので、わざわざいいものを買わなくても良さそうだ。ただ、さすがにB→micro Bの変換アダプタはなかった。あれはいかにも特殊だ。でも、あれば便利なのに、ほとんど売ってないのが不思議ではある。 (13:09)

すると、あった! 古いスマフォをまとめて入れておいた箱に入っていた。ケーブルをぐちゃぐちゃに入れている箱に一緒にすると壊れたり捨てたりするとか、使う時や手放す時に素早くまとまるので好都合だと思ってそうしたのだろうが、すっかり忘れていたw 何をどこにしまったかのメモをEvernoteなどに書いておくといいだろうが、毎回書くのはどうも面倒だ。

それにしても、まったく野放図にコネクタ(下記参照)を作り出して来た連中(USB-IF)に、「どうしてこんなに多いんだ?!」と小一時間問い詰めたい。

参考: USBコネクタの種類

  • Type-A, B
  • mini Type-A, B
  • micro Type-A, B
  • USB 3.0(SuperSpeed)のType-B, micro B
  • Type-C

余談: 今のところ合計9種類だ。一見、莫大ではないように思えるが、異なる種類間を繋げる要求があり、しかも、それぞれの端にはM(プラグ)/F(ジャック)の種類もあるので、そういう変換コネクタ・ケーブルの種類は膨大になる。どういう計算をすればバリエーションの数が出るのかは、僕には分からない。(9!)2だと恐ろしい数になるが、そこまでは行かないだろう、きっと。でも(9!)×2だって72万だし、(2×9)!なんてとてつもなさそうだ・・・ まあ、部品業界への需要を生み出すという点では役立っているのか?

(15:06) 余談その2: リストを見ると、今となっては余計とも思えるminiとSuperSpeed用のコネクタがなければ、いくらかはマシだったと思う(それでも5種類は多いが)。A, B, Cだけだったらベストだが、無理だっただろう。それにしても、すぐに廃れさせられてしまった(= 半ばobsoleteになった)miniやSuperSpeed用のコネクタを出したのは全く思慮に欠けていたとしか言いようがない。SuperSpeed用のBなんて、美しさのかけらもない。おそらく、携帯機器への対応や高速化で競合に負けたくなくて泥縄的に出したのだろう。

そして、Cは便利だけどやっぱり角度(回転)は合わせなければならない。そこで、半分冗談だが、更に楽にするために、イヤフォンプラグ・ジャックのように360°どの角度でも本当に「ただ挿せ」ばいいようにできないものかと思った。そのままやると、電気では一瞬ショートする可能性があるが、光なら全く問題ない。不可能ではなさそうだ。そうすると、将来は今しきりに除け者にされているイヤフォンジャックが復活することもあって、結局、「林檎は間違っていた」と言われるかも知れない。なんてことを考えて、ほくそえんでいるw

結局、賢そうな顔(見たことないがw)しているけど、全く先見の明がないバカだったと思う。コネクタだけじゃなく、仕様だってすごく増えたじゃないか。今は、外見はCでも中が違うから調べないとちゃんと使えないとかいうこともあるらしい。これでは、我田引水的な規格をドヤ顔ででっち上げては捨てる林檎社やMS(ソフト面)と似たようなものだ。だいたい、最初のコネクタ(A, B)からして、どうして、いつも逆に挿そうとして失敗してしまう(しかも、直そうとして反対にしても挿さらず、やっぱり最初が正しかったことすら多い)形をしているのかと思う。

実は、USB関係の仕事もしたことがあるのだが、その時はこんなことは全然思いもしなかった。「USBはいい・すごい! 是非広めよう」、「レガシー(シリアルなど)は古いから駄目」とかいう純朴な気持ちだけ(= 技術馬鹿)だったしw、そもそも、仕様で逆に挿さらないことを知っていたから注意していたし、開発の時はコネクタが見やすいところに機器を置くせいもあって、挿し間違いすることはまずなかった。が、やっぱりただ作るだけでは分からないことが多いものだ。

PS. そういう点では、例えば、Ethernet(*base-TX)のモジュラーコネクタ(RJ-45)はすごく優秀だ。確かに、初期のEthernetのコネクタは2-3種類あったが、10base-Tが出てからは何十年も同じものが使い続けられている。「ギガビットだからコネクタが違う」ってことはない(と書いたら、実は違うコネクタもあるし、高速なものは中のケーブルの本数や品質が違うことはあるが、一般人が使うものは大体同じだ)。固定電話のコネクタも同様だ(そろそろ固定電話自体がなくなってしまうがw)。そもそも、例えケーブルが違ったって、上下(裏表)の向きを間違えて挿さらないことがまずないだけでもありがたい(しかも、C以外のUSBと違ってケーブルの方向(A/B)もないから、合計で4倍?ありがたい)。

あの系統(RJコネクタ)はちゃんと考えられたのだろうか? コンシューマ系と違って通信系の人は(頭が)堅い(無駄かも知れないのに何十年も先のことまで考える)から、いろいろ考えたのが(これについては)良かったかも知れないな。ちょっとかっこ悪いけど、USBだってあれにすれば良かったのに・・・

そして、「USBが出たばかりの頃は、分からないことが多かったからああなった」とは言えない。そのずっと前からRJコネクタはあったのだから。そういう経験を軽んじた業界が馬鹿だったのだ。

まあ、将来は無線になって、こういうつまらないイライラはなくなってほしい(実は、USBは昔無線の規格を出したが、なぜか失敗している。次は別の団体が別の規格でやればいいだろう。同じことの繰り返しかも知れないがw)。

PS2. USB-IFはカスだが、それよりも更にカスなのは、某国の国営だった電話会社だ。USではとっくにRJコネクタを電話機に使っていた(らしい)頃でも、延々とバラ線でネジ止めしていて、それをやるには資格が要るから、「お前らは勝手にやるな!」、「勝手な電話機も許さん!!」とのたまわっていたのだから。外圧に負けてようやくモジュラージャックを認めた頃が懐かしい。

それ以外にも、さまざまな役に立つのかどうか不明な独自規格を制定していたようで(これが「ガラパゴス化」の発端の一つかも)、ある時、現場の経験が少ない人が、特殊な工具がないと電話線を端子に接続(挿入)することらできないのを知らずに現場に行ったら大変慌てたが、偶然、古参の人が持っていて助かったという話があるかも知れないし、ないかも知れないw

PS3. とはいえ、「つまらないことでこんな長い文章を書く気力があるなら、その時間で『どこに何があるかリスト』でも書けっ」てのはごもっともですw

そして、つい、スマフォやバーコードとかでリスト作成を自動化したくなってしまうという技術馬鹿精神が出て来ると(爆)

  •   0
  •   0

僕にしては珍しく、一週間くらい書かずにいた。ある方が入院されているので、(自分の禁を犯してw)twitterでやり取りしている。その流れで細かい投稿をそっちにしていたら、こっちに書かなくても満足できていたようだ。何もしていなかった訳ではなく、以下のようなことをやっていたので、詳しくは追って書きたい。

  • 画像管理アプリのdigiKam5からXnViewMPへの移行
    • digiKamに移った時と同様、コメントとカテゴリ(メタデータ)を引き継ぐ(普通に表示できるようにする)のがかなりの手間と苦労だった。 (→ 投稿)
    • ちょっとした(でも面倒な)残件と謎があるものの、概ね終わった。
    • XnViewMPは軽くていい。が、将来もまた何かに移りそうだw
    • それでも、データ仕様(EXIF)がオープンなので、(Linuxなら)ツールを使ったりスクリプトを作ったりすれば、いくらでも移行できるのがいい。
    • ついでに、過去にし忘れていた画像のカテゴリ分け(タグ付け)もした。そのために更新ファイルが増えて、オンラインバックアップのデータ量が半端ないw
    • ただ、オンラインバックアップの履歴保存のおかげで、XnViewMPで気づかずに上書きしてしまって失われたコメントを復活できたのは良かった。ちゃんと過去の版がリストアできることが分かった。
      • 履歴は頻繁に使うものではないが、いざという時には便利だ。今は3か月までにしているが、1年くらい残すといいかも知れない(お金次第ではある)。
      • ただ、復活させたコメントはどれも大したものではなく、「そこまで頑張る意味あった?」というオチではあったw
  • スマフォの地図アプリのデータ量と電池消費率の最適探し (→ 投稿)
    • 概ね結論が出た。「いつもNAVI」がいい感じだ。ただ、電池消費率はもう少し詰めたい。
  • 生活費の削減方法の検討 (→ 投稿)
    • とりあえず、10-12万円/年(約1万円/月)の削減が目標。手段は分かり、意外に簡単そうだが、実行は難しそう。
    • 更に、年間数十万円減らす策もあるのだが、結構な手間が掛かる。
  • 大掃除 (まだ残りありw)
    • TODOの作成日を見たら、随分長ーーく掃除してなかったのだが、本当なのか? 確かに、あの埃の量はそうだったかも・・・
  • (昔の写真を整理していて思い出した)白黒画像のカラー化手法がすごい。
    • 以前にも書いたが、画像によってはすごく自然にできる。
    • どうやっているのか興味はあるが、(論文を読んで)調べる気は起こらないw
  • 地図アプリの評価にヨドバシへ散歩して
    • 有機ELテレビが紙のように薄くて感動した。「買いますか?」→「まさか!」だけどねw
      • 技術バカの極地と言えよう。気持ちは分かるけど、ほとんど意味がない。
    • (naokiさんに教えて頂いた、)無制限Wi-Fi(ポケットルータ)は大体約5千円/月で手頃だが、3日で10GBの制限が惜しい。あと、電話が使えなさそうなのも惜しい。光回線をなくせるのはもう少し先だ。
    • (モバイルデータ量をケチるために試した、)ヨドバシの無料Wi-Fiが使えなかった。いくらやっても、認証だの証明書だのの文句を言われてwebが見られなかった。プロキシのせい? 全く惜しい。

並べてみると大したことではなく、先進性も生産性のかけらもないが、いろいろおもしろくやって、いい暇つぶしではあった。この調子で50年くらい一気に過ぎると、いいかも知れないw

  •   0
  •   0

僕のモバイル回線は500MB/月というケチケチ契約なので、可能な限り通信データ量を減らす必要がある。それで、昨年末から試行錯誤してある程度の目処が立ったので、書く。

基本的には、不要なモバイルデータ通信(以下、モバイル)をせず、必要な通信でもデータ量を減らせばいいので、アプリやOS(Android)でそのように設定すればいい。

ここで問題というか疑問なのは、僕のスマフォ(AQUOS sense lite)は長い(数時間)スリープ時にWi-Fiがoffになり、その時に通信が発生するとモバイルが使われてしまうのだ(その後、Wi-Fiに切り替わるのかも知れない)。AndroidはWi-Fiは「スリープにしない」にしているのだが、なぜかoffになってしまう。検索すると、Wi-Fiにもう一個設定(Wi-Fiの自動有効化)があるはずなのだが、なぜか僕のにはない。OSのバージョンが微妙に違うのだろうか。そして、Wi-Fiを自動でoffにするのはAndroidのディープスリープ(Doze)機能なのか、AQUOS固有の省電力機能なのかと思っている※。それでも、可能な限りモバイルを使わないようにしてみた。

※更に調べたら、Androidの既知の(ずっと無視され続けている)問題のようだ。(→ 参考1, 参考2) Android 8 Oreoでは設定の体系が変わってスリープ時のWi-Fi動作の設定がなくなった(→ 参考)ために問題が隠れてしまったが、僕のにはまだ設定があるので効かないことが発覚しているのか。一旦設定を解除して再設定すれば直るという情報もあったので、それを試してみたが駄目だった。。。 → Wi-Fiをonにし続けるアプリ(例: Best WiFi Keeper)を使うといいようだが、電池消費が増えるのは望ましくない(結構矛盾した要求だw)が、どうだろうか?

(1/12 7:51) Best WiFi Keeperなど、Wi-Fiをonにし続けるアプリをいくつか試したが、どれも効果はなかった(30分から1時間でWi-Fiがoffになる)。また、Automagicで同様の機能を作ってみたが、完全にonにし続けることはできなかった(タイマー(exact timer)が指定時間間隔で起床しないようで、処理自体ができない。「電池の最適化」をoffにすればいいのかも知れないが(→ 参考)、更に電池消費が増えそうだ)。AndroidはどうしてもDozeしたいようだ。それに、Wi-Fiをonにし続けていると若干電池消費が増えて(約1.5倍になる)好ましくないので我慢することにし、モバイルを使うアプリを更に減らすことにした。

ただ、いろいろ変える前にデータ通信量を調べるアプリを入れて、どのアプリが(いつ)どのくらいモバイルを使っているかを調べ、多いものから対処する必要がある。また、変更後に効果を見る必要もある。僕は通信量チェッカーとデータモニターを併用している。基本的には前者で充分だが、たまに変なことがあるので、その時には後者でも確認する。

通信量チェッカーで見ると、予想外のアプリが通信している(→ モバイルを使っている)ことが分かった。それぞれの量は少ないのだが、そういうのをカットしていれば残量が貯まって繰り越されて、どうしても必要な時に使える(チリも積もれば山となる(キロを笑うものはメガに泣く?))ので、小まめに切るのは重要だ。それから、知らずに素行の悪いアプリを入れていて、こちらの情報を流出させる場合もあるから、そういう点でも小まめに確認して切るのは良さそうだ(この用途には、後述の通信ブロックアプリの方がいい)。そうして余計な通信を減らすと電池消費量も減る可能性があるから、なお良い。

以下に、モバイル通信データ量を減らせる可能性があることを列挙する。

  • アプリの設定
    • 「自動同期」を止める、「Wi-Fiのみ使用」にするなど。 (例: Evernote)
    • 「データ節約モード」にする。(例: Spotify)
  • Androidの設定のアプリのモバイルデータなどの設定
    • 「バックグラウンドデータ」をoffにする。
    • 「バックグラウンドアクティビティ」をoffにする。: バックグラウンドでのアプリ実行が不要な場合に設定すると、更に通信をしなくなりそう。
    • (1/21 15:33追記) アプリによっては(例: いつもNAVI)、両方またはどちらかをoffにすると電池消費率が増える場合があるので、適宜調整する必要がある。
  • データ量の少ないアプリを選ぶ。 (例: 地図アプリ)
  • データ圧縮するアプリを選ぶ。 (例: ブラウザ)
  • 通信ブロックアプリで通信を制限する。 (例: NetGuard)

一番有用なのは、不要ならアプリの「バックグラウンドデータ」をoffにすることだ。丹念に各アプリをoffにすると、大分減る。Androidを「データセーバー」に設定するのでも良さそうだ。この場合は、モバイルが必要なアプリにデータセーバー時にもモバイルを使う設定をする必要がある。

アプリごとの話を書くと、Spotifyのデータ節約モードは効く。

地図アプリのいつでもNAVIは、大抵は少ない(1回数百KB程度)のだが、たまに多い(5MBくらい)場合があって謎だ。それでも、Googleマップよりはずっと少ない(ただし、使い勝手は少し劣る)。

Evernoteもたまに数MBの通信を行う。それで自動同期を止めると、他のデバイスとの同期がうまく行かない場合があるので、そうはせずに「バックグラウンドデータ」をoffにした(これでも駄目かも知れない)。

Operaブラウザの圧縮機能は悪くはないがすごく効く訳ではないので、僕は使っていない。圧縮時は通信が一旦Opera社を通るのも、ちょっと気に入らない。

NetGuardは最後の砦にいい。アプリごとにモバイルだけでなくWi-Fiも切断できるので、意図しない通信をカットできる。それで、元々通信しないアプリでは広告がほとんど出なくなって(広告は外部から取ってくることが多いが、それが取れないため)、うれしい(→ : 最下部は広告の領域)。ただ、何となく、スリープからの復帰が遅いことがある気がするのと、VPN機能を使っているので、通信時に電池を食う可能性を心配している(未確認)。なお、同様の機能はGoogleのDatallyにもあるが、Datallyはモバイルしか設定できない。

そのような設定をして、今は、余り外で使わなければ一日3MB以下に収まるようになった。

  •   0
  •   0

先日書いたように、XnViewMPでは日本語入力ができず、OSやlibsslのバージョンによってはウインドウ内のGoogle mapsの地図表示もできない場合があるので、それぞれできるようにしたので書く。なお、XnViewMPのバージョンは0.92を、OSはLinux Mint 18.3 (x86 64bit)を想定する(Ubuntu 16.04 LTSでも同様と思われる)。

日本語入力

現象: コメントなどの入力フィールドで日本語(全/半)キーを押しても、Mozcなどの日本語変換モジュールが起動しない。

原因: XnViewMP添付のライブラリ(/opt/XnView/lib)にQt5の日本語入力関連のプラグイン(例えば/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts下にあるもの)が不足しているため。

対処: XnViewMPが不足するライブラリを参照できるようにする。

詳細

  • 基本的には、環境変数QT_PLUGIN_PATHにQt5の日本語入力関連のプラグインのディレクトリを追加すればいい。
  • しかし、/usr/bin/xnview(シェルスクリプト)の中でQT_PLUGIN_PATHに/opt/XnView/libを指定(上書き)しているので、単に設定するだけでは有効にならない。
  • そのため、QT_PLUGIN_PATHにOS本来のディレクトリとXnViewMPのディレクトリを設定するようなスクリプトを作るか、xnviewを修正すれば良い。
  • XnViewMPを起動するスクリプト例:

#!/bin/sh

export LD_LIBRARY_PATH=/opt/XnView/lib

export QT_PLUGIN_PATH="/usr/lib/x86_64-linux-gnu/qt5/plugins:\
/opt/XnView/lib"

/opt/XnView/XnView $*

  • 未確認だが、使われていないスクリプト/opt/XnView/xnview.shは設定済みのQT_PLUGIN_PATHを参照するので、それを使えばいいかも知れない(XnViewMPのディレクトリが前に来るので、駄目かも知れない)。

地図表示

現象: 位置(GPS)情報付き画像を選択し、GPSのペーンを開いても、空白のまま地図が出ない(出ることもある)。

原因: XnViewMP添付のライブラリ(/opt/XnView/lib)のQt5は古いSSLライブラリ(libssl1.0.0)を参照しているようで(→ 参照)、新しいOSやPHP 7.3をインストールしたシステムなどでは、libssl1.1がインストールされているためにlibssl1.0.0を参照できないことが多いために、地図表示が不安定になる。なお、システムにはlibssl1.0.0もインストールされているのだが、参照できない(できることもある)理由は分からない。

対処: XnViewMPがlibssl1.0.0を参照できるようにする。

詳細

  • 基本的には、環境変数LD_LIBRARY_PATHに、libssl1.0.0のライブラリのあるディレクトリを追加すればいい。libssl1.0.0のライブラリは以下である。
    • /lib/x86_64-linux-gnu/libssl.so.1.0.0
    • /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
    • /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/*
  • libssl1.0.0だけのディレクトリになっている訳ではないため、親ディレクトリ(/lib/x86_64-linux-gnuなど)をそのまま指定するのでは指定する意味がなさそうだし、XnViewMP添付のライブラリと競合するかも知れないと考え、XnViewMPの追加ライブラリ用ディレクトリを作って、その下に参照させたいライブラリへのsym-linkを作り、そのディレクトリをLD_LIBRARY_PATHに設定した。また、上述の日本語入力用に追加するQt5のプラグインも同様にsym-linkした。
  • その他は日本語入力と同様である。
  • XnViewMP用追加ライブラリディレクトリディレクトリの準備(場所は$HOME/.local/lib/XnViewとした):

cd
mkdir -p .local/lib/XnView
cd .local/lib/XnView
ln -s /lib/x86_64-linux-gnu/lib{ssl,crypto}.so.1.0.0 .
ln -s /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/* .
mkdir qt5-plugins
cd qt5-plugins
ln -s /usr/lib/x86_64-linux-gnu/qt5/\
plugins/platforminputcontexts .
cd

  • XnViewMPを起動するスクリプト例(日本語入力対応も含む):

#!/bin/sh

export LD_LIBRARY_PATH="$HOME/.local/lib/XnView:\
/opt/XnView/lib"

export QT_PLUGIN_PATH="$LD_LIBRARY_PATH"

/opt/XnView/XnView $*

※32ビット版ではライブラリのディレクトリ名が異なる(上のx86_64i386)ので、適宜読み替えること。

動作例

(1/8 9:25 わずかに修正)

 

PS. 本題とは関係ないが、XnViewMPはかなり柔軟にレイアウトをカスタマイズできるのだが、結構惜しいところがある。例えば、ファイル・画像情報のペーンの名前と値のカラム幅が変更できないので、見やすくするには幅を広くする必要がある(そうしないと、左右のスクロールが頻発する)。試行錯誤して、情報ペーンなどをまとめて下部に置いた。本当は左右どちらかの端に置きたいが、使いにくくなってしまうので仕方ない。

筆者のXnViewMPのレイアウト

とはいえ、どうも使い勝手が悪いので、やっぱり情報ペーンなどを左右に置いてみた。結局、ありきたりなレイアウトに落ち着いた感じだ。これはdigiKamにも似ている気がするから、要は馴染みのUIを変えたくないのだろう。 (1/8 9:27)

筆者のXnViewMPのレイアウト (出戻り?版)

PS2. これはもう全くの余談だが、上の2つのキャプチャ画像、幅は同じなのに大きさが全然違って見える。錯覚なんだろうか。全く不思議だ。 (1/8 20:36)

  •   0
  •   1

PCを使っていて、気付いたら空きが半分くらい(= 約16GB使用)になっており、ブラウザをFirefoxに換えたにも関わらず、想像以上に空きメモリが減るので調べたら、Spotifyやブラウザ(Vivaldi)の他にもメモリを大量に使っているアプリがあった。昨夜に分かったのは、NixNote2とdigiKam5である。まとめるため、以前から分かっていたものも合わせて、以下に示す。

  • ChromeとVivaldi: メモリをふんだんに使う作り。
  • Spotify: メモリリーク: 長時間動かすと数GBに増え続け、全く減らない。
  • NixNote2: メモリリーク: データベースのバックアップをすると1GB以上に増えて、減らない。
  • digiKam5: メモリリーク: タグでの検索(例: タグのタブを開いて、あるタグを選択する)をすると数GB程度に増えて、減らない。

対処の方針としては、別のアプリを使うか回避策を見つけるかである。

ブラウザについては、Firefoxに移ることで緩和・軽減した。Spotifyは使用量が一定以上になったら自動で再起動するようにした。

新しく見付かったNixNote2については、データベースのバックアップは頻繁には行わない(定期的なバックアップ時のみ)ので、バックアップ後に再起動するか、(NixNote2ではバックアップせず)Windows版のEvernoteでバックアップ(エクスポート)することを考えている。

同じくdigiKam5(以下、digiKam)については、(自動で再起動するために)外部からプロセスを停めると画像やDBが壊れる可能性があるので、別のアプリとして、以前検討して止めたXnViewMPを再度試した。あれから改良されたのか、今回は結構いい感じだったのだが、いくつか問題があったので以下に示す。

XnViewMPの問題(不満な点)

  1. [済] コメントなどに日本語が入力できない。
    • Qtのライブラリの問題だったので、AppImage版digiKamと同様に追加して入力できるようにした。
    • これは、今まで採用を見送っていた最大の理由である。
  2. [TODO] 画像の日付でのフィルタリングができない(日付などでの検索は可能)。
    • 元々、画像の格納ディレクトリを年月日で分けているので、この機能はほとんど使っていなかったので、大きな問題ではない。
    • 追って、改良できるか検討したい。
  3. [済] 画像内に設定されたカテゴリの反映が自動でない。
    • 新規追加したファイルのカテゴリは、それらのファイルをXnViewMPで読み込まないと反映されない。そのため、ファイルの格納場所が分からないと、カテゴリで検索できない。
    • アプリの作りの問題なので、どうするか検討中。 → 以下のようにして対応した。 (1/7 9:17) → 問題なく動作している。 (2019/1/26 15:40記)
      • 問題となっている、「格納場所が分からない新規追加したファイル」は、自作の取り込みプログラムでカメラなどから取り込んで日付のディレクトリに振り分けたものなので、取り込んだファイル一覧を作成し、それをXnViewMPに指定して起動することで反映されるようにした。なお、既存のファイルを外部プログラムでカテゴリを変更した場合の更新は、この方法ではできない。
      • 以下のような処理のスクリプトを作成し、XnViewMPのツールバーのコマンドに登録して、そのボタンを押せば自動で取り込んだ画像を反映できるようにした。その時使っているものとは別のXnViewMPのプロセスで画像DBを更新しても、ちゃんと反映された。
        1. (画像取り込みプログラム: 取り込んだファイル一覧を作成する。 → img-list.txt)
        2. XnViewMPに一覧を指定して起動する。: xnview -filelist img-list.txt
        3. 少し待ち(0.5秒程度)、XnViewMPを最小化する。
        4. XnViewMPのDBへの反映が終わるまで待ち(余裕をみて3秒程度)、XnViewMPを終了させる。
        5. ファイル一覧を削除する。
  4. [TODO] ファイル・ディレクトリ名での除外ができない。
    • 余計なファイルやディレクトリが表示されて使い勝手が悪いので、どうするか検討中。
    • なお、ファイル名の拡張子では除外可能。
  5. [済] コメントの格納フィールド(タグ)がdigiKamと違う。
    • digiKamで書いたコメントはXnViewMPの"Edit comment"では出ず、"Edit IPTC/XMP"の"Caption"に出る。
    • ただし、サムネイル一覧のラベル("Comment")には出せる。
    • 場所は違うが見られるので大きな問題ではないが、追ってどうするか検討する。
    • → XnViewMPの認識するタグにコピーして対応した。カテゴリも同様にした。 (→ 投稿: 2019/1/26 15:40記)
  6. [済] 画像内に格納された位置情報(GPS情報)で地図が表示されない(地図ペーンが空白になる)。
    • ライブラリのバージョンの問題だったので、対応した。
      • 新しいライブラリ(libssl1.1)では廃止されたと思われる、SSL2やSSL3を使っているようだ。(このままだと、将来はGoogle mapsに接続できなくなりそうだ)
      • なお、libssl1.1はPHPの7.3への更新時にインストールした。
    • なお、外部サイト(GeoHack)での表示機能は問題なく動作する。
  7. [済] 画像回転の処理・結果がdigiKamと違う?
    • (EXIF情報だけで回転させるモードの場合、)画像を(論理的に)回転させても埋め込みサムネイルは回転しないために誤解していた。 → 埋め込みサムネイルを使わない設定にして回避した。 (1/8 9:10追記) それでも駄目な場合があるので、EXIF情報だけで回転させるのは止めた。
  8. [保留] 類似画像検索や顔認識機能がない。
    • これらの機能は使っていなかったので、大きな問題ではない。
    • なお、若干機能が違うものの、類似画像検索はあった。

探すと結構多かったのだが、重要なものについては対処できた。そして、確かに問題は多いものの、XnViewMPには以下のようなメリットがあり、それがdigiKamでは実現できずずっと不満だったので、対処に手間を掛けても移行する価値は大きいと感じた。

  • 起動が高速で操作も軽い。
  • メモリ使用量がとても小さく(起動直後は300MB以下)、使用量の増加速度が小さい。
    • なお、増える場合も減る場合もあり、増減の条件はまだ分かっていない。
    • (1/8 9:10) サムネイルをキャッシュすると、表示した画像(サムネイル)数に応じてメモリ使用量が増え続けて減ることがないようだ。そのため、キャッシュを行わないようにした。
  • 良く使うディレクトリをFavorites(お気に入り)に登録できるのが、とても便利。
  • ESCキーで画像表示が閉じるなど、使い勝手がいい。
  • ウインドウのレイアウトを柔軟にカスタマイズできる。
  • マウスホイール加速への追従性はdigiKamより良い。

なお、日本語入力とGPSの地図表示の対応方法については別途投稿する予定である。

PS. XnViewMPの一番の問題は、ドキュメントやサポートがすごく貧弱なことだ。コマンドラインオプション一覧すら出ない・存在しないし、マニュアルもヘルプもなく、使い方は、想像するかwebやwikiの少ない記述やフォーラムを見るか検索するしかない。フォーラムのlibsslの件を見る限り、不具合を報告しても直ることは少なそうだ(言ってみれば、「悪魔対応」だw)。。。 まあ、それでも他のアプリ同様、自分で何とかできるから良しとしている。

ただ、これでは本当に、物好きとかプロしか使いこなせない。基本的にはいいアプリなのだから、サポートをちゃんとすればユーザーがもっと増えると思うのに、全くもったない。 (1/7 9:33)

(19:54 わずかに加筆; 1/7 9:34 加筆・修正, 15:55 わずかに加筆, 16:03 題に追加; 1/8 9:10加筆)

  •   0
  •   1

今日は、トイレの他にもう一つうまく行った。先日、思わぬ問題が見付かって仕切り直しにした、PHPのバージョンアップである。問題は、最新版PHPをインストールするためのPPA(公式パッケージ以外のソフトを手軽にインストールできる非公式パッケージ)に、PHP以外の余計なパッケージ(→ PPAのページ下部の一覧を参照)が沢山入っていたことだった※。そのPPA(以下、ondrejのPPA)を使うのは一般的なようだが、セキュリティ上のリスクが高いように思えるので避けたかった。

※今考えると、余計に思えたものはいずれかのPHPのモジュールが依存するものなのかも知れない(だから、全部のPHPモジュールをインストールした時には余計なものがなくなるのではないか)。そうならなおさら、自分が使うモジュールに必要なものだけをインストール・更新対象にしたい。

それで、今日までは、OS(Linux Mint)を更新してそれ(公式パッケージ)に含まれるPHPに更新することを考えていたのだが、良く考えたら、最新のOSに含まれるPHPは最新ではないため、すぐにサポート期間が切れてしまうことに気付いた。以下にその関係を示す。

Linux MintとPHPのサポート期間の関係

  • Linux Mint (→ 参照)
    • 18.3(現在使っている版): 2021/4まで
    • 19.1(最新版): 2023/4まで
  • PHP (→ 参照)
    • 7.2(Linux Mint 19.1(Ubuntu 16 LTS)のパッケージで入るもの): 2020/11末まで
    • 7.3(最新版): 2021/12頭まで

OSをLinux Mint 19.1に更新するとPHPは(最新の1つ前の)7.2にできるが、それは来年終わり頃にサポート期間切れになってしまうので、また今回のような状況になる。しかも、それがOSの期限切れまでに何度も起こるので、そのたびに必要もないのにOSを更新することになって無駄だ。それで、代わりの案を考えたら、以下の2とおりになった。

  1. ondrejのPPAの中のPHPだけを抜き出して使う。
  2. 自分でPHPをビルドしてインストールする。

2の自分でビルドするのはさまざまな問題や手間がありそうなので、却下した。1の、PPAからPHPだけを抜き出して使う方法を考えたところ、以下のいくつかの方法が浮かんだ。

  1. OSの設定を調整して、ondrejのPPA中のPHP以外のものを無効にして、PHPだけがインストールできるようにする。 (→ 参考1, 参考2)
  2. ondrejのPPAからPHPだけを抜き出した、「自分のPPA」を作る。 (→ 参考1, 参考2)
  3. ondrejのPPAのサイトからPHPのパッケージファイル(deb)だけをダウンロードして、インストールする。その処理を自動化する。

1番目はPinning(aptの設定ファイル中にPinという設定を記述する)でできそうだが、間違えると、前回のように厄介なことになりそうだ。2番目は、抜き出すだけでなく、抜き出したものをパッケージにするための情報を再度作成する必要があって面倒そうだ。3番目は一見簡単で、やればできるのだが、自動処理するにはOSのパッケージのインストールの仕組みを自分で作るようなものなので、間違いやトラブルのリスクが増えそうだ。

結局、1番目(Pinning)を採用することにした。試行錯誤でシステムを壊さないように、仮想環境で試した。すると、意外にうまく行った。以下のような手順で設定すれば良い。

  1. ondrejのPPAをOSに追加する。
  2. aptの設定ファイルを修正する。(→ /etc/apt/preferences.d/ondrej-php.pref)
  3. PHP 7.3のインストールに必要な依存モジュールを調べて、上記設定ファイルに追加する。
  4. 余計なパッケージがインストール対象になっていないか確認する。

1は、検索するとすぐに出て来る方法で、例えば以下である。

sudo sh -c "export LC_ALL=C.UTF-8; \
add-apt-repository ppa:ondrej/php"

2は、参考ページを参考にして、以下のようにした。

/etc/apt/preferences.d/ondrej-php.pref:

# ondrejのPPA中の全パッケージを無効にする。
Package: *
Pin: release o=LP-PPA-ondrej-php
Pin-Priority: -1

# ondrejのPPAのPHP7.3のパッケージを有効にする。
Package: php7.3*
Pin: release o=LP-PPA-ondrej-php
# 公式パッケージがない時だけ、ondrejのPPAのパッケージを使う。

Pin-Priority: 400

# ondrejのPPAのPHP7.3が依存するパッケージだけを有効にする(下線部は自分が使うPHPのモジュールによって変わる)。
Package: libargon2* libpcre2* libsodium2* libssl1*
Pin: release o=LP-PPA-ondrej-php
# 他にパッケージがない時だけ、ondrejのPPAのパッケージを使う。

Pin-Priority: 50

なお、上のPin指定の"o="に指定する名前(提供者名)は、1の後に以下のコマンドを実行すれば確認できる。

apt-cache policy | grep -i php | grep "o="

3の追加パッケージを調べるには、必要なPHPのモジュールをaptitudeに指定して、インストールをシミュレートするモード(-sを指定)で実行する。以下にコマンドの例を示す。

sudo aptitude -s install php7.3 \
php7.3-{common,cli,cgi,curl,mbstring,wddx,\
xml,xmlreader,xmlwriter,xsl,opcache,json,\
readline,exif,posix}

上のコマンドを実行すると、依存するパッケージlibargon2-0, libpcre2-8-0, libsodium23, libssl1.1が不足していると出るので、ondrej-php.prefの3番目のPackage指定に追加する(下線部。指定にはワイルドカードが使用可能)。

4の、余計なパッケージがインストール対象でないか確認するには、apt-cacheコマンドやアップデートマネージャーを用いる。以下にapt-cacheコマンドでの確認の例を示す。

apt-cache policy | grep -i php | grep -v sury
apt-cache policy | grep -vi php | grep sury

1番目はPPAの説明が出ればOK、2番目は追加した依存パッケージのみ出ればOKである。

実際のPHPのインストールは、3のコマンドに-sを指定せずに実行すれば良い(私はインストールの前に現在のPHPをアンインストールした)。インストール後に、PHPのバージョン(php -v)やモジュール(php -m)を調べて、想定どおりならOKである。その後、既存のプログラムの動作確認や調整などを行う。

書くと長くなったが、意外に簡単にPHP 7.3に更新することができた。作業時間(事前検討などは含まず)は30分程度だった。これで、再来年の頭までは(大きな問題がない限り、)今のOSでも行けそうだ。

PS. OSをバージョンアップする際は、設定ファイルのPackageで追加したモジュール(libargon2など)はおそらくOSに含まれているだろうから、バージョンアップの前に設定を調整(php7.3*だけにする)した方が良さそうだ(バージョンアップ後でも大丈夫だと思う)。 ← その後、PHP7.3や依存モジュールのPin-Priorityを下げることで、仮に公式パッケージが出た場合やOSのバージョンアップ後には公式のものを優先させる設定にした。

(1/5 6:21 ondrej-php.prefの設定を改良)

  •   0
  •   0