jubo的学習記録

日々自分の技量のなさに悩みながら這いつくばって頑張っているエンジニアが勉強・学習したことの記録です。

phantomjs でエラーが出たの再インストール

phantomjsを使用しようとしたらエラーが出ました。 対応した方法を記録

$ phantomjs
dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /usr/local/bin/phantomjs
  Reason: image not found
Abort trap: 6
shinya_kubo:app$ brew remove phantomjs

いろいろと検索してopensslなど再インストールしたけど、 結局のところ下記で対応できてしまった。

$ brew remove phantomjs
$ phantomjs
-bash: /usr/local/bin/phantomjs: No such file or directory
$ brew install phantomjs
Updating Homebrew...
==> Caveats
phantomjs has been officially discontinued upstream.
It may stop working correctly (or at all) in recent versions of macOS.

==> Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-macosx.zip
Already downloaded: /Users/shinya_kubo/Library/Caches/Homebrew/downloads/f8cdfacce271a45f2b21ff12f7cd783d941450ed6d34e5c20eb20abd42f481c0--phantomjs-2.1.1-macosx.zip
==> Installing Cask phantomjs
==> Linking Binary 'phantomjs' to '/usr/local/bin/phantomjs'.
🍺  phantomjs was successfully installed!

$ phantomjs --version
2.1.1

Docker学習中に詰まったところ1

オライリーのDockerという本を1周しようとして詰まったところの記録

5章 開発でのDockerの利用(p76)uWSGI を追加するところでエラーが出て詰んだ。

$ cat Dockerfile
FROM python:3.4

RUN pip install Flask==0.10.1 uWSGI==2.0.8
続きを読む

AWS S3にアップロードした時のメモ

コマンド使ってS3をフォルダごと操作する際のコマンドです。

確認
aws s3 ls s3://[s3url]/

確認できたらアップロードをディレクトリごとアップロードします。 その際のオプションは下記を使用します。

--recursive : このオプションでフォルダを丸ごと扱う事ができる

アップロード
aws s3 --profile ags cp AWSLogs/ s3://[s3url]/AWSLogs/ --recursive

「AWSLogs」フォルダをそっくりそのままアップロードしたい場合は上の指定方法で大丈夫でした。

ついでにダウンロード

ダウンロード
aws s3 cp s3://[s3url]/AWSLogs/ [ダウンロード先パス] --recursive

GitLFSで404エラーが出た

ことの発端

グループ開発でGitLFSを利用しておりました。

ある時メンバーから「sourcetreeでブランチを切り替えられない」ということを言われました。 masterブランチからdevelopブランチに checkout したかったようです。

こんなエラーが出ていました。

git -c diff.mnemonicprefix=false -c core.quotepath=false checkout -b develop --track origin/develop
Downloading image1111.png (2 KB)
Error downloading object: image1111.png (bcfc16): Smudge error: Error downloading image1111.png (***************************************************************************): 
[***************************************************************************] 
Object does not exist on the server: [404] Object does not exist on the server

Use `git lfs logs last` to view the log.

error: external filter 'git-lfs filter-process' failed
fatal: image1111.png: smudge filter lfs failed

確認のためコマンドラインでcloneしてみると下記エラーになりました。

[***************************************************************************] 
対象がサーバー上に存在しません: [404] 対象がサーバー上に存在しません

Errors logged to image/.git/lfs/logs/20181120T181049.624332.log
Use `git lfs logs last` to view the log.
error: external filter 'git-lfs filter-process' failed
fatal: image1111.png: smudge filter lfs failed
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'

下記対応方法を見つけ、そのメンバーには対応してもらいました。

Git LFS でうまく clone や pull ができないときにバイナリファイルのダウンロードをスキップする | MSeeeeN | 大阪発 IT メディア by MSEN

smudgeエラーが起きるのでそのエラーをSkipするだけで一時対応はできました。 しかし、あくまでも一時対応のため、グループ全員に行ってもらう必要があります。

解決方法

根本的解決ができた方法も記録しておきます。

  1. smudgeエラーをSkipできる状態にする

    git lfs install --skip-smudge

  2. pullする

    git pull

    git lfs pull

  3. 問題のファイルを削除する(今回の場合は image1111.png

    rm image1111.png

  4. 削除したファイルを再度追加する

  5. 再度pushする

smudgeエラーが発生するようなファイル破損状態になったことが原因のようです。

解消方法は破損ファイルの削除で対応することができました。

IntelliJをインストール

sbtについてのチュートリアルを読み終わって気がつきました。
scala書いてないじゃん…orz

scalaというプログラミング言語の勉強を進めたいのに、 ビルドツールに時間をさいてしまった。

sbtについては簡単に把握しやすい記事があったので、 今後はそちらを参照するようにしたいと思います。

qiita.com

気を取り直してIntelliJをインストールしました。
無料のやつ。

www.jetbrains.com


次こそコードを書くぞ!

sbtシェルについて

基本

今回の学習:sbt Reference Manual — 実行

sbtを実行するには、プロジェクトディレクトリに移動してsbtと打つ。

cd practice_scala/hello/
sbt

これで「sbtシェル」が実行される。

実行後は下記の3つの操作になるみたい。

> compile
> run
> exit

上から順に、

バッチモード

sbtコマンドに引数を渡したらバッチモードになり、「"“」で囲めば1つの引数扱いになるとのこと。

例:$ sbt clean compile “testOnly TestA TestB”

ビルドが遅くなるらしいですが、実際に使ってみてのお楽しみとしてとっておきます。

継続的ビルド・テスト

ソースファイルを保存すると自動でコンパイルしてくれる仕組みがあるようです。
初心者なので慣れるまで手動でやっていきます。

なれたら試すsbt Reference Manual — Triggered Execution

その他、頻出コマンドが紹介されていましたが、今見ても頭に入らないので、skipします。

プロジェクトのディレクトリ構成

ディレクトリ構成についての説明がありましたので、簡単に読んでおきます。
sbt Reference Manual — ディレクトリ構造

かいつまんでメモ。

  • ソースコードは「src/main/」に作成する(今回の例だと practice_scala/hello/src/main/)
  • 「src/」ディレクトリにディレクトリを作成されても無視されるので注意
  • ビルドの定義ファイルは「build.sbt」に記載する(今回の例だと practice_scala/hello/build.sbt)
  • プライグインなどは「project/」に追加する(今回の例だと practice_scala/hello/project/)
  • ビルドした成果物は「 target/」に追加される(今回の例だと恐らく practice_scala/hello/target/)
  • バージョン管理する際は「.gitignore」に「target/」を追加すると便利らしい(今はいいかな)


恐らくの部分は今後勉強して確認後修正