2014年12月4日木曜日

MBAのVagrantでubuntuを起動する

Windows7にVirtual Boxをインストールしたので、vagrantもインストールしたのですが、低スペックだったせいかVMを起動できませんでした。。

その後、MacBookAirを購入したので、Virtual Boxとvagrantをインストールし、リベンジしてみました。

ということで、vagrantのbox追加からdestroyまでをまとめていこうと思います!

まずは、boxの追加をします。boxは、vagrant cloudで好きなものや用途にあったものを選びます。

今回は、ubuntu 14.0.4を選んでみました。
boxを選んだら、ターミナルでboxを追加します。

boxの追加はvagrantのboxコマンドで行います。
まずは追加なので、サブコマンドにaddを指定し、引数にbox名とボックスのURLを入力します。

vagrant box add box名 ダウンロード元URL

上記の形式に沿って、実行したのが下記のコマンドになります!

$ vagrant box add ubuntu/trusty32 https://vagrantcloud.com/ubuntu/boxes/trusty32
==> box: Loading metadata for box 'https://vagrantcloud.com/ubuntu/boxes/trusty32'
==> box: Adding box 'ubuntu/trusty32' (v14.04) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/ubuntu/boxes/trusty32/versions/14.04/providers/virtualbox.box 
==> box: Box download is resuming from prior download progress 
==> box: Successfully added box 'ubuntu/trusty32' (v14.04) for 'virtualbox'! 

これでboxを追加できました!追加したboxは、listサブコマンドで確認できます。

$ vagrant box list 
ubuntu/trusty32 (virtualbox, 14.04) 

追加したときに指定した、box名があれば追加完了です!追加できていることを、確認できましたので、実際に起動してみようと思います。

VMを起動するときは、vagrant upコマンドを実行します。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider... 
==> default: Importing base box 'ubuntu/trusty32'... 
==> default: Matching MAC address for NAT networking... 
==> default: Checking if box 'ubuntu/trusty32' is up to date... 
==> default: Setting the name of the VM: virtual-env_default_1417616732058_47717 
==> default: Clearing any previously set forwarded ports... 
==> default: Clearing any previously set network interfaces... 
==> default: Preparing network interfaces based on configuration... 
    default: Adapter 1: nat 
==> default: Forwarding ports... default: 22 => 2222 (adapter 1) 
==> default: Booting VM... 
==> default: Waiting for machine to boot. This may take a few minutes... 
    default: SSH address: 127.0.0.1:2222 
    default: SSH username: vagrant 
    default: SSH auth method: private key 
    default: Warning: Connection timeout. Retrying... 
    default: Warning: Remote connection disconnect. Retrying... 
==> default: Machine booted and ready! 
==> default: Checking for guest additions in VM... 
==> default: Mounting shared folders... 
    default: /vagrant => /Users/Development/virtual-env

起動時に設定情報が表示され、エラーもなくコマンドが終われば起動完了です。

問題なく起動できたら、vagrantのsshコマンドで起動したVMに接続してみます。

$ vagrant ssh 
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-40-generic i686)
   * Documentation: https://help.ubuntu.com/

   System information as of Wed Dec 3 14:25:52 UTC 2014 

   System load: 0.83 Processes: 89 
   Usage of /:  2.6% of 39.34GB Users logged in: 0
   Memory usage: 10% IP address for eth0: 10.0.2.15 
   Swap usage:    0% 

   Graph this data and manage this system at: 
       https://landscape.canonical.com/ 

   Get cloud support with Ubuntu Advantage Cloud Guest:       
       http://www.ubuntu.com/business/services/cloud

0 packages can be updated. 
0 updates are security updates. 

vagrant@vagrant-ubuntu-trusty-32:~$ 

接続できるかドキドキしましたが、無事に接続できることが確認できました!

作業が終わり切断したいときは、exitコマンドを使います。

