最近Sambaをインストールし、/etc/samba/smb.conf
ファイルを台無しにしました。元の構成に戻すにはどうすればよいですか?
(#ubuntuから取得した)最良の方法はこれを行うことです:
dpkg-reconfigure <package>
この場合、それは
dpkg-reconfigure samba-common
編集済み:
これを サーバー障害の質問 で見つけました。 dpkg-reconfigure foo
が機能しない場合は、次を使用してください。
壊れた構成ファイルを削除するか、名前を変更します。
Sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
dpkg
から交換をリクエストします。
Sudo dpkg -i --force-confmiss /path/to/samba-common.deb
これにより、dpkg
は、欠落している構成ファイルを.debの構成ファイルに置き換えるように指示されます。元のパッケージ.debは/var/cache/apt/archives
にある場合があります。または、ディストリビューションのリポジトリから同じバージョンの新しいコピーを使用することもできます。
dpkg -i --force-confnew foo.deb
これにより、dpkg
に既存の構成ファイルを.debの構成ファイルで上書きするように指示されます。元のパッケージ.debは/var/cache/apt/archives
にある場合があります。または、ディストリビューションのリポジトリから同じバージョンの新しいコピーを使用することもできます。
簡単な答え:/usr/share/samba/smb.conf
はsmb.confファイルの元のバージョンです。
どのパッケージでもこの状況に直面したとき、私がすることは次のいずれかです。
元のバージョンのバックアップファイルを確認してくださいエディタから。私は通常foo~
ファイルを残すEmacsを使用し、元のバージョンが常にfoo.~1~
になるように数値バージョン管理オプションを設定しました。しかし、おそらくあなたはそれを他の方法で行ったか、他のエディターを使用しました。まだ行っていない場合は、エディターの構成を確認して、この機能をオンにすることを検討してください。入るのは良い習慣です。
パッケージを再構成しますdpkg-reconfigure PACKAGENAME
を使用します。時々これはトリックをします。私の経験では、それが機能することはめったにありません。パッケージが構成ファイルを作成する方法によって異なります。
パッケージをパージして再インストールします(apt-get purge packagename
の後にapt-get install packagename
を付けます)。これは常に機能するはずです。
極端な場合、パッケージを再インストールする前に、パージした後、手動で設定ファイルを探して削除する必要がありますが、これはまれです。ただし、これにより、パッケージの他のデータや構成ファイルが削除され、常に受け入れられるとは限りません。
パッケージのソースコードをダウンロード(apt-get source foo
)そして、元の設定ファイルがそこにファイルとして存在するかどうかを確認します。ただし、構成ファイルが事前に存在しておらず、インストール時にパッケージのインストール後のスクリプトによって作成されている可能性があります。
パッケージのpostinstスクリプトを確認してください(/var/lib/dpkg/info/foo.postinst
)構成ファイルを作成する場所とその方法を確認してください。次に、プロセスを手動で繰り返してみてください。これは少し手間がかかり、必ずしも簡単ではありません。
dpkg-reconfigure <package>
は、デフォルトでは変更されたconfファイルを変更しません。
Aptキャッシュにまだパッケージがある場合は、おそらくこれを行う最も簡単な方法は、
dpgk -i --force-confask /var/cache/apt/archives/<package file name>
ここで、パッケージファイル名は通常<package name>_<version>.deb
のようなものです(タブ補完を使用するだけです)。これはapt-upgradeと同じプロセスを実行し、変更されたconfファイルが見つかるたびに何をしたいかを尋ねます。すべてのプロンプトでN
と入力するだけです。 dpkgは、ファイル名の末尾に.dpkg-dist
が付いたconfファイルのパッケージバージョンをインストールします。次に、vimdiff
またはその他のマージツールを使用して違いを比較し、読み取りconfファイルを変更できます。
次のように、元のsmb.conf
構成ファイルを復元できます。
# cp /usr/share/samba/smb.conf /etc/samba/smb.conf
# dpkg-reconfigure samba-common
これは基本的に、元のパッケージのインストールプロセスが(Debian Squeezeで)行うことです。
これにより、現在のsmb.conf
が上書きされるため、失いたくない場合は、最初にバックアップを作成してください。
Debを抽出して、元のファイルを取得できます。
ar p packagename.deb data.tar.gz | tar zx
Debパッケージの内容を再ダウンロードして抽出できます