CentOS7にIPFSをセットアップしてみる

以前記事でご紹介したIPFSですが、今回は実際に自分の持っているCentOSの環境にIPFS環境一式をインストールしてみました。

今回はそのやり方についてご紹介したいと思います。

まず、IPFSの動作にはgo言語の動作環境が必要になりますのでインストールします。

sudo yum -y install go
または
sudo yum -y install golang

次にIPFSをインストールするために必要な環境を整えます。
/usr/local/
ディレクトリにgo言語周りのパッケージをインストールする場所を作成します。

sudo mkdir -p /usr/local/go

次にパスを通します。

sudo vi /etc/profile

を実行し、一番下の行に次の記述を追記します。

PATH=$PATH:/usr/local/go/bin
export GOPATH=/usr/local/go
export GOBIN=$GOPATH/bin

一度ログイン中の端末からログアウトし、再度ログインします。

次に下記のコマンドを実行します。

go get -u -d github.com/ipfs/go-ipfs #ipfsソースを入手
cd $GOPATH/src/github.com/ipfs/go-ipfs #ipfsソースダウンロード先へ移動
sudo su - #"sudo  -s"でやると/etc/profileでexportした環境変数が消失するため
make install #ipfsをビルド
exit #rootユーザーからログアウト

するとIPFSパッケージがビルドされ、$GOPATH/binへインストールされます。

ビルドが完了したら、ipfsコマンドが利用できるか確認します。

ipfs --help

下記のような表示がされたらインストールは成功しています。

USAGE
  ipfs - Global p2p merkle-dag filesystem.

SYNOPSIS
  ipfs [--config=<config> | -c] [--debug=<debug> | -D] [--help=<help>] [-h=<h>] [--local=<local> | -L] [--api=<api>] <command> ...

OPTIONS

  -c,              --config   string - Path to the configuration file to use.
  -D,              --debug    bool   - Operate in debug mode.
  --help                      bool   - Show the full command help text.
  -h                          bool   - Show a short version of the command help text.
  -L,              --local    bool   - Run the command locally, instead of using the daemon. DEPRECATED: use --offline.
  --offline                   bool   - Run the command offline.
  --api                       string - Use a specific API instance (defaults to /ip4/127.0.0.1/tcp/5001).
  --enc,           --encoding string - The encoding type the output should be encoded with (json, xml, or text). Default: text.
  --stream-channels           bool   - Stream channel output.
  --timeout                   string - Set a global timeout on the command.

SUBCOMMANDS
  BASIC COMMANDS
    init          Initialize ipfs local configuration
    add <path>    Add a file to IPFS
    cat <ref>     Show IPFS object data
    get <ref>     Download IPFS objects
    ls <ref>      List links from an object
    refs <ref>    List hashes of links from an object
  
  DATA STRUCTURE COMMANDS
    block         Interact with raw blocks in the datastore
    object        Interact with raw dag nodes
    files         Interact with objects as if they were a unix filesystem
    dag           Interact with IPLD documents (experimental)
  
  ADVANCED COMMANDS
    daemon        Start a long-running daemon process
    mount         Mount an IPFS read-only mountpoint
    resolve       Resolve any type of name
    name          Publish and resolve IPNS names
    key           Create and list IPNS name keypairs
    dns           Resolve DNS links
    pin           Pin objects to local storage
    repo          Manipulate the IPFS repository
    stats         Various operational stats
    p2p           Libp2p stream mounting
    filestore     Manage the filestore (experimental)
  
  NETWORK COMMANDS
    id            Show info about IPFS peers
    bootstrap     Add or remove bootstrap peers
    swarm         Manage connections to the p2p network
    dht           Query the DHT for values or peers
    ping          Measure the latency of a connection
    diag          Print diagnostics
  
  TOOL COMMANDS
    config        Manage configuration
    version       Show ipfs version information
    update        Download and apply go-ipfs updates
    commands      List all available commands
    cid           Convert and discover properties of CIDs
  
  Use 'ipfs <command> --help' to learn more about each command.
  
  ipfs uses a repository in the local file system. By default, the repo is
  located at ~/.ipfs. To change the repo location, set the $IPFS_PATH
  environment variable:
  
    export IPFS_PATH=/path/to/ipfsrepo
  
  EXIT STATUS
  
  The CLI will exit with one of the following values:
  
  0     Successful execution.
  1     Failed executions.

  Use 'ipfs <subcmd> --help' for more information about each command.

最後に、ipfsを使用するユーザー(ipfsへファイルをアップロード・ダウンロードするユーザー)で下記のコマンドを実行します。

ipfs init

するとipfs上での自ノード専用のキーが発行・保存され、セットアップ完了です。

initializing IPFS node at /ユーザーディレクトリのパス/.ipfs
generating 2048-bit RSA keypair...done
peer identity: 自分のipfsノードのキー
to get started, enter:

        ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

ファイルのアップロードやアップロードしたファイルを閲覧する方法などはまた後日解説したいと思います。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG