Ubuntu 14.04で実行されているgriveのGoogleドライブアカウントとの同期に問題があります。以前に問題があったことはありません。システムからドライブをパージしてすべてのローカルフォルダーを削除しようとしましたが、再インストール後にgriveを実行しようとすると、この問題が発生します。
user@user-OptiPlex-780:~/drive$ grive
grive: Symbol `json_tokener_errors' has different size in shared object, consider re-linking
Reading local directories
Synchronizing folders
exception: /build/buildd/grive-0.2.0/libgrive/src/http/CurlAgent.cc(149): Throw in function long int gr::http::CurlAgent::ExecCurl(const string&, gr::http::Receivable*, const gr::http::Header&)
Dynamic exception type:boost::exception_detail::clone_impl<gr::http::Error>
std::exception::what: std::exception
[gr::expt::MsgTag*] =
[gr::http::CurlCodeTag*] = 0
[gr::http::HttpResponseTag*] = 400
[gr::http::UrlTag*] = https://docs.google.com/feeds/default/private/full/-/folder?max-results=50&showroot=true
[gr::http::HeaderTag*] = Authorization: Bearer ya29.WwFOho3OkmkxFIdn86HBbtpSIyBYDzDgQua1K6JcEu7kCBLgvY1aEiUHCZlSCuli_qPHkTfNZLhDfQ
GData-Version: 3.0
以下は、今日のAPIが変更されたことを示唆するGoogle開発者ページへのリンクです link 。それが問題になりますか?
はい、Griveは無効なDocuments List APIを使用しています。太平洋標準時の午前9時頃に、これらのAPIリクエストの処理を停止しました。これが、Griveクライアントが「400 Bad Request」応答を受信している理由です。
project を見ると、 ほぼ1年間メンテナンスされていない のように見え、間違いなく更新されていません(- here & here )Documents Listが正式に廃止された2012年にリリースされた新しいAPI。
適切な代替手段は drive です。これはgo
で記述されており、非常に多くの機能を備えています。
インストールする手順は次のとおりです。
必要なパッケージをインストールする
Sudo apt-get install golang git Mercurial
ホームディレクトリにgo
パッケージのパスを作成します
mkdir $HOME/go $HOME/go/bin
ホームディレクトリの.profile
ファイルを編集して、これらのパスを適切な環境変数に追加します。そのファイルのandに次の行を追加します。
if [ -d "$HOME/go" ] ; then
export GOPATH="$HOME/go"
fi
if [ -d "$HOME/go/bin" ] ; then
PATH="$HOME/go/bin:$PATH"
fi
ログオフしてログオンし、変更を有効にします。
最新のソースからdrive
をダウンロードしてインストールします
go get -u github.com/odeke-em/drive/cmd/drive
読む https://github.com/odeke-em/drive/#usage
基本的な使用法:
drive init <folder>
は、Googleドライブと同期するために<folder>
を初期化します。drive pull
を実行すると、Googleドライブからすべての変更がダウンロードされます。初めて、すべてをダウンロードするために、これをもっとしなければならないかもしれません。drive Push
はローカルの変更をアップロードします。drive pull <fileOrPath>
またはdrive Push <fileOrPath>
は、<fileOrPath>
に対してのみ対応するアクションを実行します。再び働くグリーブのフォークが作られました(私ではなく、ちょうどそれを見つけました)
https://github.com/vitalif/grive2
簡単な交換
mkdir grive
cd grive/
git clone https://github.com/vitalif/grive2.git
cd grive2/
mkdir build
cd build
cmake ..
make -j4
Sudo make install
今度はgriveがうまく機能します。
Griveに似た解決策は jdrivesync です。 githubページでコピーをダウンロードできます。
Jdrivesyncを実行するには、次の手順に従います。
Java -jar jdrivesync-0.2.2-jar-with-dependencies.jar -l "/home/directory-to-sync"
で実行しますUbuntu 14.04 griveパッケージは、Grive2バージョン0.4.0-1にアップグレードされました。アップグレード前と同じ問題がありましたが、今朝、アップグレードと同期しようとしましたが、動作します。
Ubuntu 14.04にgrive2 0.4.0-1を、Ubuntuの現在サポートされている他のすべてのバージョンにgrive2を簡単にインストールする方法については、 この回答 を参照してください。 PPAを追加すると、機能しないgriveのアップグレードされていない古いバージョンの代わりに機能するgrive2が実際にインストールされるため、リンクされた回答のSudo apt-get install grive
コマンドが正しいことに注意してください。
GitHubから grive2パッケージを使用できます
インストール
Sudo apt-get install git cmake build-essential libgcrypt11-dev libyajl-dev libboost-all-dev libcurl4-openssl-dev libexpat1-dev libcppunit-dev binutils-dev
パッケージのgithubページにリストされていないこれらも必要でした。
Sudo apt-get install debhelper pkg-config zlib1g-dev
また、これは機能しませんでした:
dpkg-buildpackage -j4
私はこのエラーを受け取りました:
dpkg-buildpackage: error: failed to sign .dsc and .changes file
これは代わりに機能しました:
Sudo dpkg-buildpackage -uc -us
または、手動ビルドも機能しました:
mkdir build
cd build
cmake ..
make -j4
Sudo make install
使用法
同期するには、プログラムを手動で実行する必要があります(「リアルタイムウォッチング」はまだありません)。プロンプトで、次を入力します。
cd /home/yourUsername/GoogleDrive/
これが初めての場合、これを実行します:
Sudo grive -a
それ以外の場合はこれを実行します:
Sudo grive
これを定期的に実行したい場合は、cronジョブをセットアップできます。
これを試してみてください https://github.com/astrada/google-drive-ocamlfuse 、保存中にすぐにファイルを同期するため、何らかの方法で遅くなります。また、GoogleドキュメントとシートをOpen Office形式に変換しています。 (odt&ods)ただし、読み取り専用モードでは、
これは代替手段かもしれませんが、私はこれまで少しだけ遊んだことがあります
Goで書かれたオープンソースです。同期とコピーの両方ができます。
出力は奇妙であり、syncコマンドでデータを削除しないように注意する必要があります。
Griveは使いやすかったのですが、死んでいるようです。
別の興味深い代替案はこれかもしれません: