Skip to content

Instantly share code, notes, and snippets.

@gb-swatanabe
Last active August 29, 2015 14:01
Show Gist options
  • Save gb-swatanabe/80b2722709cc7f473077 to your computer and use it in GitHub Desktop.
Save gb-swatanabe/80b2722709cc7f473077 to your computer and use it in GitHub Desktop.
Ubuntu12.04と14.04の違い、移行する際の注意点などなど

アップグレード方法

$ sudo do-release-upgrade -d
  • -d必須
  • /etc/default/rcSを置き換えるかどうか聞いてくるが、単純に置き換えるとUTCパラメータが変わる可能性があるので要注意

パッケージ毎の差異

Ruby

  • 2.1.0、2.1.1はbuild不可
  • 2.1.2以降ならOK
  • 1.9.3-p545は未確認(makeは通った)

MySQL

  • trustyになってMySQL5.6(あるいは5.5)を入れられるようになった
    • $ sudo apt-get install mysql-server-5.6
    • デフォルトは5.1のまま
  • 5.5以降、mysqldumpに--dump-slaveオプションが増えた
    • dump取るときに適切なCHANGE MASTER命令をくっつけてくれる。今後はほぼ必須
      • 定期バックアップでは、コメント状態で記録してくれる--dump-slave=2がオススメ
  • 5.6以降、data directory(/var/lib/mysql/)直下にauto.cnfファイルが出来た。 ディレクトリごと他のサーバに持っていく時はこれを間違い無く消しておくこと

Groonga/Mroonga

  • 公式PPAには最新版しか置いていない
  • http://packages.groonga.org/ のtrustyリポジトリには4.x系しか置いてない
  • 3.x系をいれるには、mroongaだけでなくgroongaもsourceからbuildする必要あり

Apache

  • trustyになってデフォルトが2.4になった(参考: http://qiita.com/tukiyo3/items/61202fdec60af854b3fe
    • それに付随して、MPMの選択がmoduleになった。apache2-mpm-workerとかapache2-mpm-preforkでは無くなった
      • apache2-mpm-worker等のパッケージも残ってるけどtransitional。
    • $ sudo a2enmod mpm_workerとかやるっぽい
    • なので、MaxSpareThreadsやらのパラメータはapache2.confからmods-available/mod_なんちゃら.confに移った
  • Include sites-enabled/からIncludeOptional sites-enabled/*.confに変わった
    • VirtualHostのファイル名が末尾.confで終わらないとダメになった
  • 2.4になってアクセス制限の書き方が変わったけど、mod_access_compatがデフォでenabledなのでそのままでもOK
  • /etc/apache2/配下のconf.d/が廃止、conf-available/conf-enabled/になった
    • mods-sites-と同じ流儀
    • a2enconfとかある
  • default VirtualHostの扱いが変わってる
    • 000-default.confで設定されてたものがいくつかapache2.confに移っている
      • なので容赦なくa2dissite 000-default出来るようになった?
  • デフォルトのDocumentRootが/var/www/ではなく/var/www/html/になった
    • デフォルトVHostでのコンテンツ配置に要注意
    • というより、基本はVHost設定しろってことかな
  • 初期状態でhttpd.confを読み込まなくなった
$ sudo apt-get install apache2 apache2-utils

Nginx

  • 1.4.6が入る(precieseは1.4.1)
  • nginx-fullnginx-lightに加えて、nginx-coreパッケージが仲間入り
    • 普通にapt-get install nginxとすると-coreが入る
    • precieseのころは-fullが入っていた
      • 普通にapt-get install nginxとすると、12.04からのアップグレードと14.04から入れたサーバでは別パッケージが導入される
    • trustyにおける-core-fullの違いは導入されるモジュールのみ?
      • Third Party Modulesが入るか否か。WebDAVやPAM認証が使いたいなどあれば-full、そうでなければデフォルトでOKか
    • SSLモジュールが特記されてるけど、以前からHTTPS使えていたはず…
    • /usr/share/doc/nginx-core/changelog.Debian.gzを読もう
  • こっちのconf.d/は従来通り
  • 相変わらずa2en***/a2dis***のNginx版はないっぽい

導入されるモジュールの一覧

nginx-full (preciese) nginx-core (trusty) nginx-full (trusty) 備考
Standard HTTP Modules Core, Access, Auth Basic, Auto Index, Browser, Charset, Empty GIF, FastCGI, Geo, Gzip, Headers, Index, Limit Requests, Limit Zone, Log, Map, Memcached, Proxy, Referer, Rewrite, SCGI, Split Clients, SSI, Upstream, User ID, UWSGI Core, Access, Auth Basic, Auto Index, Browser, Charset, Empty GIF, FastCGI, Geo, Gzip, Headers, Index, Limit Requests, Limit Zone, Log, Map, Memcached, Proxy, Referer, Rewrite, SCGI, Split Clients, SSI, Upstream, User ID, UWSGI Core, Access, Auth Basic, Auto Index, Browser, Charset, Empty GIF, FastCGI, Geo, Gzip, Headers, Index, Limit Requests, Limit Zone, Log, Map, Memcached, Proxy, Referer, Rewrite, SCGI, Split Clients, SSI, Upstream, User ID, UWSGI 変化無し
Optional HTTP Modules Addition, Debug, GeoIP, Gzip Precompression, HTTP Sub, Image Filter, IPv6, RealIP, Stub Status, WebDAV, XSLT Addition, Debug, GeoIP, Gzip Precompression, HTTP Sub, Image Filter, IPv6, Real IP, Spdy, SSL, Stub Status, Substitution, WebDAV, XSLT Addition, Debug, GeoIP, Gzip Precompression, HTTP Sub, Image Filter, IPv6, Real IP, Spdy, SSL, Stub Status, Substitution, WebDAV, XSLT trustyになってSPDYとSSL、Substitutionが増えた
Mail Modules Mail Core, IMAP, POP3, SMTP, SSL Mail Core, IMAP, POP3, SMTP, SSL Mail Core, IMAP, POP3, SMTP, SSL 変化無し
Third Party Modules Echo, Upstream Fair Queue, DAV Ext なし Auth PAM, DAV Ext, Echo, HTTP Substitution Filter, Upstream Fair Queue trustyの-core-fullの違いはここだけ

etckeeper

  • /etc/etckeeper/etckeeper.confPUSH_REMOTEオプションが増えている
# To push each commit to a remote, put the name of the remote here.
# (eg, "origin" for git).
PUSH_REMOTE=""
  • -> commit発生時に/etc/etckeeper/commit.d/99pushが起動、PUSH_REMOTEそこで参照される
#!/bin/sh
if [ -n "$PUSH_REMOTE" ]; then
        if [ "$VCS" = git ] && [ -d .git ]; then
                git push "$PUSH_REMOTE" master || true
        else
                echo "PUSH_REMOTE not yet supported for $VCS" >&2
        fi
fi
  • 事前にgit remote addしておけばよい模様
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment