妻のThinkPad X22 LinuxBean12.04をインストールし直す・・・・
先日から動作がおかしいと訴えがありました。
とうとう壊れたか・・・古いですからね(笑)
「とにかく暇なときに見るよ」
忙しい時は妻のPCはおろか自分のPCもメンテナンスできません。
ちょっと空き時間があったので見てみましたら、16GBあった/homeディレクトリの空きがまったくありません。
システムアップデートの時に/home/userの設定が追加されたはずですがそれが書き込まれていませんし。
システムは2/3残っています。
何があったんだろう・・・・。
調べますとFireFoxのエラーを報告するためのディレクトリ(Mozilla クラッシュレポータ)がいっぱいになっていました。
なぜたくさんの(約14GB以上の)クラッシュレポートが溜まったかはわかりませんが、まずそれを削除してから/homeディレクトリをバックアップし、この際なのでLinuxBean12.04の最新版をクリーンインストールしました。
ちなみにFirefoxクラッショレポートは送らない設定にしました。
おかげで快調に使えるようになりました。
2015年06月16日
妻のThinkPad X22 LinuxBean12.04をインストールし直す
posted by 片桐 健 at 08:49
| Ubuntu
2015年04月10日
GoogleDriveのローカル保存ディレクトリ名を任意の名前に・・・grive-toolsを改造する
表題のとうりです。
GoogleDriveを便利に使おうとするとやはり手間なく同期させたいところです。
私の場合はローカルに置いたファイルを出先などほかのPCで使いたいので。
さて問題は、griveをコマンドラインで操作する場合は問題ないんですが、guiで操作できるgrive-toolsの場合セットアップで強制的にローカルに"Google Drive"というディレクトリが作られることです。ディレクトリ名にスペースが入っているのでいろいろと問題が起こります。
今回直面したのは、GoogleDriveに置いたSQLiteデータベースファイル(実際にはローカルに同期したファイル)をodbc接続してLibreOfficeから読み書きしようとした時、ディレクトリ名にスペースが入ったことでodbcで接続されないというものです。
LibreOfficeからデータベースを登録しようとすると接続エラーになります。
さて、解決策は・・・
当然スペースの無いディレクトリ名であるべきですが、grive-toolsからは作れません。そのような選択肢は画面上にはありません。grive-toolsでセットアップすると勝手に作成されるディレクトリ名は"Google Drive"でスペースが入っています。
コマンドをつかうときや他のアプリケーションに渡すとき嫌なのでスペースのない任意のディレクトリ名で作成したい。
odbc接続の場合、odbc.iniに書いたディレクトリパスはダブルクォート、シングルクォートで囲ったがどちらもダメ。バックスラッシュも試したけどダメでした。
odbc.iniの一部
Database=/home/hoge/'Google Drive'/hogehoge.db
Google Driveというディレクトリ名がセットアップ時に作られるようgrive-setupというシェルスクリプトが書かれています。
ディレクトリ名をリネームしてもPCを再起動したりすると保存フォルダが無いと言われ再作成されます。あるいはgriveインジケータが動作しません。インジケータを再起動すると元のディレクトリ名で再作成しようとします。
そこで、
シェルスクリプト grive-setup を書き換える。
sudo leafpad /opt/thefanclub/grive-tools/grive-setup
46行目
gdriveName="Google Drive"
を
gdriveName="hogehuga"
に変更。
48行目
googleDriveFolder="$userHome/Google Drive"
から
googleDriveFolder="$userHome/hogehuga"
へ変更する。
46行目は必要ないかもしれない。
次に
pythonスクリプト grive-indicator も書き換える。
sudo leafpad /opt/thefanclub/grive-tools/grive-indicator
885行目
googleDrive = "Google Drive"
を
googleDrive = "hogehuga"
に変更
この後、setupすると任意の名前のディレクトリにGoogle Driveの中身が書き込まれる。
LXDEパネル内通知スペースのインディケータも正常動作する。

