2014年4月19日土曜日

Ubuntu64bitでAndroidのadbコマンド実行するとNo such file or directoryとか出る時の対応

このエントリーをはてなブックマークに追加 はてなブックマーク - Ubuntu64bitでAndroidのadbコマンド実行するとNo such file or directoryとか出る時の対応

Ubuntu13.10の64bitでAndroidのadbコマンドを実行するとNo such file or directoryでエラーとなってしまった

$ adt-bundle-linux-x86_64-20140321/sdk/platform-tools/adb 
-bash: adt-bundle-linux-x86_64-20140321/sdk/platform-tools/adb: No such file or directory

調べるとAndroid SDKのページに以下のような記述があり、Linuxの64bitマシンでも32bitアプリが動くような環境にする必要があるらしい。

64-bit distributions must be capable of running 32-bit applications.

こちらのChefのレシピを参考にするとUbuntuのバージョンによってインストールする必要があるものは違うようだが、Ubuntu13.10の場合、lib32stdc++6をインストールすれば動くようになった。

$sudo apt-get install lib32stdc++6
$adt-bundle-linux-x86_64-20140321/sdk/platform-tools/adb version
Android Debug Bridge version 1.0.31

Ubuntu13.04以上の場合にはlib32stdc++6、Ubuntu11.10以上の場合にはlibstdc++6:i386、それ以外の場合にはlib32z1が必要らしいがこちらは未確認。

2014年4月12日土曜日

VagrantでVirtualBoxを利用する場合にVMの設定をVagrantfileで色々変えてみた

このエントリーをはてなブックマークに追加 はてなブックマーク - VagrantでVirtualBoxを利用する場合にVMの設定をVagrantfileで色々変えてみた

VagrantでVirtualBoxを利用する場合にVMの設定をVagrantfileを利用して変更する場合のメモを記載 。

やってみたこと。

  • GUIモードの起動
  • VM名称変更
  • メモリ変更
  • CPU数
  • ホストOSに対してのCPU利用制限率
  • HDDの追加

なお、基本的な記述は公式のこちら を参照の事。

GUIモードにする

Vagrantfileに以下の記述を追記すればGUI用のウィンドウが利用出来る。

config.vm.provider "virtualbox" do |vb|
  vb.gui = true
end

ただし、BOXにGUI用のソフトがインストールされていない場合には別途インストールが必要。

Ubuntuの場合、VagrantをGUIで立ち上げる(Ubuntu)を参考にして実施出来る事を確認。

VMの名称を設定する

デフォルトだとVMの名称はVagrantfileのあるフォルダ名称とタイムスタンプを利用したものになるので、以下で任意に設定可能

config.vm.provider "virtualbox" do |vb|
  vb.name = "my_vm"
end

ちなみに後述するvb.customizeを利用した以下でも設定可能。

config.vm.provider "virtualbox" do |vb|
  vb.customize ["modifyvm", :id, "--name", "my_vm"]
end

その他色々もっと変更したい

上記以外でも色々設定したい場合、Virtualboxの操作をCUIで行えるVBoxManageコマンドをvb.customizeをというような記述で記載する。

VBoxMangeに関する詳細は公式のこちら を参照の事。

例えばVBoxManage modifyvmというコマンドを利用して名称変更する場合には、以下のような記述となる。

config.vm.provider "virtualbox" do |vb|
  vb.customize ["modifyvm", :id,
                "--name", "my_vm"]
end

上記はコマンドラインで

$VBoxManage modifyvm ubuntu64_default_1397309544936_13521 --name my_vm

というのを実行した場合と同義となる。

なお、ubuntu64_default_1397309544936_13521というようなどのVMに対して処理を実行するかをコマンドからは指定する必要があるが、Vagrantfileに記述する場合には:idと記載すればVM名称となるようにしてくれる。

デフォルトで既に記述があるが、メモリを変えたい場合には以下のようにする。

config.vm.provider "virtualbox" do |vb|
  vb.customize ["modifyvm", :id,
                "--memory", "1024"]
end

CPUの数を変えたい場合はこんな感じ。

config.vm.provider "virtualbox" do |vb|
  vb.customize ["modifyvm", :id,
                "--cpus", "2"]
end

ホストマシンのCPUをどれぐらいの利用制限率とするかも以下で変更出来る。

config.vm.provider "virtualbox" do |v|
  vb.customize ["modifyvm", :id,
                "--cpuexecutioncap", "50"]
end

また、こちらを参考に、以下のようにするとHDDの追加も可能だった。

config.vm.provider :virtualbox do |vb|
      file_to_disk = "./tmp/disk.vdi"
      if not File.exist?(file_to_disk) then
        vb.customize ["createhd",
                      "--filename", file_to_disk,
                      "--size", 100 * 1024]
      end
      vb.customize ['storageattach', :id,
                    '--storagectl', 'SATAController',
                    '--port', 1,
                    '--device', 0,
                    '--type', 'hdd',
                    '--medium', file_to_disk]
end

なお、上記のSATACOntrollerという箇所はSATA Controllerとなっている場合もあり、その場合には対応する記述にしないとエラーとなるので注意。

2014年4月2日水曜日

Vagrantを利用して作成したVMからVMへ.ssh/configを設定して簡単にログインする

このエントリーをはてなブックマークに追加 はてなブックマーク - Vagrantを利用して作成したVMからVMへ.ssh/configを設定して簡単にログインする

.ssh/configを利用して

$ssh hoge

みたいなやり方でログイン出来るようにする。

構成

  • Ubuntu12.04 32bit
  • ログインする方(192.168.33.20)、ログインされる方(192.168.33.21)
  • Vagrantにて上記VMを作成し、起動(vagrant up)済み
  • ホスト名はsound
  • ログインするアカウントはvagrantアカウント

ログインする方(vagrantユーザーでログイン)

# 秘密鍵、公開鍵を作成
$ssh-keygen -t rsa
$cd ~/.ssh

# 公開鍵を表示して何かにコピペ
$cat id_rsa.pub

# sshログインの情報設定
$vi config

Host sound
HostName 192.168.33.21
User vagrant
IdentityFile ~/.ssh/id_rsa

ログインされる方(vagrantユーザーでログイン)

# authorized_keysの末尾にid_rsa.pubの内容を追加
$vi ~/.ssh/authorized_keys

この状態でログインする方のVMで

$ssh sound

とするとパスワードなしでログインが可能となる。

参考

.ssh/configで設定すると接続が楽になる方法