elementary OS(ubuntu)へandroid studioを入れてkotlinした
ちょっとハマった話は前の記事に
最初はReact Nativeで開発をする予定だったのですが、同僚がiOSをswiftでやると言い出したので、仕方なく僕がkotlinをやることになりました。
なので、環境構築します(最近環境構築しかしてないぞ)。
java & android studioのインストール
忌々しいJavaからインストールしていきます(Java好きの方々すみません)
前の記事でadd-apt-repositoryしてるのですが、その手順も入れておきます。
$ sudo add-apt-repository ppa:webupd8team/java $ sudo apt update $ sudo apt install oracle-java8-installer
oracle-java8-installer
のインストールの際に赤い確認画面が出てきます。「了解」->「はい」を選択したらおkです。
javaが入ってるか確認
$ java -version java version "1.8.0_161" Java(TM) SE Runtime Environment (build 1.8.0_161-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
問題なさそう。
どんどん必要なパッケージを入れていきます。
$ sudo apt install oracle-java8-set-default
これは入ってたみたい。
$ sudo apt install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6 パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 E: パッケージ lib32bz2-1.0 が見つかりません E: 'lib32bz2-1.0' に一致するパッケージは見つかりませんでした E: 正規表現 'lib32bz2-1.0' ではパッケージは見つかりませんでした
なんかエラーがでてるので、調べていろいろ試した結果、 lib32bz2-1.0
に関しては以下のコマンドで行けた。
$ sudo dpkg --add-architecture i386 $ sudo apt update $ sudo apt install libbz2-1.0:i386
lib32stdc++6
がまだ入ってなかったので直接指定で入れます。
$ sudo apt install lib32stdc++6
多分準備完了
あとはAndroid Studio自体をインストールします。
Android Studio のインストール | Android Studio
SSDだけどまあまあ時間かかる。。。
公式ページに書いてあったのでそれに習って、/usr/local
へ移動させます。
$ cd Downloads $ unzip android-studio-ide-171.4443003-linux.zip
なんかめちゃくちゃ解凍された。てなわけで、移動させてあげる。
$ sudo mv android-studio /usr/local/
これでおk。
起動してみまーす
Android Studioを起動!
$ sudo /usr/local/android-studio/bin/studio.sh (java:12819): Gtk-WARNING **: module_path にはテーマ・エンジンがありません: "pixmap", (java:12819): Gtk-WARNING **: module_path にはテーマ・エンジンがありません: "pixmap", (java:12819): Gtk-WARNING **: module_path にはテーマ・エンジンがありません: "pixmap", (java:12819): Gtk-WARNING **: module_path にはテーマ・エンジンがありません: "pixmap", 3 13, 2018 11:23:00 午前 java.util.prefs.FileSystemPreferences$1 run INFO: Created user preferences directory.
なんか警告でてるけどスルーします。
とりあえず問題なさげ。
android studioの設定とか
よーわからんので適当に。
Standardで。
もちろんdarkで。
あとはどんどん次に行くだけ。
これがまあまあ長いので待機。TLパトロールでもして待ってください。
おわったのでfinishを押す。と同時にwelcome画面が出てきます。
kotlin pluginをインストール
JetBrains社がプラグインを提供しているらしいのでそれを入れる。
右下のConfigure => Pluginsを選択。
「Install JetBrains plugin ...」を押下後、kotlinで検索。
なんか入ってるっぽいので、updateしておきます。
んでRestart Android Studioを押下。
これで一旦kotlinの環境構築が終了。
残りはまたこんど
projectを作ってJavaのコードをkotlinに変換するのは今度にします。
とりあえずここまでで終わりー。
おつでした。
elementaryOSにbluetoothドライバが入ってなかったのでいれようとした
この前記事にあげた新しいPC(HPのspectre)のLinuxにはbluetoothドライバが入っていたのですが、ThinkPadの方を見てみたら入ってなかったので入れる試みをしました\(^o^)/
PCちゃん
- ThinkPad x230
- elementary OS
パッケージのインストール
必要なパッケージを指定して入れたいですが、めんどくさい
なのでとりあえず必要なもんをaptします。
$ sudo apt install bluez パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 bluez はすでに最新バージョン (5.37-0ubuntu5.1) です。 bluez は手動でインストールしたと設定されました。 アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
は?
入ってる臭い。アイコン出てないんだけど!
とりあえずbluemanを入れてみる。
$ sudo apt install blueman パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが新たにインストールされます: blueman アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 1,673 kB のアーカイブを取得する必要があります。 この操作後に追加で 4,948 kB のディスク容量が消費されます。 取得:1 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 blueman amd64 2.0.4-1ubuntu2 [1,673 kB] 1,673 kB を 1秒 で取得しました (1,656 kB/s) 以前に未選択のパッケージ blueman を選択しています。 (データベースを読み込んでいます ... 現在 229939 個のファイルとディレクトリがインストールされています。) .../blueman_2.0.4-1ubuntu2_amd64.deb を展開する準備をしています ... blueman (2.0.4-1ubuntu2) を展開しています... dbus (1.10.6-1ubuntu3.3) のトリガを処理しています ... bamfdaemon (0.5.3~bzr0+16.04.20180209-0ubuntu1) のトリガを処理しています ... Rebuilding /usr/share/applications/bamf-2.index... gnome-menus (3.13.3-6ubuntu3.1) のトリガを処理しています ... desktop-file-utils (0.22-1ubuntu5.1+elementary2~ubuntu0.4.1) のトリガを処理しています ... mime-support (3.59ubuntu1) のトリガを処理しています ... hicolor-icon-theme (0.17-1~elementary0.4.1) のトリガを処理しています ... man-db (2.7.5-1) のトリガを処理しています ... libglib2.0-0:amd64 (2.48.2-0ubuntu1+elementary0.4.1) のトリガを処理しています ... blueman (2.0.4-1ubuntu2) を設定しています ... dbus (1.10.6-1ubuntu3.3) のトリガを処理しています ...
なるほど!君が入ってなかったのか
じゃあ、blueman-manager起動しよう。。。。
あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ
いみふ。
デーモン起動しなきゃいけないのかなとおもったので起動してみる。一緒にPC起動時にデーモンが自動に起動するよう設定も入れる。
$ sudo systemctl start bluetooth.service $ sudo systemctl enable bluetooth.service Synchronizing state of bluetooth.service with SysV init with /lib/systemd/systemd-sysv-install... Executing /lib/systemd/systemd-sysv-install enable bluetooth $ sudo blueman-manager
......だめだ。同じエラーが出る。
bluezのパッケージを全部指定して入れる。
sudo apt-get install bluez bluez-alsa bluez-audio bluez-btsco bluez-compat bluez-cups bluez-dbg bluez-gstreamer bluez-hcidump bluez-pcmcia-support bluez-tools bluez-utils python-bluez bluewho indicator-bluetooth libbluetooth-dev libgnome-bluetooth11 libbluetooth3 python-gobject python-dbus
んーうまくインストールできない。
blueman-manager
がうまくいかないので、bluetoothctl
を使う。
$ bluetoothctl #
対話モードになったけど何も入力できん。詰んでるわこれw
もしやと思って、左上のアプリケーションからbluetoothを検索してみた。
ある!!!!
起動してみた!
ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ
だめっすねこれ。
衝撃の事実
最後にbluetoothイヤホンを接続モードにして以下を試しました。
$ sudo hcitool scan or $ sudo bluetoothctl
上ではDevice is not available: No such device
。下は安定の対話モードだけど対話する気がない。
これはこれはと思ってThinkPad x230がそもそもbluetooth使えるのか調べてみたら...
ない!!!!!!!!!!!!!
今までの苦労は何だったんだ。今度bluetoothモジュール取り付けてやるからな。
OWARI
kotlinでしょっぱなから詰まった話
現在「kotlinスタートブック」の15章をやっています。
いきなりラムダ式やnull安全やらの内容をやると意味がわからなくなるので、一旦スルーで基本文法だけ抑えて一気にandroid開発の章を見ていましたが、しょっぱなから詰まりました。
error: unresolved reference: model
なんかしらんけどpackage practice.qiitaclient.model.*
でエラーをでてるっぽい。
直接ファイル指定(package practice.qiitaclient.model.User
)しても同じ結果、イミフ。
同じように詰まっている人たちがいた
すべて試したところ、最後のっぽい。
けどREPLを再起動しても、同じエラーが出る。。。
なんの解決にもなってないけど、一旦全部保存して、同期しなおしてからandroid studioを再起動。
いけたze
参考書が書かれたのは二年前なので同じ内容は出てないけど、一旦問題なくうごいた。
こんなエラーは出ないようになってほしいのぉ。。。
今後同じようなエラーが出てちゃんと調査したら関連記事作成しまっす。
後日談
他のファイルを作成して同じようなことをしてもエラーが発生する。
まじでイミフ。
調査が出来次第、また記事にあげます。。。。
elementaryOSでトラックパッドの検出範囲を変えた話
winで最初作業していた時は全く無かったのですが、Linuxでデュアルブートしメインで使い始めたらめちゃくちゃ気になり始めたので修正しました。
タイピングをするたびにマウスが動いて仕方がなかった。。。
おかげでとっても快適です!
PCスペ(前も書いたけど)
- HP spectre x360
まずは手のひら検出
ここを参考にしました。
結果的には全く効力がなかったですw
これは諦めました。
次に範囲の設定
まずはトラックパッドの範囲を調べます。
$ grep range /var/log/Xorg.0.log [ 6.128] (--) synaptics: SynPS/2 Synaptics TouchPad: x-axis range 1302 - 5640 (res 37) [ 6.128] (--) synaptics: SynPS/2 Synaptics TouchPad: y-axis range 1116 - 4740 (res 64) [ 6.128] (--) synaptics: SynPS/2 Synaptics TouchPad: pressure range 0 - 255 [ 6.128] (--) synaptics: SynPS/2 Synaptics TouchPad: finger width range 0 - 15
これでトラックパッドのx座標とy座標がわかります。
今回は手の平があたるのが問題だったので、x座標のみいじりました。
座標の見方はx座標の一番左が1302、一番右が5640って感じみたい。
ここを参考にさせていただきました。
設定を /etc/X11/xorg.conf.d/50-synaptics.conf
に記述すればいいらしい。ない場合は /usr/share/X11/xorg.conf.d/50-synaptics.conf
をコピーして作成せよ、と。
…僕のPCそもそも/usr/share/X11/xorg.conf.d/50-synaptics.conf
がないんですけどw
ってことで直接 /etc/X11/xorg.conf.d/50-synaptics.conf
だけ作成して、以前作成したThinkPadのやつを参考に作りました。
それが以下。
Section "InputClass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" MatchDevicePath "/dev/input/event*" Option "AreaLeftEdge" "2000" Option "AreaRightEdge" "5000" EndSection
x軸の1302~2000, 5000~5640の範囲を無効化するって意味です。
おわり
トラックパッドが動かなくなっただけで超快適になりました!
座標の範囲の見方が全然わからなくて設定で迷ってましたが、やっといけた。
では。
elementary OSにandroid studioを入れようとしたときにadd-apt-repositoryコマンドがないと言われた
業務でkotlinを使うことになり、最初にjavaを入れようとしたら速攻詰まりました。
add-apt-repositoryコマンドがない!!!!!!!!
ubuntu環境への環境構築の記事等でよく見ていたので知ってはいたんですけど、標準装備でないとは想定外でした。
パッケージの検索
以下からadd-apt-repositoryを検索
すると結果がこれ
Ubuntu – Package Contents Search Results -- add-apt-repository
software-properties-common
の中にあるっぽい。
$ sudo apt install software-properties-common $ sudo add-apt-repository ppa:webupd8team/java
他の方法
apt-file
を使う方法
$ sudo apt install apt-file $ sudo apt-file update $ sudo apt-file search add-apt-repository software-properties-common: /usr/bin/add-apt-repository software-properties-common: /usr/share/man/man1/add-apt-repository.1.gz
software-properties-common
にあることがわかります
おわり
うまく行ったZE。
elementaryOSは最小構成とはいえ、add-apt-repository
くらい入れておいて欲しいっすね。
Win10とelementaryOSでデュアルブートしてみた
Rubyのためにブログを開設したのにまったく違うことしか書いてないですが、今回もそんな感じっす。
新しい会社(まだ正式には入っていないけど)でPCを購入していただいたので、そちらのPCへLinux環境を作ってみました。
マシンスペック
- HP Spectre x360 13-ac000
- Windows 10 Home (64bit)
- インテル Core i7-7500U プロセッサー (2.70-3.50/4)
- 512GB SSD (PCIe NVMe M.2)
- メモリ1866MHz 16GB
なんで仮想環境にしなかったのか
VMとかVirtualBoxで作ってもよかったんですが、Linuxなのに仮想環境だとその早さを実現できないのではと危惧したからです。
実際他の方の記事をみるとそういった不満が多かったというね。
業務でwinを使うことはほとんどないですし、Linuxで捗る作業が多い。
でも、もしofficeとかいれることになったときに困るので、winのOSを残しつつデュアルブートで快適に開発を行おうと思ったのですた。
準備
以前、thinkpad x230にelementaryOSを入れたときのライブUSBがあったので、それをそのまま流用することにします(なので手順は省きます)。
一応以下のリンクからダウンロードできます(カスタムで0$にすれば無料です)。
システム修復ディスクの作成
めんどくさかったのでカット(USBメモリ買わんと行かんかったし)
バックアップの作成
会社のNASにぶち込みました。
「設定」->「更新とセキュリティ」->「バックアップ」でバックアップ先をNASにしてあげればいけます。
バックアップ先はデフォルトでは接続しているドライブしか表示されないので、「ネットワーク上の場所をすべて表示」で共有フォルダを選択したらおk。
win機のパーティション分割
左下のwinアイコンを右クリックし、「ディスク管理」を開きます。
Windows(C:)ドライブを右クリックしてボリューム縮小してください。
デフォルトでだいたい半分になったのでこれで行きます。
マルチブートの起動順位を変更
以下を参照
ライブUSBを指してF9連打
PCにelementaryOSの入ったUSBを指してブート画面を開きます。
「Try elementary OS without instaling」を選択。
すぐにelementary OSの象徴である「e」のマークが出てきます。
無事デスクトップが表示されたら、elementary OSのマークのアイコンを選択します。
elementary OSのインストール
言語で日本語を選択 -> wifiを接続
次に「elementaryのインストール中にアップデートをダウンロード」と「〜サードパーティーソフトウェアをインストール」にチェックをいれて、セキュアブートを無効にします。
インストールの種類で「それ以外」を選択し、「続ける」を押下。
パーティションの振り分け
winの方で縮小したドライブから、4GBだけ残してあとはすべて割り当てます。
空いている領域を選択し「基本パーティション」「この領域の始点」にチェックをつけ、利用方法を「ex4ジャーナリングファイルシステム」にします。そして、マウントポイントを「/」としておkを選択。
残りの4GBはswap領域として作成します。「基本パーティション」「この領域の終点」「スワップ領域」でおkを選択。
ブートローダをインストールするデバイスでは自身のSSD/HDDを選択するようなので、一番上を選択する(ここをミスるとOSにアクセスできなくなるらしい、要はチェックメイト状態)。
無事完成!…と思ったら
一旦再起動してwinの方を立ち上げてみたら、シャットダウン出来なくなりましたwww
シャットダウンしても、またwinが立ち上がるという。。。
ちょっと意味が分からなかったので、まだやっていなかったwinの高速スタートアップを無効にする設定をやりました。(これもあとで記事書くわ)
するとやっとシャットダウンできるようになった!!!
最後に
とりあえずデュアルブートできるようになって、起動したらBIOS画面が出るようになったのでめでたし。
新しいPCの設定をいろいろやっていきたいと思います。
それもまた記事にします。
何かわからないことがあればコメントにお願いします。
ではでは〜
React Nativeを環境構築してみたら詰まった話
ちょっと所用でReactを触ることになり、先にちょっとだけReact Nativeを触っちゃおうということになったので環境構築してました。
安定して詰まったのでそれをここに記す。
環境
- OSX (バージョン忘れた)
パッケージのインストール
nodebrewが入っている状態で進めていっています(これもバージョンわからないので後で書く。。。) まずはhomebrewでReactに必要なものをインスコします。
$ brew install npm $ brew install watchman $ brew install flow
npm5だとreact nativeが動かないようなので、対応するnodeを入れます。
ここではv7.10.1
です(7系で一番新しいやつ)。
$ nodebrew install-binary v7.10.1 $ nodebrew use v7.10.1 $ node -v v7.10.1 $ npm -v 4.2.0
npmでcreate-react-native-app
とreact-native-cli
を入れます。
(なぜかcreate-react-native-app
コマンドが使えなく、react-native
コマンドしか使えなくなったので調査中)
$ npm install -g create-react-native-app $ npm install -g react-native-cli $ npm start 2018-03-01T17:30:34,051: [cli] Failed to open /Users/fndm40/Library/LaunchAgents/com.github.facebook.watchman.plist for write: Permission denied Watchman: watchman --no-pretty get-sockname returned with exit code=null, signal=SIGABRT, stderr= 2018-03-01T17:30:34,051: [cli] Failed to open /Users/fndm40/Library/LaunchAgents/com.github.facebook.watchman.plist for write: Permission denied
やっぱ何かしらエラー出ますよね。。。
brewで入れたWatchmanに権限がないようなので与えてあげます。
$ sudo chown -R $(whoami):staff ~/Library/LaunchAgents $ npm start
うまく行けば、ブラウザに画面が表示されます!
最後に
今回はお試しでmac環境を作ったので、次は本格的にUbuntuの方で出来たらなぁーと思います。
React Nativeじゃなくて、kotlinを使うことになりそうですが。。。