ただし、アップデートがあると上記スクリプトが書き換えられると思うので注意が必要。
GoogleDriveを便利に使おうとするとやはり手間なく同期させたいところです。
私の場合はローカルに置いたファイルを出先などほかのPCで使いたいので。
さて問題は、griveをコマンドラインで操作する場合は問題ないんですが、guiで操作できるgrive-toolsの場合セットアップで強制的にローカルに"Google Drive"というディレクトリが作られることです。ディレクトリ名にスペースが入っているのでいろいろと問題が起こります。
今回直面したのは、GoogleDriveに置いたSQLiteデータベースファイル(実際にはローカルに同期したファイル)をodbc接続してLibreOfficeから読み書きしようとした時、ディレクトリ名にスペースが入ったことでodbcで接続されないというものです。
LibreOfficeからデータベースを登録しようとすると接続エラーになります。
さて、解決策は・・・
当然スペースの無いディレクトリ名であるべきですが、grive-toolsからは作れません。そのような選択肢は画面上にはありません。grive-toolsでセットアップすると勝手に作成されるディレクトリ名は"Google Drive"でスペースが入っています。
コマンドをつかうときや他のアプリケーションに渡すとき嫌なのでスペースのない任意のディレクトリ名で作成したい。
odbc接続の場合、odbc.iniに書いたディレクトリパスはダブルクォート、シングルクォートで囲ったがどちらもダメ。バックスラッシュも試したけどダメでした。
odbc.iniの一部
Database=/home/hoge/'Google Drive'/hogehoge.db
Google Driveというディレクトリ名がセットアップ時に作られるようgrive-setupというシェルスクリプトが書かれています。
ディレクトリ名をリネームしてもPCを再起動したりすると保存フォルダが無いと言われ再作成されます。あるいはgriveインジケータが動作しません。インジケータを再起動すると元のディレクトリ名で再作成しようとします。
そこで、
シェルスクリプト grive-setup を書き換える。
sudo leafpad /opt/thefanclub/grive-tools/grive-setup
46行目
gdriveName="Google Drive"
を
gdriveName="hogehuga"
に変更。
48行目
googleDriveFolder="$userHome/Google Drive"
から
googleDriveFolder="$userHome/hogehuga"
へ変更する。
46行目は必要ないかもしれない。
次に
pythonスクリプト grive-indicator も書き換える。
sudo leafpad /opt/thefanclub/grive-tools/grive-indicator
885行目
googleDrive = "Google Drive"
を
googleDrive = "hogehuga"
に変更
この後、setupすると任意の名前のディレクトリにGoogle Driveの中身が書き込まれる。
LXDEパネル内通知スペースのインディケータも正常動作する。

ただし、アップデートがあると上記スクリプトが書き換えられると思うので注意が必要。
posted by 片桐 健 at 23:27
| Ubuntu
データベースの移行
ピアノ調律のお客様データをデータベース化しています。
実はかなり前から取り組んでいますが途中で考えや方針が変わったりしてなかなか進んでいませんでした。
以前OpenOfficeのBaseでまあまあ実用になるデータベースと入力フォームを作りましたが、更にそれを進めてデータはGoogleDrive上に置き事務所(自宅)以外でどこからでも、つまり工房や外出先などでタブレットからもデータを参照したり変更追加したいアクセスできるようにしたいと考えました。
ということで実際にLibreofficeのBaseで作業します。
当初なにも考えずBaseの埋め込みデータベースHSQLDBを使用していたが、AndroidではLibreOfficeBaseは無いしもっと早く動く(そんなに大量のデータがあるわけではないが)ほうがと思い、デスクトップ機やノートPC(すべてUbuntu)は言うに及ばすタブレットでも標準サポートされているSQLiteを使用することに・・。
まずはデスクトップ、ノートPCでLibreofficeのBaseからSQLiteを操作できるかやってみた。
まずはsqlite3 とodbcのドライバのインストール
$ sudo apt-get install sqlite3 libsqlite3-dev unixodbc unixodbc-dev unixodbc-bin libsqliteodbc
それぞれ設定していきます。
データベースをodbcで接続してLibreOffice Baseで作成したフォームで検索閲覧や追加修正する・・。

