0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pebble-SDKをWSLのUbuntu18.04に構築

Last updated at Posted at 2020-02-16

これは何ですか?

パイソン??なにそれ牛鬼???な知識0ド素人が表題を達するまでのエラー対処をベースに、これからpebbleに手を出すwin環境の人たちが少しでも気軽に開発へ手を出せるよう1~9.6くらいまでを覚え書いた、ド素人向けメモ。
目的はあくまで環境の構築であり、正しい知識・手順の教示ではありません。
そのため、素人解釈・発言が山程ありますので、事前にバックアップなど、作業はすべて自己責任の下で行ってください。
###修正録###
2020-02-17:赤っ恥も良いところだったので大幅に修正しました。私みたいな素人の役に立ってくれれば嬉しいの気持ち。基本的に追記のみです。
2020-08-15:環境再構築に伴い備忘録としてみたらめちゃくちゃ読みにくかったので表現の統一や修飾の追記などを行いました。

インストールする環境

  • windows10 Education 64bit 1909 build18363.535(実質Proと違い無いはず?)
  • Core-i5-5200U

    RAM 4GB
  • WSL
  • Ubntu18.04LTS

手順と参考にしたもの

普通ならrebbleから手順読んでインストールするのがベストですが当然リンク切れetcで無理でした。
有志により様々なインストール用のガイドやシェルスクリプトが公開されていますが、どれも微妙に足りなかったり何か違ったりします。
そこで、下記のシェルスクリプト

  1. Install Pebble SDK with patch to Ubuntu 64bit
    と、これをもとにインストール方法を解説してくださっている下記サイト様を参考に手順としました。
  2. 生活試行
    これら2つをベースに、実際にあったトラブルと細かな手順を以下に覚え書きます。

WSLの有効化とubuntuの準備

  1. 上記サイトのとおり進めるか、powershellを管理者権限で開いて
PS> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

を実行。

2. windowsストアからUbuntu18.04LTSをインストール。スタートメニューからUbuntuを起動し、ユーザー名とパスワードを作成。

3. Ubuntuのアップデート

sudo apt update
sudo apt dist-upgrade -y

途中紫の画面ではい[y]かいいえ[n]を聞かれるが、確か「アップデート中のシステムリブートをコマンドなしで承認するか」どうかだったはず。[y]でOK、待つ。

4. zipファイルの解凍用パッケージのインストール

sudo apt install unzip

これでunzip [ファイル名.zip]が解凍できるようになります。

5. タイトルバーを右クリックし、プロパティ>オプションで「Ctrl+shift+Vでコピペを有効にする」にチェックチェック。

image.png
image.png

Ubuntuではwindows標準の「Ctrl+C/V」によるコピペができないので、これを設定しておかないと素人的には色々不便です。

これで、準備は整いました。

python-pipとPython2.7のインストール

Python2.7とpipコマンドを使えるようにします。

sudo apt install python-pip python2.7-dev

virtualenvのインストール

第一の難関、virtualenvのインストール。
シェルスクリプトでもインストールされる記述がありますが、事故を起こす可能性が非常に高いので手動で確実にインストールします。

sudo pip install virtualenv

実行して終了したら、

which virtualenv

を実行。
正常にインストールされていれば、

/home/[ユーザー名]/.local/bin/virtualenv

と表示されます。
もし、

Traceback (most recent call last):
File "/usr/local/bin/virtualenv" , line7, in <module>
from virtualenv.main import run_with_catchImport
ImportError : No module named main

と出た場合、うまくインストールされていないので、
sudo pip install virtualenvで再インストール。
/home/[ユーザー名]/.local/bin/virtualenvが出るまで挑戦。
※2,3度やっても成功しない場合はUbuntuを再インストールした方が早かったです。

shファイルのダウンロード

シェルスクリプトのダウンロード。vimでコピペするとだいたい改行とか誤操作で躓く(上記サイトにも注意書きあるのに私はvimして躓いた)ので必ずzipでダウンロードすること。

mkdir ~/download/ //(ファイルが散らばるのが嫌いな人は適宜)
cd ~/download/
wget ["zipのURL"]//(ここで`Ctrl+Shift+V`による貼り付けが約立ちます)
unzip ["ダウンロードしたzipファイル名"]

ファイルを解凍すると英数字のファイル名で生成されるのでリネームなりしたほうが良いかもしれないですね。
一応、中にinstall_pebble_sdk.shtry_install_face.shがあるのを確認します。

