spangled shalalala blog

諦めたらそこで試合終了だよ。

ubuntuのapt-getで最新版のgitをインストールする方法

前エントリにてUbuntuの初期設定を終えた。
初期設定についてはこちら→さくらVPS1GプランにUbuntu16.04でサーバーを構築した備忘録

次にgitをインストールしたところ公式リポジトリのgitはバージョンが古かった。
先日こんな脆弱性もあったので最新版を入れるための手順は以下の通り。

gitのインストール

まずは公式リポジトリからgitをインストール

$ sudo apt-get update
$ sudo apt-get install git
$ git --version
  git version 2.7.4

このバージョンは脆弱性に対応できていないので、非公式リポジトリから最新版を取得するようにする。 非公式リポジトリを追加する

$ sudo add-apt-repository ppa:git-core/ppa
  add-apt-repository: command not found

add-apt-repository コマンドが無いようなので先にそちらをインストールする

# add-apt-repositoryのインストール
# apt-fileはaptパッケージを探すためのユーティリティ
$ sudo apt-get install apt-file
$ sudo apt-file update
$ sudo apt-file search add-apt-repository
----
  perl: warning: Setting locale failed.
  perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US:en",
        LC_ALL = (unset),
        LC_CTYPE = "ja_JP.UTF-8",
        LANG = "ja_JP.UTF-8"
    are supported and installed on your system.
  perl: warning: Falling back to the standard locale ("C").
  software-properties-common: /usr/bin/add-apt-repository
  software-properties-common: /usr/share/man/man1/add-apt-repository.1.gz

$ sudo apt-get install software-properties-common

これで add-apt-repository コマンドが使えるようになった。 あとは非公式リポジトリを追加してgitをインストールする。

#非公式リポジトリの追加
$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt-get update
$ sudo apt-get upgrade
#gitのインストール
$ sudo apt-get install git

$ git --version
  git version 2.14.1

これで脆弱性に対応したgitをインストールすることができた。 公式リポジトリのバージョンはなんで最新版に対応してないんだろう…

さくらVPS1GプランにUbuntu16.04でサーバーを構築した備忘録

さくらVPSの1Gプランを契約し、Ubuntuでの初期設定を行ったのでその手順になります。

前提

  • さくらVPS 1Gプラン契約済
  • ローカル環境はMac
  • VPSのOSはUbuntu 16.04を標準インストール

サーバー構築手順

まずはVPSのWebコンソールから以下のコマンドを順に入力していく

#パッケージリストの更新
$ sudo apt-get update
#パッケージの更新
$ sudo apt-get upgrade
#ユーザーの追加
$ sudo adduser ユーザ名
$ su  変更したいユーザ名

次にローカルのMacからSSH接続を試す

#ローカルからパスワード認証でSSH接続
$ ssh -l ユーザ名 ホスト名
例)ssh -l ubuntu 192.168.xx.xx

SSH接続に成功したらsshのconfigを設定する

#ポート番号を22から任意の番号へ変更, rootログインをできなくする, PAM認証をできなくする
$ sudo vi /etc/ssh/sshd_config
---
# What ports, IPs and protocols we listen for
-   Port 22
+   Port 50022
---
-   PermitRootLogin prohibit-password
+   PermitRootLogin
---
-   UsePAM yes
+   UsePAM no
#sshdの再起動
$ sudo service ssh restart

次にファイヤーウォールの設定を行う。ubuntuのファイヤーウォールはuwfというツールで設定可能らしい。 VPSの標準インストールで最初からインストールされていると思いますが、ない場合は適時 apt-get install ufw でインストールしてください。

#IPv6サポートのOFFにする
$ sudo vi /etc/default/ufw
---
# Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
# accepted). You will need to 'disable' and then 'enable' the firewall for
# the changes to take affect.
-   IPV6=yes
+   IPV6=no
#ポートを全て封鎖して
sudo ufw default deny
#必要なポートのみ開放する
sudo ufw allow 50022
#ufwを有効化する
sudo ufw enable
#iptableの設定変更
sudo vi /etc/iptables/iptables.rules
---
-   -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
+   -A INPUT -m state --state NEW -m tcp -p tcp --dport 50022 -j ACCEPT
#設定の反映
sudo iptables-restore < /etc/iptables/iptables.rules

ここまででVPSへの接続は初期設定の22番ポートからではなく50022ポートから接続可能となっているので、接続がうまくいくか確認する。

#ポート50022へ接続できるか確認
$ ssh -p 50022 -l ユーザ名 ホスト名

接続が確認できたら次は鍵認証接続の設定を行い、セキュリティを考慮してパスワード認証での接続を行えなくする。

#サーバ側に~/.sshを作成
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
#ローカルで鍵作成
$ ssh-keygen
#ローカルからサーバーに鍵転送
$ scp -P 50022 ~/.ssh/id_rsa.pub ユーザー名@ホスト名:~/.ssh/authorized_keys
#サーバーにログインして鍵が転送されたか確認
$ ls -l .ssh/
authorized_keysがあればOK
#鍵のパーミッションを変更
$ chmod 600 authorized_keys
#ローカルから公開鍵接続
ssh -p 50022 -i ~/.ssh/id_rsa ユーザー名@ホスト名
#パスワード認証をできなくする
$ sudo vi /etc/ssh/sshd_config
---
-   PasswordAuthentication yes
+   PasswordAuthentication no
# 最後にsshの再起動
$ sudo service ssh restart

以上でVPS上にUbuntuの環境が構築できたはず

Linuxの環境構築は初めてでしたが、ググった結果割りとはまらずに環境構築ができた。 今後はここに開発環境を構築して行きたい。

技術書典に一般初参加してきた話

今日は秋葉原・アキバスクエアにて開催された「技術書典2」というイベントに行ってきました。

techbookfest.org

f:id:brokenspeaker888:20170409145519p:plain

開場前

去年の技術書典は参加していないのですが、事前に確認した情報によると去年は会場前に整理券が配布されるほどの大盛況だったらしいので、少し早めに家を出ました。

しかし、余裕を持って少し早めに開場に到着したのですが、すでに大きな列ができており1列8人で並ぶようにアナウンスがあり整列。
自分が並んだ時点で150人ほどの行列ができていたようです。
その後も列は大きくなり、開場をぐるりと反対側まで列が伸びていました。。。強烈。。。
小雨も降る中だったので、雨除けが着いていない場所に並んでる人はしんどそうでしたね。。。

入場

開演時間の午前11:00から5~10分遅れていよいよ開場。
入場の際には「2バイト(2列16人)ずつで入場してくださいー」とのアナウンスがwなるほど、1列8人だったのはそういう意図(8bit)があったんですねw

いざ入場すると、通路は少し混んでいたような気もするけど、それほど強烈な、行ったこと無いけど想像するコミケ的な殺人的な混み方は一切なく目的のブースもすんなりと寄れました。
目的のブースを一通り回った後はチェックしていなかったけど面白そうなブースにも寄りながら散策。自分はソフトウェア系の本を目的に行ったんだが、FPGAとかスピーカー工作のようなハードウェア関係のサークルも多く色々面白そうでした。

戦利品

私が購入した戦利品はこちら。

f:id:brokenspeaker888:20170409144011j:plain

  • WANTEDLY TECH BOOK #1
  • WANTEDLY TECH BOOK #2
  • WANTEDLY CULTURE BOOK 2016
  • アプリケーションパフォーマンスTips
  • GAS “Automation” Book

今回のメインの目的はWANTEDLYさんの実務経験から得られたTipsをまとめた「WANTEDLY TECH BOOK」だったのですが、こういった実務から得られた経験をまとめた本ってなかなか無いと思っていて、このような知見を得られるのは貴重だと思う。

アプリケーションパフォーマンスTipsはこちらも実務経験を元に得られた知見をまとめたものとなっている。実務の上で遭遇するであろう課題が体系的にまとめられていて、サンプルコードも公開されていてサポートも手厚い。

GAS"Automation"BookはGoogle Apps Scriptを使用した自動化入門書。GASは今まで触ったことがないので、これを機会に自動化するために使っていきたい。

超技術書典

4月29~30日に開催されるニコニコ超会議2017」にて技術書典も参加するようで、その名も「超技術書典」らしいです。
興味がある方はこちらも参加してみてはいかがでしょうか。