EC2 (CentOS) に Emacs-26.1 を導入してパッケージを扱えるようにするまでの手順


(2019 7/13 追記)
※ 私のブログで Ubuntu も含め、もう少しわかりやすい記事にしました

EC2 に Emacs-26.1 を導入してパッケージを扱えるようにするまでの手順

初心者には割と鬼門なのに調べてもあまり載っていなかったので

環境

  • Amazon Linux 2 AMI (HVM), SSD Volume Type
  • emacs-26.1

セキュリティグループ

HTTPS でリポジトリからパッケージインストールする場合は EC2 のセキュリティグループでポート 443 を許可しておいた方がいいですが、環境設定がラクなので今回は HTTP でパッケージインストールする方法を試してみます

インストール

# gcc / make / ncurses-devel をインストール
sudo yum -y install gcc make ncurses-devel
cd /usr/local/src

# emacs-26.1 ダウンロード
sudo wget http://ftp.gnu.org/pub/gnu/emacs/emacs-26.1.tar.gz
sudo tar zxvf emacs-26.1.tar.gz
cd emacs-26.1
sudo ./configure --without-x --with-gnutls=no
sudo make
sudo make install

# パスが通っていても権限を与えておかないと他の emacs が起動することがあるので注意
sudo chmod 777 /usr/local/bin/emacs-26.1

知らない間に設定ファイルが作られていることがあるので、あったら干渉しないよう削除しておきます

rm ~/.emacs
rm ~/.emacs~

パッケージを設定する

  • M-x package-refresh-contents のあとに M-x package-list-packages してもリストに何も反映されていないとき
  • パッケージのインストールを行うとき could not create connection to melpa.org:443 など発生するとき

HTTP 系のリポジトリを登録しておけば前者後者どちらの問題も解決します

~/.emacs.d/init.el
;;
;; パッケージ読み込み
;;

(require 'package)

;; HTTPS 系のリポジトリ
;; (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
;; (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
;; (add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/") t)

;; HTTP 系のリポジトリ
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(add-to-list 'package-archives '("melpa-stable" . "http://stable.melpa.org/packages/") t)
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
(add-to-list 'package-archives '("ELPA" . "http://tromey.com/elpa/") t)

;; marmalade は HTTP アクセスすると証明書エラーでフリーズするので注意
;; (add-to-list 'package-archives  '("marmalade" . "http://marmalade-repo.org/packages/") t)

(package-initialize)

他に書いた記事