読者です 読者をやめる 読者になる 読者になる

かきスタンプ

福岡で物流系のエンジニアやってます

elementary OS:セットアップメモ

elementary OS(見た目がMacっぽいDebian系ディストリ)をセットアップしたので、その手順をメモ。

-1-
公式サイトより、イメージファイルをダウンロード。(無料でのダウンロードも可)
 
 
-2-
インストールドライブ(USB起動)を作成します。
Rufus を使用しました。設定は以下。

「スタート」を押し、インストールドライブを作成。  
 
-3-
インストールする端末のBIOS設定を変更します。今回は ASUSのE200Hを使用しました。

  1. 作成したインストールドライブを挿し、PC起動
  2. BIOS画面を起動(電源を入れ、F2連打)
  3. Securityタブにて、Secure Boot Controlを、[Disabled]に設定
  4. Bootタブにて、Boot Option #1を選択し、USBを選択。
  5. Save & Exit タブにて、Save Change and Exitを選択。
  6. GRUBが起動する。Install elementary OS を選択。後はインストールガイドの手順に従う。

-4-
パッケージマネージャ更新

sudo apt-get update 
sudo apt-get upgrade

日本語化

画面左上の「Applications」を選択→
System Settingより、Language & Regionを選択。
「UnLock」を選択すると、設定が変更できるようになる。
Formatにて「Japanese」を選択。
その後、再起動。

日本語入力設定

(以下を実行)
sudo apt-get install fcitx-mozc
im-config -n fcitx
fcitx-config-gtk3
「入力メソッドの設定」が起動する。[全体の設定]タブより、[拡張オプションの表示]を有効にする。
[プログラム]タブの「fcitxが本当に起動するまでのスリープ時間」を10に設定。
その後、再起動。
再起動後、再び fcitx-config-gtk3 を実行。
[全体の設定]タブの[入力メソッドのオンオフ]に、適当なキーを割り当てる。([全角/半角]キー等)

蓋を閉じても電源が落ちないようにする

/etc/systemd/logind.conf
を編集
「#HandleLidSwitch=suspend」→「HandleLidSwitch=ignore」
その後、設定を反映させるために以下を実行。
sudo systemctl restart systemd-logind

Chromeインストー

sudo wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get install google-chrome-stable

Fire Foxインストー

sudo apt-get install firefox 

gitインストー

sudo apt-get install git

LibreOfficeインストー

sudo apt-get install libreoffice

グラフィック系ソフトのインストー

sudo apt-get install gimp
sudo apt-get install krita
sudo apt-get install inkscape

node.jsインストー

sudo apt-get install nodejs
sudo apt-get install nodejs-legacy
sudo apt-get install npm
sudo npm install -g n
sudo n latest
sudo npm update -g npm
sudo npm update -g
sudo npm outdated -g

node.jsバージョン切り替え

git clone git://github.com/creationix/nvm.git ~/.nvm
source ~/.nvm/nvm.sh
nvm install 7.8.0(バージョンを指定)
nvm use 7.8.0(バージョンを指定)

元々は Windows 10の64bit版が入っていたマシンにセットアップしました。
こういった作業をノートPCでやる時、ASUSは結構いい選択肢ではないでしょうか。
スペックは大した事なくても、安価なマシン(リサイクル品)が、じゃんぱらなどで多く出回っているので。
ハードオフ等で売ってるジャンク品なんかを使うのもいいと思います。というか、一番最初はそうしました。

Oracle:インポートエラー(IMP:00013)の対処

エクスポート・ファイルはEXPORT:V10.02.01によって従来型パス経由で作成されました。  
IMP-00013:DBAのみ別のDBAがエクスポートしたファイルをインポートできます  
IMP-00000:エラーが発生したためインポートを終了します。

というメッセージが出た時の対処。 エクスポートをDBA権限で実行した場合、インポートユーザもDBA権限がないと実行できないのが原因です。
 

対処方法1.DBAユーザでインポートする
コマンドプロンプト等のターミナルより、以下を実行。

(impを使用する場合)
imp \"<ユーザ名>/<パスワード>@<net_service_name> AS SYSDBA"\ file=<dmpファイル(フルパス)> fromuser=<スキーマ名> touser=<スキーマ名>

(impdを使用する場合)
impdp \"<ユーザ名>/<パスワード>@<net_service_name> AS SYSDBA\" DIRECTORY=<DIRECTORY OBJECT> DUMPFILE=<dmpファイル> SCHEMAS=<スキーマ名>

   