vagrant@vagrant-ubuntu-trusty-32:~$ exit 
logout
Connection to 127.0.0.1 closed. 

切断後、VMを停止したいときは、haltコマンドで停止することができます。

$ vagrant halt 
==> default: Attempting graceful shutdown of VM... 

追加したVMがいらなくなったときは、destroyコマンドで破棄できます。

$ vagrant destroy 
   default: Are you sure you want to destroy the 'default' VM? [y/N] y
==> default: Destroying VM and associated drives...

作業自体は、難しくないのでどうなっても良い環境が欲しいときは良いと思います。

2014年12月3日水曜日

Symfony1.4のDoctrineで大量のデータ操作をした時に Allowed memory size...のエラーになる

Symfony1.4のDoctrineで、1万件くらいのデータを取り出してforeachで1件ずつ更新しようとしたところ、Allowed memory size..のエラーがでてしまいました。

PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 32 bytes)

このエラーが出た時は、php.iniのmemory_limitを変更すれば、防げるようになるのですが、php.iniを変更できなかったり、変更したくないことも多いと思います。。

今回は、php.iniを変更したくなかったので、設定以外で対応したいと思っていたところ、Doctrineにはfree()というものがあり、オブジェクトを解放できることがわかりました。

free()は、Doctrine_RecordとDoctrine_Query、Doctrine_Collectionで使うことができるみたいです。

試しにテーブルから5000件抽出し、ループでupdated_atカラムを更新するプログラムを実行してみました。

// Usersテーブルから5000件のデータを抽出
$q = Doctrine_Query::create()
     ->from('User u')
     ->limit(5000)
     ->orderBy('u.id ASC')
     ->execute();

foreach ($q as $k => $val) {
      $val->updated_at = date("Y-m-d H:i:s");
      $val->save();
      if ($k % 500 == 0){
            printf("%d : %dKB\n", $k, (memory_get_usage(true) / 1024));
      }
      $val->free();
}
$q->free();
printf("End : %dKB\n", $k, (memory_get_usage(true) / 1024));


効果があるのかを判定するために、まずは$val->free()をコメントアウトして実行してみました。

0        : 94976KB
500   : 99072KB
1000 : 102912KB
1500 : 106752KB
2000 : 111616KB
2500 : 115712KB
3000 : 119552KB
3500 : 123392KB
4000 : 127232KB
4500 : 131840KB
End    : 137728KB

実行結果からもわかるように、メモリがどんどん増えていきます。今回はこれを増えないようにしたいので、$val->free()を有効にして実行してみます。

0       : 94976KB
500   : 95488KB
1000 : 95744KB
1500 : 96000KB
2000 : 97024KB
2500 : 97024KB
3000 : 97024KB
3500 : 97024KB
4000 : 97024KB
4500 : 97536KB
End    : 99584KB

多少は増えますが、なにもしないときよりも38144KBのメモリを抑えることができましたので、大量にデータを扱うときは対策をするべきだなと思いました。

また、テーブルを結合している場合は、引数にtrueを渡してfree(true)と指定することで、リレーションのオブジェクトもすべて解放することができます。

2014年11月24日月曜日

Laravelでマイグレーション後にモデル作成してもデータが登録ができない

いままで、SQLiteを使ったことがなかったため、ちょっと試してみようということで、勉強を始めたlaravelで触ってみることにしました。

ですが、開始早々に躓いてしまいました。。

どんなことに躓いたかといいますと、マイグレーションからテーブルを作成し、テストデータを登録しようとしたら、追加できなかったのです。

ヘタレ具合を露呈させてしまいますが、まとめてみました。

まず、artisanコマンドでマイグレーションファイルを生成します。

$ php artisan migrate:make profile
Created Migration: 2014_11_23_230533_profile
Generating optimized class loader

上記のコマンドを実行すると「2014_11_23_230533_profile.php」というファイルがapp/databases/migrations配下に生成されます!

