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) システムを再起動して動作を確認。他のマシンからファイルを追加してみる

ASUS M5200N OEM2010/10/25 08:45

ASUS .................. M5200N
Unity Corporation ..... M5N, S5N
フロンティア神代 ...... FRN50 FRN51
Epson Direct Shop ..... NT340
SHARP ................. PC-MR80H PC-MR50H PC-MR60HS PC-MR80J PC-MR40J PC-MR80HU PC-MR80BH7
HITACHI ............... 210W NL6

たぶん


バックサーバ (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 ==> ルートファイルシステム以外でチェックを行う

今日までお休み2010/01/04 15:26

正月は帰省していて、昨日帰ってきた。会社は今日まで休みなので、今のところ家でのんびりしている。
年末のブログにも書いたが、今年は仕事を何とかしないとかなりヤバイことになりそうなので、人に嫌われるようなことも多少は言っていかないといけないかなぁ、などと考えてはいるが、具体的にどのようにして乗り切るかは全くの白紙である。
とりあえず、着手しているプロダクトに本格的に取り組んでなるべく早めに完成させよう (できれば、1 月中、遅くとも 2 月中) と思っている。


それから、現在の個人的な課題 (というほどのことでもないが、、、) を少しまとめておく

(1) 正月に ThinkPad X31 のキーボードベゼルにクラック (PC カードスロットの上の部分が完全に折れた) を発見 (ちょっとショック)


  修理方法を考える

   a) オークションでベゼルを落札して交換
      \2,000 前後のようだが、ちょっと高い感じ、\1,000 位だったらいいのだが、、、

   b) 2 液混合の接着剤でつなぐ
      「ちょっと弱いかなぁ」って感じだ

   c) 当て木と接着剤 (2 液のやつ) で繋ぐ
      最初当て木に針金のようなものを考えたが、もしはがれて落ちると中でショートしてしまうかもしれないので、フロッピーディスクのガワを分解し小さく切って使おうと思っているが、当て木が当てられるかどうか、本体を分解してみないとわからない。

  今のところ c) が有力


(2) 家のファイルサーバは Debian + Samba で作っていて、ファイルのバックアップは 1 日 1 回 rsync で別のサーバに送っているのだが、バックアップ側のディスク容量が不足しそうなので、HDD の追加を行う
  一番容量を食っているのが mp3 等の音楽ファイルなので、これらを追加の HDD にバックアップするようにする


(3) 年末にハードディスクレコーダ (東芝の RD-E3022K) を買ったのだが、外部から録画予約ができるように設定したい
  メールでの予約設定を行うのが一番簡単そうだが、RD-E3022K には、Web I/F があるのでできればこちらを使いたいのだが、問題はどうやって本体の電源を入れるかだ。WOL (Wake-On-LAN) ができそうなのだが、今のところうまくいっていない。
  Magic packet がスイッチング・ハブを超えられないのではないかとちょっと考えいるが、もう少し調べてみてダメだったらメールに変えようと思っている


emacs のシンタックスハイライトでボールド表示を止める (その2)2009/12/16 08:34

ボールド表示を止めるだけなら、set-face-bold-p で、止められることを発見

(set-face-bold-p 'face-name nil)

で止まり

(set-face-bold-p 'face-name t)

で、逆にボールド表示にできる。なので、昨日の設定は

(set-face-bold-p 'font-lock-keyword-face nil)
(set-face-bold-p 'font-lock-function-name-face nil)

の 2 行でいいことになる。