中身の書き換え

このシェルスクリプトを実行すれば完了ですが、一部に修正が必要なのでvimコマンドを使って書き換えます。

  1. install_pebble_sdk.shがあるディレクトリで
vim install_pebble_sdk.sh

を実行。中身が羅列されるので、「i」を入力して編集モードへ

2. 25行目あたり

virtualenv --no-site-packages .env

という記述内容から、

virtualenv .env

--no-site-packagesを削除し上記のように書き換えます。
※現在は--no-site-packagesのオプションを使うとエラーが出るため。

3. escキーで編集モードから抜けます。
4. 大文字「ZZ」を入力して上書き保存し終了。

シェルスクリプトの実行

第二の難関、.shの実行。
何度も言いますが私は素人、いわゆる**Shebang(シバン)**を知らないまま
sh install_pebble_sdk.shを実行してしまいました。
シバンというのはスクリプト/ソースコードの1行目に記述されるもので、.shファイルをコマンドとして実行する際に、マシンにどの言語(?)で実行させるかを指定しているらしいです。
今回、.shファイルの一行目はこの通り。

#!/usr/bin/env bash    

つまりこれは**bash**を使ってスクリプトを実行しなさいよという意味ですね。

bash install_pebble_sdk.sh

分かったところで、bashコマンドで実行。しばらく待ちます。
途中何度かy/nの選択が出ますが、例によってディスク容量食うぞという確認なので全てy。

shではなくbash shで実行して失敗

成功のような失敗例の話(早く構築したい人は飛ばしてOK)。
先に述べたとおり、sh install_pebble_sdk.shを実行して失敗した例です。

Successfully installed backports.ssl-match-hostname-3.4.0.2 colorama-0.3.3 enum34-1.0.4 gevent-1.1.1 gevent-websocket-0.9.3 greenlet-0.4.15 httplib2-0.9.1 libpebble2-0.0.26 netaddr-0.7.18 oauth2client-1.4.12 packaging-16.7 peewee-2.4.7 progressbar2-2.7.3 pyasn1-0.1.8 pyasn1-modules-0.0.6 pygeoip-0.3.2 pyparsing-2.4.6 pypkjs-1.0.6 pypng-0.0.17 pyqrcode-1.1 pyserial-2.7 python-dateutil-2.4.1 requests-2.7.0 rsa-3.1.4 sh-1.9 six-1.9.0 virtualenv-13.1.0 websocket-client-0.32.0 wheel-

横に長く一見すると成功したようですが、sdkに必要なパッケージの一部がインストールされただけで、肝心のpebble-sdkのインストールまでこぎつけていないパターン。
このあとすぐリセットしてしまったので正しい解法は不明ですが、おそらくvirtualenvのインストールでコケていた模様です。
ここでふと、shではなくbashでshを動かすことを思い出し、ダメ元でbash install_pebble_sdk.shしました。
するとあら不思議、上記successfully~~~以降のプロセスもスルスル進んでいきました。

bashで動かすべきスクリプトなので成功して当たり前でした。
本当にvirtualenvがインストールできていなかったのか、shだから失敗したのか不明ですが、とにかく失敗です。bashで上書きしたらどうなるかわからないので、大人しくUbuntuを再インストールしたほうが良いです。

エラーの無視とbashによる成功

ここから先はbashで.shを動かした結果になりますが、shで動かしても同じになる模様
同じになりません。失敗します。しました。

スクリプトの進行を見守っていると、前述のvirtualenvインストールに成功していても途中で下記のエラーが出力されている場合があります(スクリプト自体は進行し続ける)。

Traceback (most recent call last):  
File "/usr/local/bin/virtualenv" , line7, in <module>
from virtualenv.main import run_with_catchImport
ImportError : No module named main

私の場合は無視して実行したところ最後まで無事にインストールできたので、一度無視して進めてみるのも手・・・かもしれません(責任は負いません)。

