ネタ仕込みメモ
ええと以前のエントリを見てみたら
emulator の起動に失敗しているな、てか一年も前の話なのかorz
とりあえず環境作って動作確認をしてみます。
環境作る
まず ClojureOnUbuntu なソレを見つつ環境を作ります。とは言え
- ant が入ってない様子なので導入
- Clojure を download して ant でナニ
$ mkdir opt $ cd opt $ git clone git://github.com/richhickey/clojure.git $ cd clojure $ git remote show origin * remote origin Fetch URL: git://github.com/richhickey/clojure.git Push URL: git://github.com/richhickey/clojure.git HEAD branch: master Remote branches: 1.0.x tracked 1.1.x tracked 20081217 tracked 20090320 tracked chunks tracked ensure tracked equal tracked equiv tracked gh-pages tracked lazy tracked master tracked new tracked num tracked par tracked prim tracked seqfns tracked streams tracked Local branch configured for 'git pull': master merges with remote master Local ref configured for 'git push': master pushes to master (up to date) $
なんか色々あるなぁ。今のバージョンは何なのか、が分からないあたりがまだ git 使いとして微妙な限りですが気にせず続けます。
$ ant $ mkrir ~/.clojure $ cp clojure.jar ~/.clojure $
ええと、ant ちうに端末がカタマりましたorz
とりあえず ctrl+alt+f1 とかで仮想コンソールに行けなくてこーゆー時に非常に困ります。てか、4 年くらい前にメイン端末 Debian だった頃は端末がカタマるとか皆無だったんだけどなぁorz
と言いつつ ant にリトライしました。
BUILD SUCCESSFUL Total time: 2 minutes 42 seconds $
やれやれ。.jar をコピーしたりなんかして以下。
$ cd ~/.clojure/ $ java -cp clojure.jar clojure.lang.Repl WARNING: clojure.lang.Repl is deprecated. Instead, use clojure.main like this: java -cp clojure.jar clojure.main -i init.clj -r args... Clojure 1.2.0-master-SNAPSHOT user=> (+ 1 41) 42 user=> (exit) java.lang.Exception: Unable to resolve symbol: exit in this context (NO_SOURCE_FILE:2) user=>
あ
Ctrl-d will exit the REPL.
て書いてあるなorz
次は clojure-contrib を clone してきてここで maven2 が必要なのか。って mvn install ではないみたいですね。。
なんか target/clojure-contrib-*.jar ができない。こんな所でハマるとわ。再度 mvn install な出力を lv に流してみた。
[ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Failed to resolve artifact. Missing: ---------- 1) org.clojure:clojure:jar:1.2.0-master-SNAPSHOT Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=org.clojure -DartifactId=clojure -Dversion=1.2.0-master-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=org.clojure -DartifactId=clojure -Dversion=1.2.0-master-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId= [id] Path to dependency: 1) org.clojure:clojure-contrib:jar:1.2.0-SNAPSHOT 2) org.clojure:clojure:jar:1.2.0-master-SNAPSHOT ---------- 1 required artifact is missing. for artifact: org.clojure:clojure-contrib:jar:1.2.0-SNAPSHOT from the specified remote repositories: central (http://repo1.maven.org/maven2), clojure-snapshots (http://build.clojure.org/snapshots), clojure-releases (http://build.clojure.org/releases) [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3 seconds [INFO] Finished at: Sun Jan 30 22:04:18 JST 2011 [INFO] Final Memory: 18M/104M [INFO] ------------------------------------------------------------------------
うーん。どうも clojure 本体へのパスが無い、って言われてるみたい。面倒なので 1.0.x とか 1.1.x 系なナニを checkout してトライした方が良いのかどうなのか。
と言いつつ
clojure なディレクトリを覗いてみたら clojure-1.2.0-master-SNAPSHOT.jar というソレが見えますな。
Then, install it using the command: mvn install:install-file -DgroupId=org.clojure -DartifactId=clojure -Dversion=1.2.0-master-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file
なナニを参考に以下?
$ mvn install:install-file -DgroupId=org.clojure -DartifactId=clojure -Dversion=1.2.0-master-SNAPSHOT -Dpackaging=jar -Dfile=~/opt/clojure-1.2.0-master-SNAPSHOT.jar
無事終わった模様? と思ったら
[ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error installing artifact 'org.clojure:clojure:jar': Error installing artifact: File /home/rms/opt/clojure-contrib/~/opt/clojure-1.2.0-master-SNAPSHOT.jar does not exist
なんだこれはorz
相対パスでリトライ。
$ mvn install:install-file -DgroupId=org.clojure -DartifactId=clojure -Dversion=1.2.0-master-SNAPSHOT -Dpackaging=jar -Dfile=../clojure/clojure-1.2.0-master-SNAPSHOT.jar [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'install'. [INFO] ------------------------------------------------------------------------ [INFO] Building clojure [INFO] task-segment: [install:install-file] (aggregator-style) [INFO] ------------------------------------------------------------------------ [INFO] [install:install-file {execution: default-cli}] [INFO] Installing /home/rms/opt/clojure/clojure-1.2.0-master-SNAPSHOT.jar to /home/rms/.m2/repository/org/clojure/clojure/1.2.0-master-SNAPSHOT/clojure-1.2.0-master-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1 second [INFO] Finished at: Sun Jan 30 22:24:16 JST 2011 [INFO] Final Memory: 12M/104M [INFO] ------------------------------------------------------------------------ $
でも、.jar が見当らん。package をこうしたみたらどうか。
$ mvn package -Dfile=../clojure/clojure-1.2.0-master-SNAPSHOT.jar
しかも fon の無線 AP 不調で接続が頻繁に切れているorz
接続を確認してからリトライ。なんかやたらに .pom なファイルを download しとるな。なんか test してるみたいなので今度こそ何とかなるのかなぁ。
[INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: /home/rms/opt/clojure-contrib/target/clojure-contrib-1.2.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3 minutes 15 seconds [INFO] Finished at: Sun Jan 30 22:36:21 JST 2011 [INFO] Final Memory: 29M/230M [INFO] ------------------------------------------------------------------------ $ ls target/ classes clojure-contrib-1.2.0-SNAPSHOT.jar maven-archiver test-classes $
やれやれ。で、次どーすんだっけ。
.profile に以下を追加。
if [ -d "$HOME/.clojure" ] ; then CLOJURE_EXT=$HOME/.clojure ; export CLOJURE_EXT fi if [ -d "$HOME/opt/clojure-contrib/launchers/bash" ] ; then PATH=$PATH:~/opt/clojure-contrib/launchers/bash; export PATH fi alias clj=clj-env-dir
で、以下。
$ source .profile $ clj Clojure 1.2.0-master-SNAPSHOT user=>
とりあえず導入はこれで OK なのか。
もう少し
なんか導入で微妙な迷走なんですが勢いが付いたので続行。とりあえず android-sdk-linux_x86 は導入済みなので symlink を /opt 配下にナニ。
$ ln -s Desktop/Android/android-sdk-linux_x86 ~/opt/android
違うな。
$ ln -s ~/Documents/Android/android-sdk-linux_86/ ~/opt/android
で、~/.profile に以下を追加。
if [ -d "$HOME/opt/android" ] ; then PATH=$PATH:~/opt/android/tools; export PATH fi
で、以下。
$ emulator emulator: ERROR: You did not provide the name of an Android Virtual Device with the '-avd <name>' option. Read -help-avd for more information. If you *really* want to *NOT* run an AVD, consider using '-data <file>' to specify a data partition image file (I hope you know what you're doing). $
一応パスは通ってますが作った AVD って何だっけ、と言いつつ android 起動して作成済みな avd を確認した後に以下。
$ emulator -avd google_2.3&
出た。問題はここから先だな。android-mode を git から引っ張ってきて云々。.emacs に追加するソレは以下が正解な模様。
;; android-mode (add-to-list 'load-path "~/opt/android-mode") (require 'android-mode) ;(defcustom android-mode-sdk-dir "~/opt/android") (defcustom android-mode-sdk-dir "~/opt/android" "Set to the directory containing the Android SDK." :type 'string :group 'android-mode)
でも M-x android-start-emulator は動かん。
android-mode.el の中の該当部分が以下。
(defun android-start-emulator () "Launch Android emulator." (interactive) (let ((avd (or (and (not (string= android-mode-avd "")) android-mode-avd) (completing-read "Android Virtual Device: " (android-list-avd))))) (unless (android-start-exclusive-command (concat "*android-emulator-" avd "*") (concat (android-tool-path "emulator") " -avd " avd)) (message (concat "emulator " avd " already running")))))
とりあえず以前ナニしたエントリでも M-x android-start-emulator が動かない云々でハマッていたみたい。
このあたり、問題処理続行って事にしますが xHago までに何とかなるとゆーよりも ojag な LT ネタになっちゃう可能性が高いなorz