Installing from Source

ソースコードからのインストール

Generally speaking, you should avoid installing from source. Many operating systems provide package managers that will allow you to download and install CouchDB with a single command. These package managers usually take care of setting things up correctly, handling security, and making sure that the CouchDB database is started and stopped correctly by your system. The first few appendixes showed you how to install CouchDB packages for Unix-like, Mac OS X, and Windows operating systems. If you are unable to follow those instructions, or you need to install by hand for other reasons, this chapter is for you.

一般的に言って、ソースコードからのインストールは避けるべきです。多くのオペレーティングシステムではパッケージマネージャーが提供されていて、それによって1つのコマンドでCouchDBをダウンロードして、インストールすることができるようになっています。これらのパッケージマネージャーは通常、物事を正しくセットアップし、セキュリティを扱い、CouchDBがあなたのシステムによって正しく起動し、停止することを確実にしてくれます。最初の数個の付録に、CouchDBのパッケージをUnix系、Mac OS X、Windowsオペレーティングシステムでインストールする方法が示されています。もし、それらの手順に従うことができなかったり、他の理由で手でインストールする必要があったりするのであれば、この章はあなたのためにあります。

Dependencies

依存関係

To build and install CouchDB, you will need to install a collection of other software that CouchDB depends on. Without this software properly installed on your system, CouchDB will refuse to work. You’ll need to download and install the following:

CouchDBをビルドしてインストールするには、CouchDBの依存する他のソフトウェアのコレクションをインストールする必要があります。これらのソフトウェアがあなたのシステムに適切にインストールされていなければ、CouchDBは動作しません。以下のソフトウェアをダウンロードしてインストールする必要があります。

It is recommended that you install Erlang OTP R12B-5 or above if possible.

Erlang OTPについては、R12B-5か可能であればそれ以上のバージョンをインストールすることをお勧めします。

Each of these software packages should provide custom installation instructions, either on the website or in the archive you download. If you’re lucky, however, you may be able to use a package manager to install these dependencies.

それぞれのソフトウェアパッケージには、ウェブサイト上かあなたがダウンロードしたアーカイブの中に、それぞれのインストール手順があるはずです。しかしながら、もし運が良ければ、パッケージマネージャーを使ってそれらの依存するパッケージをインストールすることができるかも知れません。

Debian-Based (Including Ubuntu) Systems

Ubuntuを含むDebianベースのシステム

You can install the dependencies by running:

次のコマンドを実行して、依存するパッケージをインストールします。

apt-get install build-essential erlang libicu-dev libmozjs-dev libcurl4-openssl-dev

If you get an error about any of these packages, be sure to check for the current version offered by your distribution. It may be the case that a newer version has been released and the package name has been changed. For example, you can search for the newest ICU package by running:

もし、これらのパッケージのどれかについてエラーが発生するのであれば、使用しているディストリビューションの提供している現在のバージョンを確認してください。新しいバージョンがリリースされていて、パッケージの名前が変わっている場合もあります。例えば、次のコマンドを実行して、最新のICUパッケージを検索します。

apt-cache search libicu

Select and install the highest version from the list available.

表示されたリストから最新のバージョンを選択し、インストールします。

Mac OS X

You will need to install the Xcode Tools metapackage by running:

次のコマンドを実行し、Xcode Toolsメタパッケージをインストールする必要があります。

open /Applications/Installers/Xcode\ Tools/XcodeTools.mpkg

If this is unavailable on your system, you will need to install it from your Mac OS X installation CD. Alternatively, you can download a copy.

もし、これがあなたのシステムでは使えないのであれば、あなたのMac OS XインストールCDからインストールする必要があります。代わりに、ダウンロードすることもできます。

You can then install the other dependencies using MacPorts by running:

その後、次のコマンドを実行し、MacPortsでその他の依存するパッケージをインストールします。

port install icu erlang spidermonkey curl

See Appendix B, Installing on Mac OS X for more details.

詳細については、付録B、Mac OS Xへのインストールを参照してください。

Installing

インストール

Once you have installed all of the dependencies, you should download a copy of the CouchDB source. This should give you an archive that you’ll need to unpack. Open up a terminal and change directory to your newly unpacked archive.

すべての依存するパッケージがインストールできたら、CouchDBのソースコードをダウンロードします。これはアーカイブですので、展開する必要があります。ターミナルを開き、新しい展開されたアーカイブのディレクトリに移動します。

Configure the source by running:

次のコマンドを実行し、ソースコードを設定します。