この生成したファイルにテーブルのカラム情報を記述していきます。記述するのは、マイグレーションファイルのupメソッドです。

$ vim app/database/migrations/2014_11_23_230533_profile.php
public function up()
{
// profileテーブル作成
       Schema::create('profile', function($table){
           $table->increments('id');
           $table->string('name');
           $table->timestamps();
       });
}

Schemeのcreateでテーブル名とカラム情報を設定します。最後のtimestamp()ではcreated_at、updated_atというカラムを作成できます!

記述が終わったら、artisanでmigrateします。

$ php artisan migrate

これでテーブルが作成できたので、モデルを作っていきます。

モデルでは、下記のようにテーブルや変更しないカラム、変更する可能性のあるカラムを指定しておきます。

 $ vim /app/models/Profile.php
 class Profile extends Eloquent {
     protected $table    = 'profile';
     protected $gurded   = array('id');
     protected $fillable = array('name');
 }

モデルを作成したら、今度はコントローラーでデータを追加してみます。

$ vim /app/controllers/ProfileController.php
public function index()
{
    $profile = new Profile;

    $profile->name = 'jack';
    $profile->save();
}

new Profileでインスタンスを生成して、save()で保存するように記述して、完了です。

これで、今回のテストデータ登録ができるはずだったのですが、エラーが出てしまいました。

Symfony\Component\Debug\Exception\FatalErrorException thrown with message "Call to undefined method Profile::save()"

Stacktrace:
#1 Symfony\Component\Debug\Exception\FatalErrorException in /app/controllers/ProfileController.php:15
#0 Illuminate\Exception\Handler:handleShutdown in <#unknown>:0

エラーを確認すると、saveメソッドが定義されていないというものでした。

save()が定義されていないということは、モデルを作ったけど、読み込まれていないのか!?と思い、dump-autoloadしてみることにしました。

$ composer dump-autoload
Generating autoload files

無事にコマンドが成功したので、再度登録を試みるも変わらずに同じエラーが出てしまいました。。

まだ、読み込めていないのかなんなのかよくわらないので、$profileをvar_dumpしてみました。var_dumpしていろいろ表示されてもよく分からないけど、とりあえずvar_dump‼︎

$profile = new ProfileTable;
var_dump($profile);

こんな感じでProfileの内容をvar_dumpしたところ•••
 
object(Profile)#131 (1) { ["connection":protected]=> NULL }

あ•••
NULLという文字が見える。。
これは、モデルがちゃんと生成できていないということなのか!?

なかなか混乱してきましたが、モデルがちゃんと読み込まれていない可能性があるということは、dump-autoloadでモデルがちゃんと入らなかったのか?ということで、dump-autoloadで更新されるautoload_classmap.phpを確認してみました。

ファイル内でprofileを検索したところ、モデルは読み込まれておらず、代わりにマイグレーションがProfileとして読み込まれていました。。

$ vim vendor/composer/autoload_classmap.php
'Profile' => $baseDir . '/app/database/migrations/2014_11_23_230533_Profile.php',

これは、マイグレーションとモデルが同じ名前で、すでにマイグレーションがあるからモデルが追加されていない?ということなのか?

もしそういうことなら、モデルの名前を変えればエラーじゃなくなるのか?

うーん、よく分からない。
考えても分からないので、とりあえずモデル名を変えてみます。。

$ vim /app/models/Profiles.php
<?php
class Profiles extends Eloquent {
    protected $table    = 'profile';
    protected $gurded   = array('id');
    protected $fillable = array('name');
}

モデルのもともとProfileだったものをProfilesに変更してみました。コントローラーで呼び出しているところも変更します。

$ vim /app/controllers/ProfileController.php
$profile s = new Profiles;

$profiles->name = 'jack';
$profiles->save();

ファイルの変更が終わったら、dump-autoloadで更新!

更新後にautoload_classmap.phpを確認したところ、Profilesが追加されているのが確認できました。