しばらく待つ。私待~つ~わ、いつまでも(ry
途中何度か「ディスク容量食うよ」という旨の[y/n]を聞かれるので、待ってないで適宜[y]で進めましょう。

use v12.14.1
patching file pebble_tool/account.py
patching file pebble_tool/commands/sdk/__init__.py
patching file pebble_tool/commands/sdk/manage.py
patching file pebble_tool/sdk/manager.py
patching file pebble_tool/util/analytics.py

流れるログが止まり、最後の方に上記メッセージが出れば成功。パッチ当てに成功したという旨のログ(多分。
これ以外の何かが出力されればそれは失敗なので、順番に洗いましょう・・・と言いたいのですが、私が確認できたエラーはsh→bashで解決、virtualenvインストールの失敗、そもそもここまでの手順だと一発でできたことにより解説できることがほぼ無いです。
逆に言えばこの手順なら誰でもできる???
別環境で挑戦して、適宜追記します。

2020-02-17追記
Windows10 Pro 64bit環境のSurfacePro4にもインストールできたので、bashとvirtualenvでこけなければ誰でもできそうですね。

Pebble-SDKのインストールを確認する

適当なディレクトリで

pebble --version

を実行(この段階で、pebbあたりでtabキーを押すとpebbleが予測で出てくるハズ)。

もはやここまで来ると基のサイト様をそのままなぞるだけになりますが、一点。
初めてpbble --versionpebble new-project [プロジェクトの名前]を実行した際、opt in to this collectionがどうのこうの表示されます。
pebble.PNG

これはかつてpebbleがサービス稼働していた時代、pebble側でユーザーが何作ってるかなどを収集しており、それに同意するかどうかを訪ねているわけですね。
今となっては収集する側が居ないので、どちらでも良いです。
(画像ではSDKコアがまだ入ってないので、pebble Tool v4.5で終わってます。)

SDKコアのインストール
[y/n]の選択後、NO SDK installedの表示とともにSDKコアのインストールが開始されます。始まらない場合は

pebble new-project [適当な名前]

を実行。
途中ライセンスに同意するかどうかを聞かれるので、rebbleなどで読んでから[y]。
そこそこ時間がかかるので、今度は本当に待ちます。
pebble2.PNG

new project=新しいアプリ雛形の作成に成功すればSDKコアもインストール成功です。
ちなみに、新規で作ったプロジェクトのフォルダやファイルは、pebble new-projectコマンドを実行したディレクトリに生成されるので、予めフォルダなどを作っておいたほうが良いかもですね。

一応pebble --versionでバージョン確認。
image.png
こんな感じに出てきたら完っ全にフルハウス、成功です。お疲れさまでした。

###どこかで失敗のパターン###
もし、v4.5の後にno SDK installedのような記述があれば失敗なのでubuntuを再インストールするなどして、再度1からやったほうが素人には早いです。
もう一度pebble new-project [任意の名前]を実行してSDKインストールしてみましょう。私はこれでできました。
command not found、もしくはPebble Tool v4.5しか出ない(active SDK~が無い)場合は、手順にしたサイト様にも解説があるように

source .bashrc

を実行し(て環境変数をリロードし)て、再度pebble --versionしてみます。

次に別のエラーの例。
先の項のパッチが当たったよという旨のログで、何回目かの挑戦の際、末尾に
install_pebble_sdk.sh: 152: install_pebble_sdk.sh: source: not foundが発生し、インストール確認の際にsdkコアが入ってない旨が表示されました。
.shファイルの152行目はsource $HOME/.bashrcなので、virtualenvが原因な気がして何度かsudo pip install virtualenvしましたが結局変わらずだったので、やり直しました。明確な原因は不明です。
これもおそらくsh ~~.shで動かした弊害かと思われますが詳細不明。
それ以外のエラーと以降については、参考の項で上げたサイト様にあるエラー確認と手順を踏めば、問題なく確認できるはずです。

総括

知識0の素人が手を出して大やけどしたけど最終的に回復したのでオッケー。シバンについても良いお勉強になりました。
して、開発環境は整ったものの、依然としてエミュレーター関係は動かないし、そもそも環境作ったところでPythonもCもjsも読めない書けない作れない。
結果として成功したからいいものの、下手したら今でもエラーに飲まれていた可能性があったわけで。
それでもここに至るまで、意味不明なエラーと流れるログは、ストレスまみれの現実社会を忘却の彼方へ葬り去ってくれました。ハマできる何かがあるって素晴らしい。
落ち着いたら今度はペブルウォッチ本体への接続とアプリのインストールもまとめたいですね。

最後になりましたが、生活試行様およびredditスクリプトの作者の皆様、色々お教えくださった青鳥の某御方、ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?