Cent OSのインストール

VirtualBoxとかにCent OSをインストールしてみる。

インストール関連:

VirtualBox (Windows) 上に CentOS 7 をインストールする - Qiita

Index of /Linux/centos/6.8/isos/x86_64

「はじめてのVirtualBox」-仮想CentOSに「GuestAdditions」をインストール

VirtualBoxにCentOS6.7 64bit用の仮想マシンを作成 | kakiro-web カキローウェブ

CentOS 6.5 のインストール

◇パッケージグループの選択1(CentOS6)◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆

はじめての自宅サーバ構築 - Fedora/CentOS - CentOS6 のインストール手順

ネットワーク設定関連:

VirtualBoxでCentOS6.6をminimalインストールしたときのネットワーク設定メモ - Qiita

VirtualBoxのネットワーク設定とCentOS6.5のインストール | あぱーブログ

Linux ネットワーク基本設定 其の一

yumのupdateできない問題:

VirtualBoxにCentOS-6.5をインストールしてyum update - りょーくん

IPv6が関係ある?

【CentOS 6】yum が DNS 名前解決できないエラーで使えない問題を解決【OSインストール後】 – oki2a24

vi /etc/sysconfig/network-scripts/ifcfg-eth0 で ONBOOT=no から次のように yes に修正しました。

ONBOOT=yes すると、DNS の問題が解決しました!yum update ができるようになりました!

メモアプリで気になるもの

メモアプリでなんかいいものないかとググった。

下記の機能があるといいかな。

  1. Markdownが使える。
  2. 同期できる。

下記の四つくらいが目に付いた。

  1. Quiver
    • セル機能で複数の記法を使用して記述が可能。高機能、表現力は高いかな。
    • 同期の方法:Dropbox, iCloud Drive, Google Drive, or any other file-based cloud services
  2. marxico
  3. Boostnote
  4. SimpleNote

Markdown関連

参考サイト:

Pyenvについて

pyenvそのもののについて理解したい。

GitHub - yyuu/pyenv: Simple Python version management

pyenv/README.md at master · yyuu/pyenv · GitHub

Authoring plugins · yyuu/pyenv Wiki · GitHub

以下ざっくりREADMEから抄訳。英語で詳細まで理解しようとするのは疲れる。


概要

  • rbenvのフォーク
  • ユーザーごと、ディレクトリごとにPythonのバージョンを設定できる。
  • Python自体に依存しないシェルスクリプト
  • 環境変数ごとPythonのバージョンを上書き
  • 同時に複数のPythonのバージョンからコマンドをサーチ。toxと使う時便利。
  • virtualenvを作ることもできます。あるいはpyenv-virtualenvで処理を自動化もできます。

どのように動作するか

  • PATHにshim実行ファイルを挿入することでPythonコマンドを横取りする。

PATHの理解

  • PATHは:で並べられたパスを左から右にサーチする。

Shimsの理解

  • PATHの前にshimsのパスを入れる。

Pythonのバージョンを選ぶ

  1. PYENV_VERSION環境変数使う。pyenv shellコマンドでセッション中の環境変数セットできる。
  2. アプリケーション固有のカレントディレクトリの「.python-version」ファイル。pyenv local コマンドで変更できる。
  3. ディレクトリをルートまで辿って、最初にあった「.python-version」ファイル。
  4. グローバルの~/.pyenv/versionファイル。pyenv globalコマンドで変更できる。グローバルのファイルないと"system"のPython使うとみなす。

NOTE: 複数のバージョンを同時に使える。toxのようなツールを使用すれば、Python2とPython3を並行して使える。

Pythonのインストール先

  • 一旦pyenvがアプリケーションが指定したpythonのバージョンを特定したら、コマンドを対応するPythonのインストール先にパスをする。
  • 各バージョンのPythonは~/.pyenv/versions以下に、それぞれのディレクトリにインストールされる。
  • pyenvに関して言えば、バージョン名がそのままディレクトリの名前になる。

インストール

MacならHomebrewで