./configure

We’re going to be installing CouchDB into /usr/local, which is the default location for user-installed software. A ton of options are available for this command, and you can customize everything from the installation location, such as your home directory, to the location of your Erlang or SpiderMonkey installation.

私たちはCouchDBを/usr/localにインストールしようとしていますが、これはユーザーがインストールするソフトウェアのデフォルトの場所です。このコマンドでは大量のオプションが利用可能であり、インストールする場所をあなたのホームディレクトリにすることから、あなたがErlangやSpiderMonkeyをインストールした場所の指定まで、すべてをカスタマイズすることができます。

To see what’s available, you can run:

何が利用可能かを表示するには、次のコマンドを実行します。

./configure --help

Generally, you can ignore this step if you didn’t get any errors the first time you ran it. You’ll only need to pass extra options if your setup is a bit weird and the script is having trouble finding one of the dependencies you installed in the last section.

一般的には、最初に実行したときに何もエラーが発生しなかったのであれば、このステップは無視することができます。あなたのセットアップが少し変わっていて、あなたが直前のセクションでインストールした依存するパッケージをスクリプトが探すときに問題が発生した場合にのみ、追加のオプションを設定する必要があります。

If everything was successful, you should see the following message:

もし、すべてが成功したのであれば、次のメッセージが表示されるはずです。

You have configured Apache CouchDB, time to relax.

Relax.

リラックスしてください。

Build and install the source by running:

次のコマンドを実行して、ソースコードをビルドし、インストールします。

make && sudo make install

If you changed the installation location to somewhere temporary, you may not want to use the sudo command here. If you are having problems running make, you may want to try running gmake if it is available on your system. More options can be found by reading the INSTALL file.

もし、インストールする場所を一時的などこかに変更したのであれば、sudoコマンドをここで使う必要はないかも知れません。もし、makeの実行中に問題が発生したのであれば、gmakeがあなたのシステムで利用可能であれば、それを実行する必要があるかも知れません。さらなるオプションについては、INSTALLファイルを読んでください。

Security Considerations

セキュリティに関する考慮事項

It is not advisable to run the CouchDB server as the super user. If the CouchDB server is compromised by an attacker while it is being run by a super user, the attacker will get super user access to your entire system. That’s not what we want!

CouchDBサーバーをスーパーユーザーで実行することはお勧めできません。もし、スーパーユーザーで実行されているときにCouchDBサーバーが攻撃者によって危険な状態になれば、攻撃者はあなたのシステム全体に対するスーパーユーザのアクセス権限を取得するでしょう。それは私たちが望むことではありません!

We strongly recommend that you create a specific user for CouchDB. This user should have as few privileges on your system as possible, preferably the bare minimum needed to run the CouchDB server, read the configuration files, and write to the data and log directories.

私たちは、CouchDB専用のユーザーを作成することを強くお勧めします。このユーザーの持つあなたのシステムへの権限は出来る限り少なくすべきで、それは設定ファイルの読み込み、データとログのディレクトリへの書き込みといった、CouchDBサーバーが動作するためだけに必要な最低限であることが望ましいといえます。

You can use whatever tool your system provides to create a new couchdb user.

新しいcouchdbユーザーを作成するには、あなたのシステムが提供するどんなツールを使っても構いません。

On many Unix-like systems you can run:

多くのUnix系システムでは、次のコマンドを実行します。

adduser --system --home /usr/local/var/lib/couchdb --no-create-home --shell /bin/bash --group --gecos "CouchDB" couchdb

Mac OS X provides the standard Accounts option from the System Preferences application, or you can use the Workgroup Manager application, which can be downloaded as part of the Server Admin Tools.

Mac OS Xはシステム設定アプリケーションでアカウントオプションが提供されています。また、サーバ管理ツールの一部としてダウンロードすることができる、ワークグループマネージャを使うこともできます。

You should make sure that the couchdb user has a working login shell. You can test this by logging into a terminal as the couchdb user. You should also make sure to set the home directory to /usr/local/var/lib/couchdb, which is the CouchDB database directory.

couchdbユーザーでログインシェルが動作することを確認してください。ターミナルにcouchdbユーザーとしてログインすることでテストすることができます。また、ホームディレクトリが/usr/local/var/lib/couchdbに設定されていることを確認してください。これはCouchDBのデータベースのディレクトリです。

Change the ownership of the CouchDB directories by running:

次のコマンドを実行して、CouchDBのディレクトリの所有権を変更します。