$ vim vendor/composer/autoload_classmap.php
'Profile' => $baseDir . '/app/database/migrations/2014_11_23_230533_Profile.php',
'Profiles' => $baseDir . '/app/models/Profiles.php',

モデルが読み込まれたので、実行してみるとエラーは解消され、無事に登録することができました。

+--+-------+----------------------------+----------------------------+
|id  |name  |created_at                     |updated_at                   |
+--+-------+----------------------------+----------------------------+
| 1  |jack    |2014-11-24 00:42:36|2014-11-24 00:42:36|
+--+-------+----------------------------+----------------------------+

今回の原因は、先に作成したマイグレーションがProfileとして読み込まれていたため、同じ名前で指定したProfileモデルが追加されなかったということみたいです。


2014年10月8日水曜日

Windows7にVirtualBoxをインストール

会社でVirtualBox × Vagrant × Ansibleを使って、ローカル環境を作ってそこで作業をすることがあるのですが、設定は全てやって頂いたので自分でもわかるようにするために、家のWindowsにも環境を作ってみようと思います。

ということで、今回はVirtualBoxのインストールをしてみました!



赤い枠の部分がWindows向けなので、クリックしてインストーラーをダウンロードします!

インストーラーを起動すると下記のような画面が表示されるので、Nextで進みます。


次の画面でインストール先を選択できます!

今回は、デフォルトのCドライブのProgram Files配下にインストールします。


インストール先を選んだら、次に進みます。


ショートカット系が要らない場合は、チェックを外しましょう!

次に進むと警告がでてきます。


インストール中にインターネット接続をリセットする的なメッセージだと思うので、問題なければ次に進みます。


いよいよインストールが始まります!


インストールを放置していると、下記のようにちょいちょいダイアログがでてくるので、適宜インストールします。





ダイアログをみると、USBコントローラーやネットワークアダプタなどのインストールみたいです!

インストールが終わると完了画面が表示されます。


すぐにVirtualBoxを起動したい場合は、チェックを入れたままFinishします!

無事にインストールできていると、起動して下記の画面がでてきます。


以上でインストール終了です。

2014年10月5日日曜日

Analyticsの設定をする

ブログを作ってから数ヶ月が経ち、稀にみてくださる方がいるのですが、アクセス解析が微妙でどんなワードで検索されたかがわからないことが多いということに気づきました。

そこで、Analyticsを導入できるのか調べたところ、かなりわかりやすいサイトを発見!!

http://www.adminweb.jp/analytics/setup/index8.html

早速、設定してみたので今後は今までよりも、訪問者についてわかるのではないかなと思います!

静的サイトジェネレーターのhydeをインストール

静的サイトジェネレーターを使ってみたいなと思って調べているときに、どうせ使うならPythonのやつが良いなと思ったので、Pythonを使っているもので調べた結果、hydeを見つけました。

hydeは、Rubyのjekyllを意識した静的サイトジェネレーターということで、公式サイトにもjekyllの文字が出てきます!!

詳しくは下記参照でお願いします!

http://hyde.github.io/

hydeを使ってみるためにpythonの環境を構築したので、実際にインストールしてみました!

インストールは下記のコマンドで行います。

D:\www\home>pip install hyde
Downloading/unpacking hyde
Downloading/unpacking fswrap==0.1.2 (from hyde)
Downloading/unpacking commando==0.3.4 (from hyde)
Downloading/unpacking PyYAML==3.10 (from hyde)
Downloading/unpacking Markdown==2.3.1 (from hyde)
Downloading/unpacking MarkupSafe==0.18 (from hyde)
Downloading/unpacking Pygments==1.6 (from hyde)
Downloading/unpacking typogrify==2.0.0 (from hyde)
Downloading/unpacking smartypants<1.8 (from hyde)
Downloading/unpacking Jinja2==2.7.1 (from hyde)

いろいろと省略しますが、上記のパッケージを一緒にインストールしていました!

