su と su - の違い

後輩に訊かれたついでに、メモしておく。

タイトルの事を訊かれ、「manを見るか、ググれ」と言ったものの、

CentOS の man は分かりにくかった(´・ω・`)すまん

でも、Ubuntu の man は分かりやすい。

su はログインセッション中に別のユーザになるために用いる。
ユーザ名を指定せずに起動した場合、デフォルトではスーパーユーザの ID に変更する。
オプション引数 - を用いると、直接ログインした場合と同じ環境に初期化される。

つまり、次のようになる。

  • su

環境設定を引き継いだままrootになる。

  • su -

rootの環境設定に切り替えてrootになる。


また、rootにしかパスが通っていないコマンドが扱えるようになる。


Ubuntu の man が分かりやすかったので、Ubuntu の環境での例。

hoge@srv:~$ sudo su -
root@srv:~# 
 ↑
 ホームディレクトリに移動する
hoge@srv:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

一方、「 - 」を入力しない場合・・・

hoge@srv:~$ sudo su
root@srv:/home/hoge#
 ↑
 ホームディレクトリに移動しない
root@srv:/home/hoge# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

PHP 7.3 を --with-imap 付きでconfigureした時に発生したエラー

CentOS 7 にて、PHP 7.3 を --with-imap 付きでconfigureした時に色々とエラーが出たのでメモ。

エラー・その1

checking for utf8_mime2text signature... new
checking for U8T_DECOMPOSE... no
configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.

libc-client-devel をインストールすると解決する。

エラー・その2

checking for pam_start in -lpam... no
checking for crypt in -lcrypt... yes
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.

ライブラリが見つからないらしい。
--with-libdir=lib64 を付加すると解決する。

エラー・その3

checking for crypt in -lcrypt... yes
configure: error: This c-client library is built with Kerberos support.

      Add --with-kerberos to your configure line. Check config.log for details.

指示通りに、--with-kerberos を付加すると解決する。

エラー・その4

checking for crypt in -lcrypt... yes
configure: error: This c-client library is built with SSL support.

      Add --with-imap-ssl to your configure line. Check config.log for details.

指示通りに、--with-imap-ssl を付加すると解決する。

SDカードリーダーが故障したので買い替え

SDカードの写真をSDカードリーダーを使ってPCへ取り込もうとしたものの、認識されない。

試しに別なカードをリーダーに挿して試しても、やはり認識されない。

PCのUSBポートを変更してもダメ。

古いノートPCを出して本体にあるSDカードスロットで試したら認識された。

という事で、SDカードリーダーが故障していると判断して、買い換えることにした。

最近のリーダーはUSB3.0 にも対応しているようで、手頃な以下を購入。

バッファローの BSCR27U3BK という製品。


購入して早速SDカードを読み込んで見ると・・・無事に認識してデータを取り出せた。 USBメモリと同様、キャップを無くさないように気をつけねば・・・。 f:id:savakan:20191009194640j:plain なお、この製品は、キャップにも本体にもストラップホールはありません。 さて、使えなくなった古いSDカードリーダーは、以下の製品。 f:id:savakan:20191009194548j:plain f:id:savakan:20191009194617j:plain 2008年10月に通販で買ったものらしく、当時の価格で、税込349円(送料別)。 裏面には、「撕毀不保」と書かれたシール。 翻訳すると、「破れは保証しない」といった内容らしい。

CentOS 8.0 で dnf.log がUTCで出力される

【環境】
# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)

# rpm -qa | grep dnf
dnf-data-4.0.9.2-5.el8.noarch
python3-libdnf-0.22.5-5.el8_0.x86_64
python3-dnf-plugin-spacewalk-2.8.5-11.module_el8.0.0+180+337688dc.noarch
libdnf-0.22.5-5.el8_0.x86_64
dnf-4.0.9.2-5.el8.noarch
dnf-plugins-core-4.0.2.2-3.el8.noarch
dnf-plugin-spacewalk-2.8.5-11.module_el8.0.0+180+337688dc.noarch
python3-dnf-4.0.9.2-5.el8.noarch
python3-dnf-plugins-core-4.0.2.2-3.el8.noarch

CentOS-8は,、bootイメージから最小構成でインストール。
インストーラで、タイムゾーンJSTに指定してインストールした。


dateコマンドは、JSTで表示される。

# date
2019926日 木曜日 18:36:20 JST

dnf.log へ出力するため、dnf update する。

# dnf update
・・・略

ログを確認。UTCで出力されている。

# tail /var/log/dnf.log
2019-09-26T09:37:06Z DEBUG extras: は 20190921225703秒 から取得したメタデータを使用中
2019-09-26T09:37:07Z DDEBUG timer: sack setup: 10304 ms
2019-09-26T09:37:07Z DEBUG Completion plugin: Generating completion 
cache...
2019-09-26T09:37:07Z DEBUG --> 依存関係の解決を開始しました
2019-09-26T09:37:07Z DEBUG --> 依存関係の解決が完了しました
2019-09-26T09:37:07Z DDEBUG timer: depsolve: 117 ms
2019-09-26T09:37:07Z INFO 依存関係が解決しました。
2019-09-26T09:37:07Z INFO 行うべきことはありません。
2019-09-26T09:37:07Z INFO 完了しました!
2019-09-26T09:37:07Z DDEBUG Cleaning up.

/var/log/dnf.rpm.log や /var/log/dnf.librepo.log も同様にUTCで出力。

プラグインは使っていないので、/var/log/dnf.plugin.log は無い。

/var/log/hawkey.log はJSTで出力される模様。

設定に何かあるのかと思い、man dnf.conf で確認したけど、それっぽい設定値は見つからず。


なお、cron や secure など他のログはJSTで出力されている。

# tail /var/log/cron
Sep 26 15:01:01 cent8 run-parts[11234]: (/etc/cron.hourly) finished 0anacron
Sep 26 16:01:01 cent8 CROND[11261]: (root) CMD (run-parts /etc/cron.hourly)
Sep 26 16:01:01 cent8 run-parts[11261]: (/etc/cron.hourly) starting 0anacron
Sep 26 16:01:01 cent8 run-parts[11261]: (/etc/cron.hourly) finished 0anacron
Sep 26 17:01:01 cent8 CROND[11288]: (root) CMD (run-parts /etc/cron.hourly)
Sep 26 17:01:01 cent8 run-parts[11288]: (/etc/cron.hourly) starting 0anacron
Sep 26 17:01:01 cent8 run-parts[11288]: (/etc/cron.hourly) finished 0anacron
Sep 26 18:01:01 cent8 CROND[11321]: (root) CMD (run-parts /etc/cron.hourly)
Sep 26 18:01:01 cent8 run-parts[11321]: (/etc/cron.hourly) starting 0anacron
Sep 26 18:01:01 cent8 run-parts[11321]: (/etc/cron.hourly) finished 0anacron

2019/9 末時点で、ネット上に同様の情報がなく、対処方法も不明。

Java Update でスクリプトエラーが出る

◆環境
Windows 10 1903
Java SE8 Update 211 → Update 221 への自動更新通知


更新通知が出たので、更新を試みると次のようなエラーが発生。

f:id:savakan:20190720103923p:plain

スクリプトエラー

!このページのスクリプトでエラーが発生しました。

ライン: 1
文字: 1
エラー: ')'がありません。
コード: 0
URL:

このページのスクリプトを実行し続けますか?

はい(Y)  いいえ(N)


対応としては、Oracleのサイトからインストーラを入手して、インストール。

インストール中に、古いバージョンを削除するか尋ねられるので、予め古いバージョンを消す必要は無い。

ThinkPad SL300 のHDDをSSDに換装

4月に部屋を片付けていたら、古いノートPCが出てきた。

ThinkPad SL300 ってノートPCで、ITmedia に2008年の記事があった。
www.itmedia.co.jp

Windows Vistaだったが、暫く前に使わなくなり、遊びでUbuntuを入れたものの、そのまま片付けられていた。

f:id:savakan:20190427142650j:plain

過去の注文メールで確認すると、CPUはCore 2、メモリ2GB、HDD160GBだった。

2009年2月に買ったもので、86000円ぐらい。

f:id:savakan:20190427142704j:plain


特に故障もせずしまい込んでいたので、これはまだ使えると思い、HDDをSSDへ換装することにした。

まずは楽天SSDを発注。安定のSanDisk





やっぱりSSDは重さも軽い。 f:id:savakan:20190427142726j:plain

Thinkpadは、部品の交換が容易な構造なのが良い。

さっそくHDDを抜こうと黒いラベルを引っ張るが、相当硬い。

とにかく抜けない(´・ω・`)

諦めかけていた、その時!!!

やっぱり抜けない(´・ω・`)

滑らない軍手を持ち出して、何とか抜いた。

f:id:savakan:20190427151224j:plain f:id:savakan:20190427151255j:plain

HDDを外してSSDへ交換し、差し込んで電源を投入。

BIOSで認識したので、あとは適当なOSをインストールして再利用することにする。