【バイト】仮想マシン環境を構築するのに穴にハマりまくった
Macを買う以前はWindowsで、sshとVPNで作業をしていた。
仮想マシン立てるのが面倒すぎる&当時の社員がMACerしかおらずWinでのやり方ようわからんということでそうなった経緯があり
Mac買ったから仮想マシンで作業できる!!
「Gitに書いてある通りにやればできるよ」と言われたけど
「分かってる前提」のものが多過ぎて結局勤務中に上司に聞きながらやっても上手くいかなかったので
結局今、今までとほぼ同じ状態で作業している。
台風で大学にも行けないし今リトライ
書いてある通りにやってもできない原因①: リポジトリ上でやってなかった
多分エンジニア初心者にも「お前それはバカだろ」と思われそう
Vagrant も、作業に必要なAnsibleも全部ルートディレクトリでインストールして作業していた。
これを上司に指摘されて「じゃあもう今日は仮想マシン諦めよう」となって今日に至るのですが
原因②: git clone だけじゃ必要なファイルが揃っていなかった
これも今考えると当たり前だった
$ php composer.php Could not open input file: composer.phar
composerをインストールしてなきゃそりゃそうだわ…
$ curl -sS https://getcomposer.org/installer | php
これでできるらしいので、実行。以下
All settings correct for using Composer Downloading 1.2.0... Composer successfully installed to: /Users/[username]/febe2/composer.phar Use it: php composer.phar $ php composer.phar ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.2.0 2016-07-19 01:28:52
はい無事できました。
原因③: the requested PHP extension gmp is missing from your system.
これだよこれ
$ php composer.phar install Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation request for openid/php-openid dev-master -> satisfiable by openid/php-openid[hoge]. - openid/php-openid hoge requires ext-gmp * -> the requested PHP extension gmp is missing from your system.
なるほどこのgmpってのをインストールすればいいのかな?
$ brew install gmp Warning: gmp-6.1.1 already installed
は????入っとるやんけ???と思ったけどこれじゃなく
$ brew install homebrew/php/php56-gmp
こっちらしい。おお、インストールされていく
が、解決せず。
とりあえず、lockファイルに"Provide"ってのを書くとスルーしてくれるという情報があったので
composer 導入をまじめに考える - Qiita
GIt cloneしたlockファイルを書き換える時点で100%間違っているけどやってみる。
おお!!comopser installが始まったぞ!!
Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. Now trying to download from dist
んん???
これは勝手にリトライしてどうにかなった模様
Creating the "app/config/parameters.yml" file Some parameters are missing. Please provide them.
で大量の項目で入力を求められる
待って??わからないよ??
そしてエラー、warningが出る。
長くなりそうなので次回に続く。
ちなみにこの後
$ php composer.phar update Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - openid/php-openid hoge requires ext-gmp * -> the requested PHP extension gmp is missing from your system. - openid/php-openid hoge requires ext-gmp * -> the requested PHP extension gmp is missing from your system. - Installation request for openid/php-openid dev-master -> satisfiable by openid/php-openid[hoge].
やっぱりだめじゃないですかー
ポインタを理解する
苦しんで覚えるC言語、通称「苦C」を最近読んでいる。
道中「はいはい他の言語でやった」と飛ばして、今Cの代名詞とも言えるポインタに入った。
今までやってきた言語(javascript,PHP)ではメモリなんて一切考えたことがなかったから、なかなか興味深い。
要するに、メモリの住所を指定するサムシングなのね。と何となーくの認識で読んでたら(ちゃんと理解せずに読み進めてたら意味ないぞ)この節で
引数による情報の受け渡し
C言語では、関数へ情報を渡す場合、必ず元の変数の値のコピーを渡します。
この様な方法を値渡しと呼び、元の変数の値が変更されないことが特徴です
えっそうなの!!?
ということで試しに簡単なコードを書いてみた。
関数で変数に10を足して表示させるだけ。
#include <stdio.h> void func(int num); int main(void) { int num = 1; printf("%d\n",num); //実行結果1行目 func(num); //↓の関数を実行。numに10足して結果表示 printf("%d\n",num); //実行結果3行目 return 0; } void func(int num) { num += 10; printf("%d\n", num); //実行結果2行目 return; }
実行結果
1 11 1
わ、本当だ!mainの中の変数は変わってない!!
次に、上の苦Cの通り変数をポインタ変数に変えてみた。
#include <stdio.h> void func(int *num); //引数宣言時にポインタ変数を宣言 int main(void) { int num = 1; //ここは普通の変数でいい。らしい printf("%d\n",num); func(&num); //変数の”アドレス"を代入することでポインタ変数を代入になる。らしい printf("%d\n",num); return 0; } void func(int *num) { *num += 10; //ポインタ変数を通常変数にして10足す printf("%d\n", *num); //通常変数を出力 return; }
1 11 11
おおー、ちゃんと上書きされてる。
ポインタの必要性わかってきたぞ。ポインタを制すればCを制すって聞いたことある(多分ない)し行ける気がするぞ。
と、思って読み進めたら配列だとまた挙動が変わってくるとか、、、
まだ道のりは長そうだ、これはまた次回
テレビとPCをまとめてスピーカーで出力させるついでにスイッチャーを作る(製作・前編)
小生遅刻したくないでござる!!小生時間を守る人間になりたいでござる!!
先日、山の日(8/11)に内定者懇親会があり
交通費を浮かせるために高速バスで行こうとしたら、お盆休み初日の大渋滞に巻き込まれて1時間半の大遅刻。
つらい
さてこの続き
halfrighter.hatenadiary.jp