$ brew update
$ brew install pyenv

アップグレードする場合は、upgrade を installの代わりに使う。

インストール後は、eval "$(pyenv init -)"をプロファイルに追加する必要が有る(それらを表示するには、brew info pyenvを使用する)。プロファイルには一度だけ追加する必要が有る。

下記の「ベーシックなGitHubチェックアウト」の手順4以降を実行する。(シェルを再起動して、パスを有効にする。)

自動インストーラ

GitHub - yyuu/pyenv-installer: This tool is used to install `pyenv` and friends.

ベーシックなGitHubチェックアウト

  1. チェックアウト、(インストール先は任意)
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
  1. 環境変数PYENV_ROOTをインストール先に定義して、pyenvコマンドラインユーティリティーにアクセスできるように$PYENV_ROOT/binを$PATHに追加。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

Zsh note: ~/.zshenv ファイルを変更。 Ubuntu note: ~/.bashrc ファイルを変更。

  1. shimsとオートコンプリーションを有効にするのに、pyenv initを使用するシェルに追加。初期化中にPATHに手を加えるので、eval "$(pyenv init -)"がシェルのコンフィグファイルの最後に置かれているか確認する。
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

Zsh note: ~/.zshenv ファイルを変更。 Ubuntu note: ~/.bashrc ファイルを変更。 General warning: BASH_ENV変数が.bashrcをさすように設定されているシステムがあります。そのようなシステムでは、だいたいにおいて上記のeval "$(pyenv init -)は.bashrcではなく.bash_profileにおくべきでしょう。そうしない場合、pyenvが無限ループになるような奇妙な振る舞いに遭遇するでしょう。 詳細はpyenv init getting into an infinite loop when invoked from bashrc · Issue #264 · yyuu/pyenv · GitHubを参照。

  1. パスの変更を反映させるためにシェルを再起動。これでpyenvが使える。
$ exec $SHELL
  1. $PYENV_ROOT/versionsにPythonの各バージョンをインストール。Python 2.7.8をインストールする場合。
$ pyenv install 2.7.8

アップグレード

上記の方法でpyenvをインストールした場合、アップグレードはgitでできる。

$ cd ~/.pyenv
$ git pull

特定のリリースにアップグレードするばあい、対応するtagをチェックアウトする。

$ cd ~/.pyenv
$ git fetch
$ git tag
v0.1.0
$ git checkout v0.1.0

アンインストール

pyenvはシンプルなので、一時的に無効にすることも、アンインストールも簡単。

  1. pyenvを無効にする場合、シェルの起動コンフィグから単にpyenv init行を削除する。これで、pyenv shimsのディレクトリをPATHから削除して、pyenv導入以前のようにpythonコマンドのような呼び出しはシステムのPythonのバージョンを実行する。 pyenv は command lineからアクセスできるが、Python apps はバージョン切り替えの影響を受けない。
  2. 完全にアンインストールする場合、手順1を実行した後、pyenvのルートディレクトリも削除する。これはpyenv root/versions/以下のすべてのPythonのバージョンを削除する。
`pyenv root`/versions/

パッケージマネージャーでインストールした場合、最後の手順として、pyenv packageを削除する。Homebrewの場合は、

brew uninstall pyenv

コマンドレファレンス

アドバンスド設定

このセクションはシェルのプロファイルのすべての行がすることを知る必要が有る場合以外はスキップしてください。

  1. shimsのパスを設定 pyenvが適切に動作するための唯一の設定。主導でやる場合、~/.pyenv/shims$PATHの先頭に追加。
  2. autocompletionをインストール 完全にオプションだけど極めて便利。~/.pyenv/completions/pyenv.bashをソーシングすることで、設定できる。Zshユーザーには~/.pyenv/completions/pyenv.zshもある。
  3. shimsをRehash 時々、shimファイルを再構築する必要が出てくるでしょう。これをinitでやることで、すべてが更新されている状態にします。いつでもpyenv rehashで主導で実行できます。
  4. sh dispatcherをインストール この部分もオプションだが、pyenv と pluginsに使用中のシェルで環境変数を変更できるようにする、pyenv shellのようなコマンドを使用できるようにして。sh dispatcherはcdを上書きしたり、シェルプロンプトをハックしたりするようなクレイジーなことは一切しないが、pyenvにシェルの機能ではなく実際のスクリプトであることが必要ななんらかの理由のために、これを安全にスキップすることができる。

実際何やっているか自分で見る場合は、pyenv init -を実行。

Pythonバージョンのアンインストール

時間が経つにつれ、~/.pyenv/versionsディレクトリにPythonバージョンがたまるでしょう。

古いPythonバージョンを削除するには、pyenv uninstallコマンドで削除プロセスを自動で行います。

もう一つの方法として、単純に削除したいバージョンのディレクトリをrm -rfを使用します。pyenv prefixコマンドで特定のバージョンのディレクトリを見つけることができます、例)pyenv prefix 2.6.8

コマンドレファレンス

参照 pyenv/COMMANDS.md at master · yyuu/pyenv · GitHub

環境変数

下記設定を利用して、pyenvがどのように動作するか変えられます。

名前 デフォルト 説明
PYENV_VERSION Pythonバージョンを指定する。pyenv/COMMANDS.md at master · yyuu/pyenv · GitHubも参照
PYENV_ROOT ~/.pyenv それぞれのPython versions と shimsが入るディレクトリを定義する。pyenv rootも参照
PYENV_DEBUG デバッグ情報を出力。Also as: pyenv --debug <subcommand>
PYENV_HOOK_PATH wiki参照(Authoring plugins · yyuu/pyenv Wiki · GitHub pyenv を引っ掛けるためにサーチされるコロン区切りのパスのリスト
PYENV_DIR $PWD .python-versionファイルのサーチを始めるディレクト

Linuxのパッケージ管理

Linuxのパッケージ管理

ソフトウェアの配布形態

  • パッケージ管理ツール以前はソースコードをtarなどでまとめ配布、手動でビルド等。
  • ビルドのコスト軽減、導入プロセスの標準化、管理を容易にするためにパッケージ管理システムの導入。

Bottle関連の参照サイト

Bottle関連の参照サイト

公式

実際の作業例

Flask関係の参照サイト

Flask関係の参照サイト

Welcome to Flask — Flask Documentation (0.11)

→ Flask本家のドキュメント

Flaskへようこそ — flask-docs-ja 0.10-dev documentation

→ 上記Flaskドキュメントの日本語訳

Flaskへ ようこそ — Flask v0.5.1 documentation

→ 別の日本語訳?

以下、実際の作業例。

Flaskのチュートリアルをやってみる① 〜環境設定からデータベースまで - [[ともっくす alloc] init]

Flaskのチュートリアルをやってみる② 〜ビューから実行まで - [[ともっくす alloc] init]

Pythonで学ぶwebアプリケーションの作り方by Flask — study flask 1 ドキュメント

【Python】Flask+TweepyでTwitter連携アプリを作る - しろかい!

Flask を触ってみる

Python2.7をインストールする — さくらのVPS設定メモ v0.1 documentation


Ubuntu 12.04でpyenvを利用して速攻でPython3.4 + Nginx + uWSGI + FlaskなWebアプリケーション実行環境を作る - Qiita → すごい、ほんと速攻だ。元ネタは下記の海外の記事らしい。 Serving Flask with Nginx - Vladikk → この記事だと、「Index of Packages : Python Package Index」を使用してデプロイまでやってる。

AWS Elastic Beanstalk への Flask アプリケーションのデプロイ - AWS Elastic Beanstalk

Python関係の情報収集

Python関係の情報源のメモ。

公式系

FrontPage - Python Wiki


Python初心者がチェックしておいたほうが良いサイト・本・イベントなど. - Lean Baseball

→ 初心者向けの情報源まとめ。


[python] 細かすぎて伝わりにくい、Pythonの本当の落とし穴10選 | 私の小岩ホッチキス