はまった点。
その1
$ ODBCManageDataSourcesQ4
で設定ができなかったこと。
userでもsudoで起動しても設定ファイルが保存されない。なんででしょう?
仕方がないので設定ファイルを手動で作った。
インストール直後にodbcinst.iniを見てみると
$ cat /etc/odbcinst.ini
[SQLite]
Description = SQLite ODBC Driver
Driver = libsqliteodbc.so
Setup = libsqliteodbc.so
UsageCount = 1
[SQLite3]
Description = SQLite3 ODBC Driver
Driver = libsqlite3odbc.so
Setup = libsqlite3odbc.so
UsageCount = 1
ドライバーの在処が何故かフルパスで書かれていない
念の為手動で作成
$ cat /etc/odbcinst.ini
[SQLite]
Description = SQLite ODBC Driver
Driver = /usr/lib/i386-linux-gnu/odbc/libsqliteodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libsqliteodbc.so
UsageCount = 1
[SQLite3]
Description = SQLite3 ODBC Driver
Driver = /usr/lib/i386-linux-gnu/odbc/libsqlite3odbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libsqlite3odbc.so
UsageCount = 1
$ cat ~/.odbc.ini
~/.odbc.iniは無い
手動で作成
$ cat ~/.odbc.ini
[mysqlitedb]
Description = mysqlitedb
Driver = SQLite3
Database = /home/hoge/mytest.db
Timeout = 100000
StepAPI = No
LongNames = No
その2
データベースをGoogleDriveに置いてどこからでもアクセスしようとしたら・・・
odbc.iniにデータベースの場所を書き込む。
[mysqlitedb]
Description=mysqlitedb
Driver=SQLite3
Database=/home/hoge/'Google Drive'/hogehoge.db
Timeout=100000
StepAPI=No
LongNames=No
データベースファイルをローカルのローカルのGoogle Driveのディレクトリに置いてみたらBaseから接続できないことがわかった。
このディレクトリはgriveをgrive-toolsでセットアップした時に作られたもの。
ディレクトリ名はダブルクォート、シングルクォートで囲ったがどちらもダメ。バックスラッシュも試したけどダメでした。
おそらくBaseからodbc.iniを読むときディレクトリ名にスペースが入っていてそれを解さないのでしょう。
したがってディレクトリ名を変える必要がある。
この解決策はgrive-toolsを改造してOKです。これは別の記事で・・・。
実はかなり前から取り組んでいますが途中で考えや方針が変わったりしてなかなか進んでいませんでした。
以前OpenOfficeのBaseでまあまあ実用になるデータベースと入力フォームを作りましたが、更にそれを進めてデータはGoogleDrive上に置き事務所(自宅)以外でどこからでも、つまり工房や外出先などでタブレットからもデータを参照したり変更追加したいアクセスできるようにしたいと考えました。
ということで実際にLibreofficeのBaseで作業します。
当初なにも考えずBaseの埋め込みデータベースHSQLDBを使用していたが、AndroidではLibreOfficeBaseは無いしもっと早く動く(そんなに大量のデータがあるわけではないが)ほうがと思い、デスクトップ機やノートPC(すべてUbuntu)は言うに及ばすタブレットでも標準サポートされているSQLiteを使用することに・・。
まずはデスクトップ、ノートPCでLibreofficeのBaseからSQLiteを操作できるかやってみた。
まずはsqlite3 とodbcのドライバのインストール
$ sudo apt-get install sqlite3 libsqlite3-dev unixodbc unixodbc-dev unixodbc-bin libsqliteodbc
それぞれ設定していきます。
データベースをodbcで接続してLibreOffice Baseで作成したフォームで検索閲覧や追加修正する・・。

はまった点。
その1
$ ODBCManageDataSourcesQ4
で設定ができなかったこと。
userでもsudoで起動しても設定ファイルが保存されない。なんででしょう?
仕方がないので設定ファイルを手動で作った。
インストール直後にodbcinst.iniを見てみると
$ cat /etc/odbcinst.ini
[SQLite]
Description = SQLite ODBC Driver
Driver = libsqliteodbc.so
Setup = libsqliteodbc.so
UsageCount = 1
[SQLite3]
Description = SQLite3 ODBC Driver
Driver = libsqlite3odbc.so
Setup = libsqlite3odbc.so
UsageCount = 1
ドライバーの在処が何故かフルパスで書かれていない
念の為手動で作成
$ cat /etc/odbcinst.ini
[SQLite]
Description = SQLite ODBC Driver
Driver = /usr/lib/i386-linux-gnu/odbc/libsqliteodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libsqliteodbc.so
UsageCount = 1
[SQLite3]
Description = SQLite3 ODBC Driver
Driver = /usr/lib/i386-linux-gnu/odbc/libsqlite3odbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libsqlite3odbc.so
UsageCount = 1
$ cat ~/.odbc.ini
~/.odbc.iniは無い
手動で作成
$ cat ~/.odbc.ini
[mysqlitedb]
Description = mysqlitedb
Driver = SQLite3
Database = /home/hoge/mytest.db
Timeout = 100000
StepAPI = No
LongNames = No
その2
データベースをGoogleDriveに置いてどこからでもアクセスしようとしたら・・・
odbc.iniにデータベースの場所を書き込む。
[mysqlitedb]
Description=mysqlitedb
Driver=SQLite3
Database=/home/hoge/'Google Drive'/hogehoge.db
Timeout=100000
StepAPI=No
LongNames=No
データベースファイルをローカルのローカルのGoogle Driveのディレクトリに置いてみたらBaseから接続できないことがわかった。
このディレクトリはgriveをgrive-toolsでセットアップした時に作られたもの。
ディレクトリ名はダブルクォート、シングルクォートで囲ったがどちらもダメ。バックスラッシュも試したけどダメでした。
おそらくBaseからodbc.iniを読むときディレクトリ名にスペースが入っていてそれを解さないのでしょう。
したがってディレクトリ名を変える必要がある。
この解決策はgrive-toolsを改造してOKです。これは別の記事で・・・。
posted by 片桐 健 at 15:34
| Ubuntu