nvm&npmの環境で入れたモジュールってバージョン毎にどこあるのか調べた。
前に、yoを入れたのだけど、
Node.jsをnvmでVer.切り替え出来るようにしてるので、インストールしたモジュールってどこに行くのか?
って思ったので簡単に調べた。
結論: -g
指定してグローバルインストールしているけど、実行バージョンのみにインストールしている。
改めて、nvm読む。
環境は、NPM_CONFIG_PREFIX
を見ているみたい。
- GitHub - creationix/nvm: Node Version Manager - Simple bash script to manage multiple active node.js versions
- 03 - How to prevent permissions errors | npm Documentation
マニュアルは、、、man npm
ってやっても存在しません。。 npm --help
としたら、npm help npm
で分かるそうな。
ver.依存あるし当然っちゃ当然。
$ npm help npm : DIRECTORIES See npm help 5 npm-folders to learn about where npm puts stuff. In particular, npm has two modes of operation: · global mode: npm installs packages into the install prefix at prefix/lib/node_modules and bins are installed in prefix/bin. · local mode: npm installs packages into the current project directory, which defaults to the current working directory. Packages are installed to ./node_modules, and bins are installed to ./node_modules/.bin. Local mode is the default. Use -g or --global on any command to operate in global mode instead.
グローバルモード(インストール時に -g
指定)した場合は、prefix at prefix/lib/node_modules と prefix/bin にインストール。
デフォルトとはローカルモードで、カレントに./node_modules
を使ってそこに入れる。と。なるほど。
prefix
ってどこかなぁ、、、
$ npm config edit : ; prefix=/home/yassan/.nvm/versions/node/v8.9.3 :
コメントアウトされてるけど、デフォルトは/home/yassan/.nvm/versions/node/v8.9.3
ですね。
試しに別の環境で、2つのバージョンをインストール後に、ローカルモードでインストール(npm install yo
)したら、カレントにnode_modules
ディレクトリを作って、そこにインストールしてた。 しかも、パスが通ってないので、未設定だとyo使えない(当たり前)
んで、グローバルモードでyoをインストール。
$ npm install -g yo /home/yassan/.nvm/versions/node/v8.9.3/bin/yo -> /home/yassan/.nvm/versions/node/v8.9.3/lib/node_modules/yo/lib/cli.js /home/yassan/.nvm/versions/node/v8.9.3/bin/yo-complete -> /home/yassan/.nvm/versions/node/v8.9.3/lib/node_modules/yo/lib/completion/index.js > spawn-sync@1.0.15 postinstall /home/yassan/.nvm/versions/node/v8.9.3/lib/node_modules/yo/node_modules/spawn-sync > node postinstall > yo@2.0.0 postinstall /home/yassan/.nvm/versions/node/v8.9.3/lib/node_modules/yo > yodoctor
となってたので、実行しているバージョン先と関連付けてますね。 実際に存在確認。
yassan:~/.nvm/versions ((v0.33.8)) $ ll node/v8.9.3/bin/ 合計 34388 drwxrwxr-x 2 yassan yassan 4096 12月 29 06:47 ./ drwxrwxr-x 7 yassan yassan 4096 12月 29 05:38 ../ -rwxrwxr-x 1 yassan yassan 35200878 12月 8 23:09 node* lrwxrwxrwx 1 yassan yassan 38 12月 8 23:10 npm -> ../lib/node_modules/npm/bin/npm-cli.js* lrwxrwxrwx 1 yassan yassan 38 12月 8 23:10 npx -> ../lib/node_modules/npm/bin/npx-cli.js* lrwxrwxrwx 1 yassan yassan 33 12月 29 06:47 yo -> ../lib/node_modules/yo/lib/cli.js* lrwxrwxrwx 1 yassan yassan 46 12月 29 06:47 yo-complete -> ../lib/node_modules/yo/lib/completion/index.js* yassan:~/.nvm/versions ((v0.33.8)) $ ll node/v9.3.0/bin/ 合計 34212 drwxrwxr-x 2 yassan yassan 4096 12月 12 18:38 ./ drwxrwxr-x 7 yassan yassan 4096 12月 29 06:21 ../ -rwxrwxr-x 1 yassan yassan 35021636 12月 12 18:37 node* lrwxrwxrwx 1 yassan yassan 38 12月 12 18:38 npm -> ../lib/node_modules/npm/bin/npm-cli.js* lrwxrwxrwx 1 yassan yassan 38 12月 12 18:38 npx -> ../lib/node_modules/npm/bin/npx-cli.js*
確かに、実行バージョン(v8.9.3)にはyoはあるけど、使っていないバージョンには入ってませんね。
納得したのでこの辺で。
redash on Rancher
むっちゃ遅れましたが、 Rancher Advent Calendar 2017 の 20日目の記事です。
- TLDR
- Pros
- Cons
- なんでカタログ化したいん?
- 前提条件
- プライベートカタログの作成
- プライベートカタログをリモートリポジトリへ追加
- ローカルボリュームを作成する
- Racher CLI setup
- ローカルボリュームを作成
- プライベートカタログをRancherへ登録
- redashカタログからサービスを起動
- 今後について
- おまけ:pgAdmin4の使い方
Rancherでdocker-compose.ymlの条件分岐を試す
Rancher Advent Calendar 2017 の 13日目の記事です。
20日目に「 redashのプライベートカタログ化」を紹介するのですが、あれこれ欲張りすぎて記事が長くなったのと、まだ、カレンダーが埋まってないので埋めてみました。
目次
- 使い方
- 条件式用の変数の定義 <rancher-compose.yml>
- 条件分岐の記述 <docker-compose.yml>
- 注意事項
- その他の例
カタログジェネレータを試してみた
Rancher Advent Calendar 2017 の 12日目の記事です。
20日目に「 redashのプライベートカタログ化」を紹介するのですが、あれこれ欲張りすぎて記事が長くなったのと、まだ、カレンダーが埋まってないので埋めてみました。
- プライベートカタログジェネレータのセットアップ
- npmのVer.管理ツール nvm のインストール
- npmのインストール
- インストール可能な安定Ver.を探す
- 安定Ver.のnpmをインストール
- Yeomanのインストール
- npmを使ってYeomanをインストール
- Rancherカタログジェネレータ generator-rancher-catalog をインストール
- 空のカタログを生成
redashでのアクセス制御について
※redashの権限指定に誤りがあったので修正(2018/01/18)※ Redash Advent Calendar 2017 の 22日目の記事です!
redashを使って可視化したら今度は、色々な人に公開したくなりますよね?
ただ、会社によっては、「あのデータを全員に見せるのは如何なものか?」勢が少なからずいるはず。
まぁ、なんでもかんでもデータを見せることで事業リスクなったり、インサイダーな重要事実を知っている扱いの人を不用意に増やすのもまた問題でもあります。
そういう訳で、必要な人に適度にデータを公開する為に、redashを使った取り組み事例のご紹介。
検証環境
- ホスト:Ubuntu 16.04 LTS
- redashは、Dockerイメージを使って構築(v3.0.0+b3134)
TLDR
- グループにパーミッション設定をつければ良いが、GUIでは指定不可。 CLIでは出来るようだが、今回はテーブル直接変更した。
- redashだけでは、クエリ単位のパーミッション設定は出来ない。 なので、ロール違いの同じデータベースなデータソースを複数用意して、ロールに応じて参照権限有/無でうまいこと切り分ける(かなり力技)。
はじめに
redash単体で可能なアクセス制御は以下の通り、ソース見るとパーミッション設定値がそのままなので、イメージが湧くと思います。
cf. redash/groups.py · getredash/redash
@option('--permissions', default=None, help="Comma separated list of permissions ('create_dashboard'," " 'create_query', 'edit_dashboard', 'edit_query', " "'view_query', 'view_source', 'execute_query', 'list_users'," " 'schedule_query', 'list_dashboards', 'list_alerts'," " 'list_data_sources') (leave blank for default).")
見難いので、整理するとこんな感じ
create_dashboard create_query edit_dashboard edit_query execute_query list_alerts list_dashboards list_data_sources list_users schedule_query view_query view_source
また、コードにもあるとおり、パーミッションはグループに付与するようです。
ここでは、CLI経由でグループ作成時に指定するようです。GUIでは指定出来ないので、CLIを使う事になりますが、イマイチわからないので、テーブルを直接書き換えちゃいます
前提条件
ユーザ | 所属グループ | パーミッション |
---|---|---|
member1 | member_group | すべての操作可能 |
manager1 | manager_group | ダッシュボードの選択と閲覧しか出来ない |
cf. ダッシュボードの用意には、id:kakku22 さんの kakakakakku/redash-hands-on: Redash study materials for beginners 📊 を活用させていただきました。
cf. testデータソース用のテーブルデータは、 Mockaroo を使ったダミーテーブルを作成しました
ユーザ及びグループの作成
まず、グループの作成、管理者ユーザでredashにログインし、グループを2つ作成し、ユーザを各々所属させます。
グループのパーミッションの変更
次に、redashのデータベースに入って、groupsテーブルを以下のようにいじります
グループ | パーミッション |
---|---|
'member_group' | '{"view_query","execute_query","list_dashboards"}' |
'manager_group' | '{"create_dashboard","create_query","edit_dashboard","edit_query","view_query","view_source","execute_query","list_users","schedule_query","list_dashboards","list_alerts","list_data_sources"}' |
※更新すると即時反映されます
変更結果
manager1の表示
デフォルトと特に変わりません
member1の表示
一方、memberの方は、クエリやアラートなどの表示が消えて選択できなくなっています。
また、ダッシュボードの作成も出来ません。
ダッシュボードも右端にあるはずの編集ボタンが消え、各クエリへのリンクもなくなっていることがわかります。
データソースを分ける
データベース test を作成して、ロール ope_1、ope_2を作成して、以下のように権限設定します。
テーブル名 | ope_1 | ope_2 |
---|---|---|
users | 参照可能 | 参照不可 |
play_list | 参照可能 | 参照可能 |
下記のようにデータソースを作成
ope_2が参照出来ない | ope_2で参照 |
---|---|
各グループに作成したデータソースを割り当て
グループ | 設定 |
---|---|
manager | |
member |
クエリを下記のように作成
上記2つのクエリをならべたダッシュボードを作成して、ユーザによって表示を確認
グループ | 表示 |
---|---|
manager | |
member |
まとめ
以上が現状までに考えた対策です。
ただ、これ非常にややこしい(特にデータソースで分ける辺り)。しかも、柔軟性に乏しいので、その場しのぎでしか無いです。
この方が楽だとか、あればぜひ教えてください!
明日は、 @katsuhisa__ さんです。お楽しみに。
今年のビールを振り返る
Beer Advent Calendar 2017 Adventar の18日目の記事です。
ビール好きですか?
ワタシ、ビールチョットスキデス。
上の絵は今年飲んだビールの一部をタイル状にしてみました。
そして、日本の井戸水 日本酒も大好きです。
日本酒 Advent Calendar 2017 でも記事書いてるのでそちらもよろしく。
ビール美味しいですね。ビール。
中でもクラフトビールに分けられるビールが大好きです。
ピルスナーも暑い日にキンキンに冷やして、太陽の下で飲むのは最高ですね。
ただ、ピルスナーだけじゃなく、スタウトやポーター、ペール・エール、IPAとその他のジャンルが特に大好きですね。 中でも一番好きな「ポーター、スタウト」と「IPA」の2つに分けてご紹介。
ポーターやスタウト系
いわゆる黒ビールってやつですね。
最近では、国内大手ビールメーカーからも出てますが、どれもピルスナーの枠から超えない感がどうしてもあって、好みでは無いです。
コスパが最高なのは、ヤッホー・ブルーイングの東京ブラックも捨てがたいですが、やっぱり https://www.ratebeer.com/beer/lion-stout/3061/ ですね。
ほのかに丁度よい甘さが好きです。
KALDIとかにも置いてたりするので、見かけたら一度飲んでみては。
一番美味しかったのは、伊勢角屋麦酒 スタウト です。
コーヒーみたいなロースト感と甘みがほんと美味しかった。
あぁ、MINOH BEER スタウト も捨てがたいなぁ。これも最高に美味しいです。
IPA
独特の強い苦味がたまらん。 IPAは特に好きで大体IPAばかり飲んでます。
コスパ高くて調達しやすい インドの青鬼 はローソンで買えるのでほんとありがたい。
一番美味しかったのは、 志賀高原IPA Fresh Hop です。期間限定の志賀高原IPAの自家栽培ホップ生ホップ版で、香りが良く苦味も最高でホント美味しかった。来年も飲みたいなぁ。
他にも箕面ビールのおさるIPAとか、W-IPAもかなり美味しいです。
まとめ
最近はヤッホー・ブルーイングの製品がコンビニで買えるので、遅くなっても飲めるようになったのはホントありがたいですね。
去年もやってましたが、夏限定の僕ビール、君ビール。続よりみち も美味しいです。通常版も美味しいですが、特によりみちは美味しい。
後、ちょっと前に出た 僕ビール、君ビール。ミッドナイト星人(ホッピーアンバー) も美味しいです。
始めの頃は、外国のクラフトビールを飲んでましたが、高いのでホイホイ買えない。。。Rogue の DEAD GUY ALE とか好きなんだけど、高い、、、
それなら国内のクラフトビールメーカーでも十分に美味しいので、最近では国内メーカばかり飲んでます。
来年も美味しいビールが出ないか楽しみですね。
明日は、 @masuP9 さんです。渋谷のよく行くビールのお店だそうです。すごく楽しみですね。
今年飲んで美味しかった日本酒を挙げていく
日本酒 Advent Calendar 2017 の17日目の記事です。
上の画像は、今年飲んだ日本酒の一部です。 ビールも美味しいのだけど、やっぱり日本酒が一番美味しい。
居酒屋で飲むとどうしても高くなるので、家飲みが多くなりますね。
では、その中でも特に美味しかったケシカランニホンシュを挙げて行きます。
大典白菊 直汲み純米吟醸生酒 岡山朝日米五五
岡山 備中の地酒 白菊酒造 のお酒。
シャリにも使っている食用米 朝日米を使った日本酒。
五五とは、55%まで磨いているらしい。
すごくバランスの良いお酒。旨みと香りが最高!
生酒特有のシュワッと感もあって美味い。
Shirakiku Beilliant 純米吟醸無濾過生原酒
銀シャリって銘柄のお酒も作ってる京都府京丹後市 白杉酒造株式会社 のお酒。
こちらも丹後産コシヒカリを使ったお酒。 酸味と香りのバランスが良いです。白ワインみたいな感じ。それを意識してワインボトルになってます。
不動 おりがらみ 出羽燦々
千葉県の仁勇と不動で有名な 鍋店株式会社 のお酒。
シュワッと感と程よい甘味と最後のキレがたまらん!
女性なら多分好きそう。
笑四季 純米大吟醸 真夜中のバカンス
ラベルがおしゃれな 笑四季酒造 夏酒っぽくアッサリめだけどちゃんとキレもあるし美味い!生だったらヤバイ。
洌 純米大吟醸 無濾過生原酒
旨さとキレが抜群。香りは控えめだけど、旨味と甘さのバランスがとても良い。
まんさくの花 超限定純米大吟醸一度火入れ原酒
秋田の地酒 まんさくの花 で有名な 日の丸醸造株式会社 のお酒。
ラベルだけだと、「超限定」とか「大吟醸」とか形容詞的な表現が真ん中にどかーんとあるお酒はだいたい失敗なんだけど、これは別。
春と秋、1年に2回、発売される超限定商品。 今年一番のお酒。むっちゃ好み。ケシカラン。
以上、今年の日本酒を振り返るでした。