chown -R couchdb:couchdb /usr/local/etc/couchdb
chown -R couchdb:couchdb /usr/local/var/lib/couchdb
chown -R couchdb:couchdb /usr/local/var/log/couchdb
chown -R couchdb:couchdb /usr/local/var/run/couchdb

Change the permission of the CouchDB directories by running:

次のコマンドを実行して、CouchDBのディレクトリのパーミッションを変更します。

chmod -R 0770 /usr/local/etc/couchdb
chmod -R 0770 /usr/local/var/lib/couchdb
chmod -R 0770 /usr/local/var/log/couchdb
chmod -R 0770 /usr/local/var/run/couchdb

This isn’t the final word in securing your CouchDB setup. If you’re deploying CouchDB on the Web, or any place where untrusted parties can access your sever, it behooves you to research the recommended security measures for your operating system and take any additional steps needed. Keep in mind the network security adage that the only way to properly secure a computer system is to unplug it from the network.

これはCouchDBのセットアップを安全にするための最後の言葉ではありません。もし、CouchDBをウェブ上、または信頼できない団体がサーバーにアクセスできるような場所にデプロイするのであれば、使用しているオペレーティングシステムで推奨されているセキュリティ対策を調査し、必要な追加のステップを実行する義務があなたにはあります。コンピューターシステムを適切に保護するたったひとつの方法は、ネットワークから切り離すことだ、というネットワークのセキュリティについての格言を頭に入れておいてください。

Running Manually

手動での実行

You can start the CouchDB server by running:

次のコマンドを実行し、CouchDBサーバーを起動します。

sudo -i -u couchdb couchdb -b

This uses the sudo command to run the couchdb command as the couchdb user.

これはsudoコマンドを使って、couchdbコマンドをcouchdbユーザーで実行します。

When CouchDB starts, it should eventually display the following message:

CouchDBが起動すると、そのうち次のメッセージが表示されます。

Apache CouchDB has started, time to relax.

Relax.

リラックスしてください。

To check that everything has worked, point your web browser to:

すべてが動作していることを確認するため、ウェブブラウザで次のURLにアクセスします。

http://127.0.0.1:5984/_utils/index.html

This is Futon, the CouchDB web administration console. We covered the basics of Futon in our early chapters. Once you have it loaded, you should select and run the CouchDB Test Suite from the righthand menu. This will make sure that everything is behaving as expected, and it may save you some serious headaches if things turn out to be a bit wonky.

これは、Futonと呼ばれる、CouchDBのウェブ管理コンソールです。私たちは最初の方の章でFutonの基本を紹介しました。Futonが読み込まれたら、右側のメニューからCouchDBテストスイートを実行します。これは、すべてが期待通りに動作することを確認するもので、何か不安定な部分が判明した場合にあなたを深刻な頭痛から救うかも知れません。

Running As a Daemon

デーモンとしての実行

Once you’ve got CouchDB running nicely, you’ll probably want to run it as daemon. A daemon is a software application that runs continually in the background, waiting to handle requests. This is how most production database servers run, and you can configure CouchDB to run like this, too.

CouchDBがうまく動作するようになれば、それをデーモンとして実行したくなるでしょう。デーモンとはバックグラウンドで継続的に動作し、リクエストを処理するために待ち受けているソフトウェアアプリケーションです。これはほとんどの本番環境のデータベースサーバーの実行に用いられている方法で、CouchDBもこのように実行できるように設定することができます。

When you run CouchDB as a daemon, it logs to a number of files that you’ll want to clean up from time to time. Letting your log files fill up a disk is a good way to break your server! Some operating systems come with software that does this for you, and it is important for you to research your options and take the necessary steps to make sure that this doesn’t become a problem. CouchDB ships with a logrotate configuration that may be useful.

CouchDBをデーモンとして実行すると、たくさんのファイルにログが記録されるので、あなたは時々それを整理したいと思うでしょう。ログファイルでディスクをいっぱいにするというのは、サーバーを停止させる方法としては十分です!オペレーティングシステムの中には、あなたのためにログの整理をするソフトウェアが付属しているものもありますが、ログを整理する選択肢を調査し、問題が発生していないことを確認するために必要なステップを踏むことは大切なことです。CouchDBにはlogrotateの設定が付属しています。これが役に立つも知れません。

SysV/BSD-Style Systems

SysV・BSDスタイルのシステム