インストールが完了したら、createコマンドでhydeの初期ファイルを作成します。このとき-sオプションをつけるとファイル生成パスを指定することができます。

D:\www>hyde -s ./home/hyde create
10:46:42 hyde Creating site at [D:\www\home\hyde] with layout [C:\Python27\lib\site-packages\hyde\layouts\basic]
10:46:43 hyde Site creation complete

無事にサイトが作成できたので、作成したフォルダに移動してgenコマンドで初期状態のサイトを作成してみます。

D:\www>cd home/hyde
D:\www\home\hyde>hyde gen
10:47:35 hyde.engine Reading site configuration from [D:\www\home\hyde\site.yaml]
10:47:35 hyde.engine Reading site contents
10:47:35 hyde.engine Generating site at [d:\www\home\hyde]
10:47:36 hyde.engine Configuring the template environment
10:47:36 hyde.engine Generating site to [d:\www\home\hyde\deploy]
10:47:38 hyde Generation complete.

genコマンドで-dオプションを使わない場合、deployフォルダが作成されてその中にファイルが入ります。

D:\www\home\hyde\deploy\about.html D:\www\home\hyde\deploy\apple-touch-icon.png D:\www\home\hyde\deploy\favicon.ico D:\www\home\hyde\deploy\index.html D:\www\home\hyde\deploy\blog\angry-post.html D:\www\home\hyde\deploy\blog\atom.xml D:\www\home\hyde\deploy\blog\excerpts.xml D:\www\home\hyde\deploy\blog\happy-post.html D:\www\home\hyde\deploy\blog\index.html D:\www\home\hyde\deploy\blog\sad-post.html D:\www\home\hyde\deploy\blog\tags\angry.html D:\www\home\hyde\deploy\blog\tags\happy.html D:\www\home\hyde\deploy\blog\tags\sad.html D:\www\home\hyde\deploy\blog\tags\thoughts.html D:\www\home\hyde\deploy\media\css\site.css D:\www\home\hyde\deploy\media\css\syntax.css D:\www\home\hyde\deploy\media\images\airport.png D:\www\home\hyde\deploy\media\images\dark.png D:\www\home\hyde\deploy\media\js\libs\dd_belatedpng.js D:\www\home\hyde\deploy\media\js\libs\jquery-1.5.1.min.js D:\www\home\hyde\deploy\media\js\libs\modernizr-1.7.min.js D:\www\home\hyde\deploy\portfolio\index.html

ファイルが作成できていることを確認できたので、ブラウザからアクセスすると下記のようなページが表示されました!


ひとまず、使えることが確認できたので、今後はテンプレートの編集などをやってみようと思います。

2014年8月31日日曜日

setuptools5.7をインストール

前回、Windows7にPythonをインストールできたので、今回はsetuptoolsをインストールしてeasy_installを使えるようにしたいと思います。

ということで、ダウンロードページからファイルをダウンロードし、適当なところに解凍します。

解凍までできたら、コマンドプロンプトで解凍したフォルダまで移動し、下記のコマンドを実行すればインストール完了です。

>python ez_setup.py


前回のインストーラー同様、簡単に入るなと思っていたら・・・

まさかのエラーが発生しました。。


エラー内容を見てみると、参照したURLが404エラーだったようです。

エラーの上に下記のURLが貼ってあったので、直アクセスしてみるとNot Foundが表示され、本当にページがなかったです。。

https://pypi.python.org/packages/source/s/setuptools/setuptools-5.8.zip

本家からダウンロードしたのに…
と思いながらURLをみていたら気が付きました!

setuptools 5.7なのにURLが5.8になっている。。

ダメ元で5.7に変え直アクセスするとファイルのダウンロードが始まりました。

https://pypi.python.org/packages/source/s/setuptools/setuptools-5.7.zip

単にURLが間違っているんだなということが解ったので、ez_install.pyを開いて「5.8」でファイル内検索をしたところ、39、40行目に下記の記述を見つけました。

