情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | 編集

カレントディレクトリを右クリックで指定して、コマンドプロンプトを簡単便利に起動する このエントリーを含むはてなブックマーク

今から書くことはいまいちなんですが、せっかく途中まで書いていたのでメモ。いまいちだと思った理由はレジストリを使うカッコいい方法を発見してしまったから→「How to open an elevated Command Prompt from the folder context menu in Windows Vista

スポンサーサイト
Windows | コメント:0 | トラックバック:0 | 編集

Shell変更メモ(確認&変更&一覧) このエントリーを含むはてなブックマーク

いつもとちがうShell

FreeBSDにリモートでログインすると、違和感が。それは、シェルが普段使っていない「tcsh」だったからです。

今回は、tcshをbashにとりあえず変えさせてもらったときのメモtcshはとっても高性能らしいんですけどねごめんなさい。

Shellが違うと

Shellが違うと、ログインした直後に表示される文字(プロンプト)の雰囲気が違います。たとえば、bashだと

[user@host ~]$

こんな感じです。先ほど言った「tcsh」だと

>

こんだけです。とはいえ、プロンプトは設定で変えられるので確実というわけでもないです。

現在のshellの確認方法

以下のようなコマンドで確認できます。以下は、tcshの場合。

> echo $SHELL
/bin/tcsh
> echo $shell
/bin/tcsh
> echo $version
tcsh 6.17.00 (Astron) 2009-07-10 (i386-interl-FreeBSD) options
wide,nls,dl,al,kan,sm,rh,color,filec
> echo $0
-tcsh
> ps $$
  PID  TT  STAT      TIME COMMAND
44998   7  Ss     0:00.05 -tcsh (tcsh)

現在まさに使っているシェルを確認するためには、一番下の「ps $$」がおすすめ。

シェルの変え方

肝心のshellの変え方メモ。tcshからbashに変更する手順です。まず、

> which bash
/usr/local/bin/bash

で、bashの場所が分かります。そうしたら、次のようにします。

> chsh -s /usr/local/bin/bash
Password:
chsh: user information updated

これで完了しました。あとはログインし直したりすればOK。

シェル一覧

ちなみに、使えるシェルの一覧は次のようにして取得できます。

> cat /etc/shells
# $FreeBSD: src/etc/shells,v 1.5.36.1.2.1 2009/10/25 01:10:29 kensmith Exp $
#
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/sh
/bin/csh
/bin/tcsh
/usr/local/bin/zsh
/usr/local/bin/rzsh
/usr/local/bin/bash
/usr/local/bin/rbash

今のは、FreeBSDで、CentOSでやってみたらこんな感じ。

[user@host ~]$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh

メモ終わり。

参考資料

入門csh & tcsh詳解 シェルスクリプト入門bashbashクックブックFrom Bash to Z Shellzsh最強シェル入門

Linux | コメント:0 | トラックバック:0 | 編集

BIND導入記06 動作確認編 このエントリーを含むはてなブックマーク

前回まででBINDの起動が終了しました。続いて、BIND正しく動作しているかの確認を行います。

動作確認環境

今回は、BINDサーバの動作確認をWindowsから行います。今回利用したのはWindows Vistaですが、ほかでもたいし変わりません。

DNSサーバの指定方法

DNSサーバは、DHCPを利用している環境では、プライベートIPアドレスの割り当てと同時に指定されるので、DNSサーバの指定を変更するためには、DHCPを行っているサーバもしくはブロードバンドルータの設定を変更します。

しかし、ルータの再起動が必要になるなど、動作確認で利用するにはめんどくさい方法です。

そこで今回は、特定のWindows PCのDNSサーバを直接指定することにします。

利用するDNSサーバを直接指定する

まず、コントロールパネルもしくはスタートから、「ネットワーク接続(コントロールパネル>ネットワークとインターネト>ネットワーク接続)」を開きます。そして、利用している回線(普通はローカルエリア接続もしくはワイヤレスネットワーク接続)を右クリックし、「状態」を表示します。状態表示の中の「プロパティ」をクリックし、プロパティを表示します。

続いて、「この接続は次の項目を使用します」の中から、「インターネット プロトコル バージョン4(TCP/IPv4)」を選択した状態で「プロパティ(R)」をクリックします。

「全般>次のDNSサーバーのアドレスを使う(E)」を選択して、「優先DNSサーバ」に、BINDをインストールしたサーバのIPアドレスを指定します。指定したらOKをクリックし、開いていたウィンドウを閉じて設定完了です。

この設定を戻すときは、「DNSサーバのアドレスを自動的に取得する」を選択し直せばOKです。

DNSキャッシュをフラッシュ(消去)する

動作確認をする前に、今までのDNSサーバの履歴があると問題解決に不都合が生じることがあるので、履歴(キャッシュ)を消去します。

コマンドプロンプトを右クリックで「管理者として実行」を選択して起動します。

起動したら、

>ipconfig /flushdns
を実行します。これで
DNS リゾルバ キャッシュは正常にフラッシュされました。
と表示されれば、キャッシュが消去されたことになります。

登録したアドレスが取得できるか確認する

引き続きコマンドプロンプトを利用します。example.netに192.168.1.21というIPアドレスを登録していたとすると、コマンドプロンプトで、

>nslookup example.net
を実行し、
サーバー: example.net
Address: 192.168.1.21

名前: example.net
Address: 192.168.1.21
と表示されればOKです。登録されていたIPアドレスを正しく取得できました。

登録されていないアドレスが取得できるか確認する

登録したアドレスexample.net以外も取得できるはずなので、コマンドプロンプトで

>nslookup yahoo.co.jp
を実行し、ただしくIPアドレスが返ってくることを確認してください。

結果

以上の動作確認が完了すれば、BINDサーバをとりあえず正しく設定できていることになります。

次回

ここまででインストール・設定・起動・動作確認までが終了しましたが、そうそううまくいきません。自分がそうでした。

そこで、BINDをインストールするに当たってつまづいたポイントを以降の記事で紹介しておこうと思います。

BIND9によるDNSサーバ構築
DNS & BINDクックブック―ネームサーバ管理者のためのレシピ集
DNS & BIND 第5版

BIND | コメント:0 | トラックバック:0 | 編集

regsvr32の「依存.DLLファイルに問題がないかを調べてください」について(3) このエントリーを含むはてなブックマーク

前回は、DLLが参照しているDLLの一覧をdumpbin.exeを利用して取得しました。

そのDLLは、

  • KERNEL32.dll
  • GDI32.dll
  • ADVAPI32.dll
  • ole32.dll
  • OLEAUT32.dll
  • SHLWAPI32.dll
  • MSVCR70.dll
  • RPCRT4.dll
であり、この中に問題があるDLLが含まれていることになります(前々回参照)。

では、ささっと調べてみましょう。基本的な調べ型は、まずWeb検索ですが、今回は、問題があるDLLをまず1つ見つければいいので、あらっぽく調べます。

system32フォルダ

system32フォルダ内にDLLがあれば、とりあえず利用可能になっていると考えられます。 実際、

  • MSVCR70.dll
以外はすべてsystem32フォルダ内部にありました。

MSVCR70.dll

msvcr70.dllは、Visual C++ version 7.0 用のdllです。ちょっと古いです。

msvcr70.dllは、BANG.ROや、DLL-files.comNODEVICE.jpなど、多くのサイトからダウンロードできます。信頼できるサイトからダウンロードしましょう。また、普通はソフトウェアに付属しています。

たねあかし

実は、RealThumb.dllのreadme.txtには、

---------------
Troubleshooting
---------------
When installing the program, you may get the message "LoadLibrary("RealThumb.dll") failed - The specified module could not be found." This message means that the computer is missing a DLL, most likely MSVCR70.DLL (Microsoft Visual C++ 7.0 Runtime Library). This file should be in C:\WINDOWS\SYSTEM32. If you do not already have it, you can download a copy from . Copy it to the directory, then try installing again as above.
と書かれており、msvcr70.dllをsystem32フォルダにコピーして利用するように書かれています。今回の記事では、あえてこのような表記がなかったもしくは見つけられなかった場合などを含めて、前々回紹介したようなエラーに出くわしたときにどうするべきかを記述しました。

MSVCR70.dllをSystem32フォルダへ

いよいよ終盤。MSVCR70.dllをDownloadしたら、System32フォルダへコピーします。

そして、もう一度

C:\Wiondows\system32>regsvr32 RealThumb.dll
を実行すると、
RealThumb.dll の DllRegisterServer は成功しました。
と表示されて、無事成功しました。めでたしめでたし。

実は

実は、regsvr32的には成功したのですが、サムネイル表示がされませんでした。残念。

おわりに

今回は記事3回に渡って、RealThumb.dllを題材に、dllが利用するdllを調べる方法について説明しました。dllだけではなく、exeが利用するdllも同様に調べられるので、なにか問題が発生したときには、ぜひ試してみてください。

Windowsダンプの極意 エラーが発生したら、まずダンプ解析!
Windowsデバッグの極意 ツールを使いこなして、バグハント!
Debug Hacks -デバッグを極めるテクニック&ツール

Windows | コメント:0 | トラックバック:0 | 編集

regsvr32の「依存.DLLファイルに問題がないかを調べてください」について(2) このエントリーを含むはてなブックマーク

今回は、「regsvr32の「依存.DLLファイルに問題がないかを調べてください」について(1)」の続きで、DLLが利用しているDLLを調べる方法についてとりあげます。

詳細は前回の記事参照と言うことで、今回はとにかくRealThumb.dllが参照しているdllを特定することにします。

dumpbin.exe

今回は、dumpbin.exeを利用します。Visual Studioに付属するツールで、Visual Studio の無償版に付属するかは不明です。

dumpbin.exeは、

"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\dumpbin.exe"
(Windows Vista SP2, Visual Studio 2008)
にあります。

dumpbin.exeをコマンドプロンプトから実行してみる

では、実行してみましょう。コマンドプロンプトから、とりあえず

C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\dumpbin.exe /?
と実行して、dumpbin.exeのオプション一覧の参照しようとすると、

link.exe - コンポーネントが見つかりません

mspdb80.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。

というエラーが発生した後、Microsoft Incremental Linkerは動作を停止しましたと表示されてしまい、結果としてdumpbin.exeが実行できません

dumpbin.exeの正しい利用方法

このように、dumpbin.exeは、コマンドプロンプトから実行しようとすると、失敗します。

そのため、コマンドプロンプトからではなく、Visual Studio に付属するVisual Studio 用のコマンドプロンプトを利用してください。すべてのプログラム>Microsoft Visual Studio 2008>Tools>Visual Studio 2008 コマンドプロンプトから起動できます。

ここから余談。下の「DLLが参照しているDLLを調べる」へどうぞ。

たとえば、Visual Studio 2008だと、「Visual Studio 2008 コマンド プロンプト」は、

C:\Windows\System32\cmd.exe
にあります。

お気づきの通り、実態は普通のコマンドプロンプトです。実は、スタートメニューのすべてのプログラムからMicrosoft Visual Studio 2008のフォルダのToolsフォルダにある「Visual Studio 2008 コマンドプロンプト」から起動できるのですが、実際は、

%comspec% /k ""C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"" x86
というコマンドでコマンドプロンプトを起動しているに過ぎません%comspec%は実行ファイルである「C:\Windows\system32\cmd.exe」に展開されます。

ここで、cmd.exeの/kオプションは、続くダブルクオテーションで与えられた引数をコマンドとして実行するオプションです。

つまりこのコマンドでは、vcvarsall.batがx86という引数で実行されます。

vcvarsall.batの内部では今回の引数x86だけではなく、amd64、x64、ia64、x86_amd64、x86_ia64を引数として受け付け、引数に応じたbatファイルを呼び出します。

x86の場合は、vcvars32.batC:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.batを呼び出し、さらにvcvars32.batがvsvars32.batC:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.batを呼び出します。

このvsvars32.batの内部で必要な変数を登録しています。変数が登録されたおかげでdumpbin.exeが正しく動くcmd.exeが起動されているわけですね。

ちょっと余談でしたが、とにかくdumpbin.exeを利用するときは、Visual Studio コマンドプロンプトから実行してください。

DLLが参照しているDLLを調べる

ついに、本題です。前述の通り、Visual Studio 2008 コマンドプロンプトを起動して、

C:\(略)\VC>bin\dumpbin.exe /dependents C:\Windows\system32\RealThumb.dll
と実行します。すると、
Microsoft (R) COFF/PE Dumper Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file C:\Windows\system32\RealThumb.dll

File Type: DLL

  Image has the following dependencies:

    KERNEL32.dll
    USER32.dll
    GDI32.dll
    ADVAPI32.dll
    ole32.dll
    OLEAUT32.dll
    SHLWAPI.dll
    MSVCR70.dll
    RPCRT4.dll

  Summary

        1000 .data
        1000 .orpc
        3000 .rdata
        1000 .reloc
        4000 .rsrc
        8000 .text
と表示されて、
  • KERNEL32.dll
  • GDI32.dll
  • ADVAPI32.dll
  • ole32.dll
  • OLEAUT32.dll
  • SHLWAPI32.dll
  • MSVCR70.dll
  • RPCRT4.dll
が、RealThumb.dllが参照しているDLLということが分かりました。

次回は、このDLLたちの正体を探ります。

Windowsダンプの極意 エラーが発生したら、まずダンプ解析!
Windowsデバッグの極意 ツールを使いこなして、バグハント!
Debug Hacks -デバッグを極めるテクニック&ツール

Visual Studio | コメント:0 | トラックバック:0 | 編集
 | HOME |  OLD >>
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。