- 1. 概要
- 2. ロックをはずす
- 3. 調査
- 4. オチ
1. 概要
対象のファイルは
/usr/local/etc/mail/spamassassin/local.cf
だったのですが(以降の操作は、デフォルトディレクトリを移動しています)
ci -l local.cf
しようとしたら
ci: RCS/local.cf,v: no lock set by root
言われちゃいました。
「誰か他のユーザがロックしているので、あなたはだめよ」ってなもんですな。
はて、ディレクトリから言って、「root」ユーザ以外では、ロックもできないはずなんですが・・・。
なんかの拍子にやっちまったのかな。
本ページは、下記のサイトを参考にさせていただきました。
「Novice Guide to RCS: Errors」
「rcs - コマンド (プログラム) の説明」
2. ロックをはずす
単にロックをはずすのは
rcs -u ファイル名
でいいようです。
こんな、やりとりがあります。
RCS file: RCS/ファイル名,v
Revision 1.4 is already locked by ユーザ名.
Do you want to break the lock? [ny](n): y
rcs: warning: Mail notification of broken locks is not available.
rcs: warning: Please tell `ユーザ名' why you broke the lock.
1.4 unlocked
done
リビジョン番号が、その時々で異なるのは、問題ないとして、上記3行目の問い合わせには、y Enter で答えます。
その結果、前にロックしていたユーザに、「なんでロックを解除したか、ちゃんと伝えてね」ちゅうことですね。
3. 調査
前項のように、ロックを解除しない場合。
以下、「root」ユーザ権限で。
まず、誰がロックしているか調べるには・・・。
rlog -l ファイル名
こんな感じで出力されます。
$ rlog -l local.cf
RCS file: RCS/local.cf,v
Working file: local.cf
head: 1.1
branch:
locks: strict
ユーザ名: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
----------------------------
revision 1.1 locked by: ユーザ名;
date: 2018/02/25 08:18:59; author: kitayama; state: Exp;
Initial revision
----------------------------
=============================================================================
ほんまに不思議なことだなぁ。
対処が結構大変でした。
「RCS」のディレクトリ配下と実体のオーナをいったん、ログインユーザに変えて、「ci」。
それから、「root」ユーザで、「co」しなおしました。
4. オチ
どうもこれ、同じ「root」ユーザのようでいて、そうでないことが分かりました。
以前、コミットしたときは
su
で「root」ユーザ権限を使用していましたが、最近は
sudo su
を使っているのです。
さらに、
ci
するときに「-l」つけるのが面倒で、「alias」で
ci (ci -l)
を定義しているのがまずかったようです。
まず、前者、「su」と「sudo su」は、「OWNER」が違うようです。
「su」の場合、「OWNER」が、ログインユーザのままで、「sudo su」だと、「root」ユーザになっているようです。
で、解決方法として
su
\ci ファイル名
しておいて
sudo su
\co -l ファイル名
しておけば、以降は、思い撮りに作業ができます。
|
|