Debian に Dropbox を CUI インストール2013/01/03 15:29

1) 必要パッケージのインストール

# aptitude install libnautilus-extension1 libnautilus-extension-dev python-docutils

※ 上記以外のパッケージは依存関係でインストールされる

【参考サイト】
http://samidarehetima.blog9.fc2.com/blog-entry-127.html


2) dropbox インストールパッケージの取得 & インストール

$ wget --no-check-certificate https://www.dropbox.com/download?dl=packages/debian/dropbox_1.4.0_i386.deb
$ wget https://www.dropbox.com/download?dl=packages/dropbox.py
$ wget http://dl.getdropbox.com/u/6995/dbreadconfig.py

# dpkg --force-depends -i dropbox_1.4.0_i386.deb

※ GUI (gtk) を使わないので依存関係を無視 (--force-depends) でインストール

【参考サイト】
http://subtech.g.hatena.ne.jp/secondlife/20090421/1240314050


3) 初期設定-1
必要なディレクトリ等を作り、一旦止める

$ dropbox start -i
Starting Dropbox...
Dropbox is the easiest way to share and store your files online. Want to learn more? Head to http://www.dropbox.com/

In order to use Dropbox, you must download the proprietary daemon.
Note: python-gpgme is not installed, we will not be able to verify binary signatures. [y/n] y
Downloading Dropbox... 100%
Unpacking Dropbox... 100%
Dropbox isn't running!
Done!

$ dropbox stop

【参考サイト】
http://subtech.g.hatena.ne.jp/secondlife/20090421/1240314050


4) 初期設定-2
本来なら

$ python dbreadconfig.py

を実行して得られた

host_id = XXXXXXXXXXXXXXX
last_revision = None
schema_version = 6

の host_id 指定してブラウザで

https://www.getdropbox.com/register?host_id=XXXXXXXXXXXXXXX

にアクセスして認証するのだが、dbreadconfig.py で

$ python dbreadconfig.py
Traceback (most recent call last):
  File "./work/dropbox/dbreadconfig.py", line 22, in 
    cur.execute('select key, value from config order by key')
sqlite3.OperationalError: no such table: config

のようなエラーになるので、無理矢理

$ ~/.dropbox-dist/dropboxd&

を実行。すると

このクライアントはアカウントにリンクされていません...
このマシンをリンクするには https://www.dropbox.com/cli_link?host_id=XXXXXXXXXXXXXXXXX を開いてください。

のようなエラーが発生するので、エラーメッセージ中の url にブラウザでアクセスして認証すると

クライアントはリンクされました。XXXXXXXXX さん、ようこそ!

となり、認証が完了しファイルが同期されるようになる。
$ ls -l ~/Dropbox

とすると、すでにあるファイルが同期されているはず

【参考サイト】
http://d.hatena.ne.jp/rti7743/20110101/1293886580
http://web.archive.org/web/20110725154912/http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall


5) init.d スクリプトを設定してシステム起動時に自動実行させる

http://web.archive.org/web/20101024043218/http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall/UbuntuStartup

から Debian 用の init.d スクリプトをコピーして、/etc/init.d/dropbox を作成

#!/bin/sh
### BEGIN INIT INFO
# Provides: dropbox
# Required-Start: $network $syslog
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Start the dropbox
### END INIT INFO

# dropbox service
DROPBOX_USERS="username"

DAEMON=.dropbox-dist/dropboxd

start() {
  echo "Starting dropbox..."
  for dbuser in $DROPBOX_USERS; do
    HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
    if [ -x $HOMEDIR/$DAEMON ]; then
      HOME="$HOMEDIR" start-stop-daemon -b -o -c $dbuser -S -u $dbuser -x $HOMEDIR/$DAEMON
    fi
  done
}

stop() {
  echo "Stopping dropbox..."
  for dbuser in $DROPBOX_USERS; do
    HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
    if [ -x $HOMEDIR/$DAEMON ]; then
      start-stop-daemon -o -c $dbuser -K -u $dbuser -x $HOMEDIR/$DAEMON
    fi
  done
}

status() {
  for dbuser in $DROPBOX_USERS; do
    dbpid=`pgrep -u $dbuser dropboxd`
    if [ -z $dbpid ] ; then
      echo "dropboxd for USER $dbuser: not running."
    else
      echo "dropboxd for USER $dbuser: running (pid $dbpid)"
    fi
  done
}

case "$1" in
  start)
    start
    ;;

  stop)
    stop
    ;;

  restart|reload|force-reload)
    stop
    start
    ;;

  status)
    status
    ;;

  *)
    echo "Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}"
    exit 1

esac

exit 0

変更箇所は DROPBOX_USERS にユーザ名を指定するだけ、複数のユーザで利用する場合にはブランクで区切って指定

DROPBOX_USERS="user1 user2"

insserv で dropbox サービスを追加

# insserv dropbox

sysv-rc-conf で設定を確認できる

# sysv-rc-conf --list dropbox
dropbox      0:off      1:off   2:on    3:on    4:on    5:on    6:off


6) システムを再起動して動作を確認。他のマシンからファイルを追加してみる

バックサーバ (Debian) への HDD 追加2010/01/04 21:20

早速、バックアップサーバにディスクを追加したので手順を書いておくことにする。

  1. 追加する HDD を PC に接続
    今回は、Secondary のマスターに接続されている DVD-ROM ドライブを外して、HDD を接続した。つまり、Secondary の Master に HDD を接続
    なお、この PC には物理的に HDD (3.5 inch ドライブ) が 1 台、光学ドライブ (5 inch ドライブ) が 1 台しか接続できないので、光学ドライブを外して、脱着式の HDD ユニットを接続した

  2. PC を起動して、接続した HDD がどのように認識されているかを確認
    # dmesg
    ~
    hdc: max request size: 512KiB
    hdc: 320173056 sectors (163928 MB) w/7936KiB Cache, CHS=19929/255/63, UDMA(100)
    ~
    
    hdc として認識されているようだ

  3. cfdisk で HDD の全エリアに 1 つのパーティションを作成
    Name   Flags   Part Type   FS Type   [Label]   Size (MB)
    ----------------------------------------------------------------
    hdc1            Primary    Linux               163921.61
    

  4. ext3 でフォーマット
    # mke2fs -j /dev/hdc1
    

  5. とりあえず、適当なところにマウントして、今のファイルを移動する
    # mount /dev/hdc1 /home/user/work/mnt
    # chown -R user.user /home/user/work/mnt  (← マウントしたディレクトリのユーザを変更)
    # su - user
    $ cd /home/user/mp3
    $ mv * /home/user/work/mnt
    ~
    

  6. 一旦アンマウントする
    # umount /dev/hdc1
    

  7. /etc/fstab を書き換えて、起動時に自動でマウントされるようにする
    # /etc/fstab: static file system information.
    #
    #                
    
    ~
    
    /dev/hdc1       /home/user/mp3  ext3    defaults        0       0
    ~
    

  8. マシンを再起動して /home/user/mp3 に追加した HDD がマウントされていることを確認



※ /etc/fstab の各フィールドの簡単な説明
  • <file system>
    マウントするブロックデバイスやラベル
  • <mount point>
    マウントポイント
  • <type>
    ファイルシステムの種類
  • <options>
    マウントオプション
  • <dump>
    ファイルシステムをdumpする必要があるかどうか
    0, blank ==> dump 不要
  • <pass>
    システム起動時にfsckチェックを行うかどうか
    0 ==> チェックしない
    1 ==> ルートファイルシステムでチェックを行う
    2 ==> ルートファイルシステム以外でチェックを行う