対処方法2.インポートユーザにDBA権限を付与する
以下のコマンドで、インポートユーザのDBA権限を付与。(要管理者権限)

GRANT DBA TO <ユーザ名>

   

対処方法3.DBAでエクスポートしない
以下のコマンドで、エクスポートユーザのDBA権限を解除。(要管理者権限)

REVOKE DBA FROM <ユーザ名>

すでに取ってしまったdmpは仕方ないけど、こっちが一番いい思う。(インポート/エクスポート くらいは、DBA権限でなくても出来ていいと思う。)

   

DBA権限が付与されているかどうかは、以下のSQLで確認できます。

select * from DBA_ROLE_PRIVS order by GRANTEE

GRANTED_ROLE に、「DBA」のレコードが存在している場合、そのユーザはDBA権限を保持しています。

Git基本操作メモ

操作 コマンド 備考
リポジトリの初期化 git init ディレクトリでの操作を推奨
状態の確認 git status 次にやるべき操作がなんとなく分かる。
ファイル追加 git add (ファイル名) 「.」で、カレントの全ファイル。「*」でワイルドカード指定。-Aで追加・変更・削除が同時管理できる。
直前のaddを取り消す git reset HEAD [ファイル名] アンステージ
コミット git commit [-m “message”] addしたファイルが対象。-a -m で、現在のインデックス内容をgit addした後にコミット。
コミット詳細確認 git show
コミット内容追加 git commit --amend コミットメッセージ修正にも使用可。追加の修正内容は最新コミット内容に内包され、履歴は更新されない。
ログ確認 git log [--oneline]
差分チェック git diff (コミットID1) (コミットID2) IDはログで確認
過去のバージョンに戻す git checkout (コミットID) (ファイル名) ファイル名は「.」で対象の全ファイルを指定可。
最新コミット状態に戻す git reset --hard HEAD ローカル編集内容をリセットしたい時に。HEADでなくリポジトリIDでも可。
ファイル削除 git rm (ファイル名) ローカルの内容も同時に消える。
ファイル名変更 git mv (変更前のファイル名) (変更後のファイル名) ローカルの内容も変更される。
インデックスのみ削除 git rm --cached (ファイル名)
リポジトリ管理対象外ファイルを指定 .git/info/excludeに記述 無ければファイルを新規作成。無視するファイル名を記述する。
特定コミット取り消し git revert (コミットID)
特定のコミットを無かったことにする git rebase -i (取り消す直前のコミットID) viが起動する。取り消すコミット内容を削除。
ブランチ作成 git branch (ブランチ名)
ブランチ一覧表示 git branch 現在作業中は「*」で表現
ブランチ切り替え git checkout (ブランチ名)
ブランチのマージ git merge (ブランチ名) masterに切り替えてから実行

各種コマンドのオプション詳細は、-h (使用例:git checkout -h)

AWS:<EC2>Ubuntu Server 16.04 LTS のデスクトップ環境

【クライアント端末:Windows 10】
【使用ツール:MobaXterm】

Ubuntu ServerのGUIデスクトップ環境作成手順。 VNC(Virtual Network Computing)を使用しています。

1.
Ubuntu Server 16 のEC2インスタンスを作成。
(セキュリティグループを編集し、カスタムTCPルールの、ポート5900を許可する)

2.
キーのパーミッションは600に設定し、作成したインスタンスsshログイン。 MobaXterm の Terminalを使用しました。

(接続コマンド)
ssh -i <keyName.pem> ubuntu@<IPアドレス>

3.
ログイン後、以下を実行

sudo apt-get -y update
sudo apt-get -y install ubuntu-desktop
sudo apt-get -y install vnc4server
sudo apt-get -y install gnome-panel
vncserver :0
(パスワードの設定が要求される。8文字以下で入力。)
vncserver -kill :0

4.
sudo vi ~/.vnc/xstartup
にて、以下を編集

【編集前】
f:id:kakisoft:20170402173905p:plain

【編集後】
f:id:kakisoft:20170402175523p:plain

#unset SESSION~のコメントアウトを解除し、以下を追記しています。

<追記した内容>
gnome-session -session=gnome-classic &
gnome-panel &

編集後、以下を実行

vncserver :0

5.
MobaXterm の Sessions タブより、New Session→VNC を選択。
接続先を「IPアドレス:0(ディスプレイ番号)」と入力し、OK。

起動後は、Applications や Placesを選択してアプリやディレクトリを使用できる。 f:id:kakisoft:20170402180101p:plain  
 

途中、わざわざ「vncserver :0」を実行し、killしているのは、vncserverを起動しないと、/.vnc/xstartup が作成されないためです。
ディスプレイ番号「:0」以外を使用する場合、ポート番号の許可範囲を拡大しておけばOKです。(ディスプレイ番号:1を使用する場合、5901を許可。)

AWS:ARN設定内容メモ

ARN(Amazon Resource Names)は、AWSにおける一意のリソースを特定するためのID。
IAMのポリシー編集時など、時々使うけど、何を書くかよく忘れるのでメモ。

<書式>

arn:<partition>:<service>:<region>:<account-id>:<サービスによって異なる>

<partition>
aws」固定でよさそう。

<service>
s3とかec2とか。
詳細はAWS公式ページ参照。

<region>
オレゴンや東京などのリージョンを指定。 具体的な設定内容は以下。

Region Name Region
US East (N. Virginia) us-east-1
US East (Ohio) us-east-2
US West (N. California) us-west-1
US West (Oregon) us-west-2
Canada (Central) ca-central-1
Asia Pacific (Mumbai) ap-south-1
Asia Pacific (Seoul) ap-northeast-2
Asia Pacific (Singapore) ap-southeast-1
Asia Pacific (Sydney) ap-southeast-2
Asia Pacific (Tokyo) ap-northeast-1
EU (Frankfurt) eu-central-1
EU (Ireland) eu-west-1
EU (London) eu-west-2
South America (São Paulo) sa-east-1

 
<account-id>
右上のメニューから確認できる。
f:id:kakisoft:20170326030931p:plain

その他、サービスごとの個別の内容は、AWS公式サイトを参照。

Windows向け:Visual Studio Code の Python 実行環境

Visual Studio Codeはインストール済みで、Pythonは未インストールの状態から開始しています。
PythonのインストールにはChocolateyを使用しています。
Chocolateyのインストールについてはこちらを。

管理者権限でコマンドプロンプト or PowerShellを起動し、以下を実行。

choco install python

Visual Studio Codeを起動し、拡張機能(Ctrl + Shift + X)を起動。
Python」を検索し、インストール

その後、適当なフォルダを作成。
Visual Studio Codeにて、ファイル→フォルダを開く→先ほど作成したフォルダ (この操作で、.vscodeというファイルが作成されます。)

F5を押し、「Python」を選択。
以降、F5で実行できる。

pylintのインストールを勧められますが、便利なのでインストールしておきます。
 
 
pyenvはWindowsでは使えないので、上記では導入してないす。
そもそもPythonWindowsにはあんまり力を入れてないっぽいんで、Windowsで使う分には緩く使っていけばいいかな、と考えています。

 
Visual Studio 2015でPythonプロジェクト作成時にはバージョン選択が可能です。 f:id:kakisoft:20170324003112p:plain

Windows向け:Visual Studio Code の Ruby 実行環境

Visual Studio Codeはインストール済みで、Rubyは未インストールの状態から開始しています。
RubyのインストールにはChocolateyを使用しています。
Chocolateyのインストールについてはこちらを。

管理者権限でコマンドプロンプト or PowerShellを起動し、以下を実行。

choco install ruby
choco install ruby.devkit
choco upgrade ruby.devkit
ruby C:\tools\DevKit\dk.rb init
gem install ruby-debug-ide
gem install debase

gem install実行時にSSLエラーが発生した場合は、以下を実行。

gem install rubygems-update --source http://rubygems.org/
update_rubygems

環境によっては実行コマンドが「rubygems_update」だったりする事もあるみたいだけど、よくわかんねっす。
また、Chocolateyを使用してruby.devkitをインストールすると、自動的に「C:\tools\DevKit」となるみたいなので、上記パスで問題ないかと。

続いて、Visual Studio Codeを起動し、拡張機能(Ctrl + Shift + X)を起動。
Ruby」を検索し、インストール

F5で実行。「Ruby」を選択。
以降、F5で実行できる。

起動プログラムが「main.rb」となっているので、必要に応じてlanch.jsonを修正する。 f:id:kakisoft:20170322213637p:plain lanch.jsonは、デバッグ設定にて、いつでも修正可能です。

ちなみに、Ubuntuでも同様の手順でOKでした。
(その時はChocolateyでなく、apt-getを使用しています。dk.rb initのパス指定は不要です。)