あんまり適当なことを鵜呑みにしたり書いたりしちゃダメです。
一般的な Unix システムでは、ユーザの $HOME のドットファイルは
adduser/useradd などのコマンドがユーザの追加、ホームディレクトリの
作成の後に /etc/skel/ 以下にあるファイルをコピーしてきます。
しかし Cygwin では、ユーザの追加は Windows 側で管理されるので、
対話シェルを最初に起動したときに、ユーザのホームディレクトリが
存在しない場合に限って、ディレクトリの作成と /etc/skel/ 以下の
ファイルのコピーが行われます。
この動きは /etc/profile に書いてあります。
base-files パッケージ version 3.7-1 の /etc/profile から該当部分の
コメントを引用すると、
# IF THIS FILE IS MODIFIED IT WILL NOT BE UPDATED BY THE CYGWIN
# SETUP PROGRAM. IT BECOMES YOUR RESPONSIBILITY.
とありますので、システムに /etc/profile が存在し、管理者によって
変更されていれば、Cygwin のセットアップによって上書きされることは
ないので、/etc/profile がある状態で base-files をインストールまたは
アップデートすると、上記の動作は保証されません。
(システムの管理者による記述内容が優先されるので)
この場合でも、base-files パッケージのデフォルトは /etc/defaults/etc/profile
にあるので、必要に応じてコピーすればよいでしょう。
さらに、$HOME を作成し、/etc/skel/ 以下のファイルをコピーする
手前のコメントでは、
# Here is how HOME is set, in order of priority, when starting from Windows
# 1) From existing HOME in the Windows environment, translated to a Posix path
# 2) from /etc/passwd, if there is an entry with a non empty directory field
# 3) from HOMEDRIVE/HOMEPATH
# 4) / (root)
とありますので、Windows の環境変数として HOME を定義しており、
かつそのディレクトリが存在すれば、ディレクトリの作成とドットファイルの
コピーは行われません。また、/etc/passwd にホームディレクトリが設定されて
いなければ、3) にあるように Windows の HOMEDRIVE/HOMEPATH が使われる
(通常、これは HOMEDRIVE=C HOMEPATH=\Documents and Settinges\<ログオンユーザ名>)
ので、常にディレクトリが存在し、ドットファイルのコピーは行われません。
上記のことから、「ドットファイルが自動的に作成されないのですが」という
疑問については、/etc/passwd をきちんと作っていないか、Windows の環境変数で
HOME を定義している、もしくはなにも設定していないためでしょう、
という回答になります。
じゃあどうするの、という点については、動作と理由については上記で網羅してあるので、
自分で考えてください。
|