DEFAULT_VERSION = "5.8"
DEFAULT_URL = "https://pypi.python.org/packages/source/s/setuptools/"


5.8はここにしか記載されていないし、変数名的にもこれだなということで、5.7に変更して保存します。

保存後、もう一度コマンドを実行したところ無事にインストールできました!

エラーが出ると焦りますが、簡単に修復できてよかったです。。

easy_installが使えるようになったので、pipをインストールします。

>easy_install pip

※ ここでeasy_installのエラーがでる場合は「C:\Python27\Scripts」にパスが正しく通っていない可能性があります

pipは問題なくインストールできたので、環境構築はまた一歩進みました。

2014年8月29日金曜日

Windows7にPython 2.7.8をインストールする

今までネットブックにインストールしたUbuntuでPythonの勉強をしていたのですが、メインのPCでもPythonを使いたいことができたのでインストールしてみることにしました。

 まずは、本家のダウンロードページからインストーラーをダウンロードします。



赤い枠の部分をクリックするとダウンロードが始まるので、ダウンロードが終わったらインストーラーを起動します。




Nextで進んでいき、カスタマイズの画面で×がついているところを変更すると、環境変数に自動でパスが通るようになります。

その後もNextで進んでいくと数分でインストールが完了します。



インストールが終了したら、easy_installなどを使えるようにするために、環境変数に下記のパスを追加します。

C:¥Python27¥Scripts

パスの追加もできたところで、コマンドプロンプトを開き、pythonコマンドが使えるか確認します。

C:\Users\User>python
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>


pythonを実行できるモードに切り替わればインストール成功です!

インストーラーを使うと簡単にインストールできるので良いですねw

次回は、easy_installとpipをインストールしてみようと思います。

2014年8月11日月曜日

MacにNeoBundleでBlockDiffをインストール

 作業をしていて、指定範囲やファイル同士の差分を比較したいことがあり、差分を確認できるエディタを探そうと思いましたが、念のため vim でもできないかを調べたところ、 BlockDiff というものがあったのでインストールしてみました。

NeoBundle を使ってインストールしたいので、まず .vimrc に github の記述を追加します。
ちなみに、今回はここからインストールします。

.vimrc を編集する

#vim .vimrc
NeoBundle 'vim-scripts/BlockDiff'

.vimrcにインストール元を記述したら、vimを開き直します。

インストール

#vim test.txt
Not installed bundles:  ['BlockDiff']
Install bundles now?
(y)es, [N]o: y

[neobundle/install] Update started: (2014/08/11 20:05:36)
[neobundle/install] (1/1): |BlockDiff| git clone --recursive https://github.com/vim-scripts/BlockDiff.git "/Users/test/.vim/bundle/BlockDiff"
[neobundle/install] (1/1): |BlockDiff| Updated
[neobundle/install] |BlockDiff|  -> 7c65c77fa1be750b3787d19b7ecd808a8277c4df
[neobundle/install] Installed/Updated bundles:
BlockDiff
[neobundle/install] Update done: (2014/08/11 20:05:39)

インストールが終わったので、早速使ってみようと vim を起動するとエラーが…

#vim test.txt
Error detected while processing /Users/test/.vim/bundle/BlockDiff/plugin/blockdiff.vim:
line   29:
E492: Not an editor command: ^M
line   31:
E15: Invalid expression: exists('g:loaded_blockdiff') || (v:version < 700)^M
line   94:
E488: Trailing characters
line   96:
E171: Missing :endif

どうやらインストールした BlockDiff の改行コードがやらかしているみたいなので、ファイルを直接いじって直していきます。

改行コードを変更する

#vim ~/.vim/bundle/BlockDiff/plugin/blockdiff.vim
:set fileformat=unix
:%s/^M/\\n/g
:%s/\\n/^M/g

ファイルを開いたら、コマンドモードで :set fileformat=unix を実行して、改行コードをUnix(^M)に変更します。