Depending on your operating system, the couchdb daemon script could be installed into a directory called init.d (for SysV-style systems) or rc.d (for BSD-style systems) under the /usr/local/etc directory. The following examples use [init.d|rc.d] to indicate this choice, and you must replace it with your actual directory before running any of these commands.

使用しているオペレーティングシステムに応じて、/usr/local/etcディレクトリ以下の、SysVスタイルのシステムではinit.dと呼ばれるディレクトリに、BSDスタイルのシステムではrc.dと呼ばれるディレクトリにcouchdbデーモンスクリプトがインストールされます。以下の例では、そのどちらかを示すために[init.d|rc.d]を用いますので、それらのコマンドを実行する前に、それを実際のディレクトリに置き換える必要があります。

You can start the CouchDB daemon by running:

次のコマンドを実行して、CouchDBデーモンを起動します。

sudo /usr/local/etc/[init.d|rc.d]/couchdb start

You can stop the CouchDB daemon by running:

次のコマンドを実行して、CouchDBデーモンを停止します。

sudo /usr/local/etc/[init.d|rc.d]/couchdb stop

You can get the status of the CouchDB daemon by running:

次のコマンドを実行して、CouchDBの状態を取得します。

sudo /usr/local/etc/[init.d|rc.d]/couchdb status

If you want to configure how the daemon script works, you will find a bunch of options you can edit in the /usr/local/etc/default/couchdb file.

もし、デーモンスクリプトの動作する方法を設定したいのであれば、/usr/local/etc/default/couchdbファイルにたくさんの編集できるオプションがあります。

If you want to run the script without the sudo command, you will need to remove the COUCHDB_USER setting from this file.

もし、sudoコマンドなしでスクリプトを実行したいのであれば、このファイルからCOUCHDB_USERの設定を削除する必要があります。

Your operating system will probably provide a way to control the CouchDB daemon automatically, starting and stopping it as a system service. To do this, you will need to copy the daemon script into your system /etc/[init.d|rc.d] directory, and run a command such as:

sudo update-rc.d couchdb defaults

Consult your system documentation for more information.

詳細については、システムドキュメントを参照してください。

Mac OS X

You can use the launchd system to control the CouchDB daemon.

launchdシステムを使って、CouchDBデーモンをコントロールすることができます。

You can load the launchd configuration by running:

次のコマンドを実行して、launchdの設定を読み込みます。

sudo launchctl load /usr/local/Library/LaunchDaemons/org.apache.couchdb.plist

You can unload the launchd configuration by running:

次のコマンドを実行して、launchdの設定を除去します。

sudo launchctl unload /usr/local/Library/LaunchDaemons/org.apache.couchdb.plist

You can start the CouchDB daemon by running:

次のコマンドを実行して、CouchDBデーモンを起動します。

sudo launchctl start org.apache.couchdb

You can stop the CouchDB daemon by running:

次のコマンドを実行して、CouchDBデーモンを停止します。

sudo launchctl stop org.apache.couchdb

The launchd system can control the CouchDB daemon automatically, starting and stopping it as a system service. To do this, you will need to copy the plist file into your system /Library/LaunchDaemons directory.

launchdシステムはCouchDBデーモンを自動的にコントロールし、システムサービスとして起動、停止させることができます。これをするには、plistファイルをあなたのシステムの/Library/LaunchDaemonsディレクトリにコピーする必要があります。

Consult the launchd documentation for more information.

詳細については、launchdのドキュメントを参照してください。

Troubleshooting

トラブルシューティング

Software being software, you can count on something going wrong every now and then. No need to panic; CouchDB has a great community full of people who will be able to answer your questions and help you get started. Here are a few resources to help you on your way:

ソフトウェアはソフトウェアであるため、時々何か問題が起きることがあります。パニックに陥る必要はありません。CouchDBにはあなたの質問に答え、あなたが始めるのを助けてくれる人でいっぱいのすばらしいコミュニティーがあります。ここにあなたの道程に役立ついくつかのリソースを示します。

Don’t forget to use your favorite search engine when diagnosing problems. If you look around a bit, you’re likely to find something. It’s very possible that a bunch of other people have had exactly the same problem as you and a solution has been posted somewhere on the Web. Good luck, and remember to relax!

問題を診断するときには、好きな検索エンジンを使うことを忘れないでください。少し周りを見れば、何かを見付けることができそうです。その他のたくさんの人がまったく同じ問題を抱えていて、ウェブ上のどこかに解決方法が掲載されているという可能性は非常に高いといえます。健闘を祈ります。そして、リラックスすることを忘れないでください!