ただ、これだけだと改行がすべてなくなって、ぐちゃぐちゃな状態になるので、^Mを別の文字列(今回は\n)に変換してから、Macの改行コードに変更しています。

無事に改行コードの変換ができれば、起動時にエラーがでなくなって、問題なく使えるようになります。

使い方


指定範囲を比較する場合は、ビジュアルモードで範囲を指定してから、1つ目の範囲を指定するコマンドを実行してから、2つ目の範囲を指定し、同様にコマンドを実行します。

1つ目の範囲を指定
:'<,'>:BlockDiff1
2つ目の範囲を指定
:'<,'>:BlockDiff2

比較対象を指定し終わると、下記のような画面で差分がわかるように表示されます。
※ vimの設定によって見え方は多少異なる可能性があります

今後、使う機会が結構あると思うので、何かと重宝しそうです。

2014年8月5日火曜日

Microsoft Expression Web 4 試用版をインストールしてみる

ホームページを作っている途中のまま放置していたら、Adobe CCの体験期間が切れていたので、WEB制作系のツールを探してみることにしました。

調べていくと、MicrosoftがExpression Web 4というものを出していて、どうやらWEB制作のできるソフトみたいです。

詳しくは調べていませんが、作れそうなのでインストールしてみましたw

まずは、ダウンロードセンターからインストーラーをダウンロードします。



赤いダウンロードボタンを押すと自動的にダウンロードが始まります。ダウンロード後にインストーラーを起動すると、下記のような使用許諾の画面が出てきます。



内容を確認して、問題がなければ「同意する」を選択して次に進みます。使用許諾の次は、マイクロソフトあるあるのカスタマー エクスペリエンス向上プログラムへの参加依頼です。

こちらは、好きなほうを選択して次に進みます。


続いての画面は、インストールするソフトを選ぶ画面になります。ここでは、下記の3つをインストールすることができます。

・Expression Web 4
・Expression Design 4
・Expression Encoder 4



※インストール先を変更したい場合は、「オプション」をクリックして、インストール先を指定します。

インストール中は、下記のような画面になります。


インストールが終わると、画面が切り替わるので完了したことが解ります。


インストールが完了したら、ソフトを起動して問題ないことを確認します。



特に変わったことをするわけではないので、簡単にインストールができました。

これから少しずつ使ってみようと思います。

2014年7月29日火曜日

LubuntuにComposerをインストール

何度もやることではないですが、毎回調べている気がするので残しておこうと思います。

公式サイトをみながらインストールしていきますが、英語はわからないので一番最初にでてくるコマンドでインストールしてみます。
# sudo curl -sS  https://getcomposer.org/installer | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /home/user/composer.phar
Use it: php composer.phar
インストール後のメッセージをみると、composerを使うには下記のようにしないとダメらしい。。
# php composer.phar ~
 
これだと、不便だなと思いながらサイトを見直すと、オプションがちゃんと書いてありました!

もう一度やり直すのもなーと思ったので、調べてみるとパスの通っているところにリネームして移せば大丈夫らしい。

ということで…

 

composer.phar を path の通っているところに移動する

# sudo mv composer.phar /usr/local/bin/composer
 
これで、 composer コマンドが使えるようになったのでインストール終了です。

 

composer のアップデート


ちなみに、 composer をアップデートすときは、下記のようにするみたいです。

# composer self-update

2014年7月17日木曜日

無地

勢いだけでブログを開設してみました!

登録が終わって、表示をするとなんとも殺風景なページが…

ここから、どのくらい発展させられるかわかりませんが、上の殺風景が始まりということで、頑張っていこう!

macOSでminikubeをインストールしようとしたら書き込みエラーになった

ローカル環境でKubernetesを使えるようにしようと環境構築中にエラーが 下記が今回のエラーで書き込みできない感じのメッセージが出ています。  $ brew install minikube Updating Homebrew... Error: The following ...