【CentOS】優しいEmacsインストール方法【Ubuntu】

  • このエントリーをはてなブックマークに追加
  • Pocket

こんにちは。タクマ™ [@suwaru_blog] です。

今回は CentOS と Ubuntu の中に Emacs26 系をインストールする方法を解説します。
Emacs のパッケージインストールが全然できない!

と、最初に詰まってしまった人向けにリポジトリ設定の書き方も説明しています。

今回 AWS の EC2 で環境構築しており、一応その前提で記事を書いています。
80 番ポートの開放だけよろしくお願いします。

CentOS に Emacs-26.2 をインストール

利用した EC2 のマシンイメージ (AMI) は公式配布のこちらとなります。

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

セキュリティグループ (ファイアウォール)

今回は HTTP 通信でパッケージインストールを行います。
80 番ポートを開放しておいてください。

  • HTTP 通信でパッケージインストールしたい方
    • EC のセキュリティグループで 80 番ポートを許可してください
  • HTTPS 通信でパッケージインストールしたい方
    • EC2 のセキュリティグループで 443 番ポートを許可してください

インストール

# ec2 インスタンスにログインする

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

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

# PATH が通っていても権限が不十分で別の emacs の方が起動することがある
# それを防ぐために権限を付与する
sudo chmod 777 /usr/local/bin/emacs-26.2

emacs --version でちゃんとインストールされたか確認してみましょう。

Ubuntu に Emacs-26.1 をインストール

インストール

Ubuntu 環境で Emacs を使いたい方は下記コマンドでインストールしてください。
CentOS 同様、80 番ポートを開放しておいてくださいね。

sudo add-apt-repository ppa:kelleyk/emacs
sudo apt update
sudo apt install emacs26

emacs --version でちゃんとインストールされたか確認してみましょう。

意図していないバージョンで起動した場合

シンボリックリンクを設定すれば  emacs コマンドで起動するバージョンが変更できます。

# dpkg -L emacs26 で表示される PATH に移動
# 以下は /usr/bin の場合
cd /usr/bin

sudo unlink emacs
sudo ln -s emacs-26.1 emacs

シンボリックリンクや PATH について詳しく知りたい方は、
Mac 環境に Emacs をインストールする解説記事をご覧ください。

パッケージを使えるように設定しておく(CentOS/Ubuntu 共通)

.emacs ファイルは使わない

知らない間に .emacs という設定ファイルを作っていることがあります。

基本的には ~/.emacs.d/init.el というファイルに設定を書きます。
なので、設定内容が干渉しないように .emacs は削除しておきます。

# 使わない設定ファイルを削除
rm ~/.emacs
rm ~/.emacs~

init.el にリポジトリ設定する

~/.emacs.d/init.el に以下を記述してください。

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

(require 'package)

(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)

(package-initialize)

パッケージインストールの方法については以下の記事で解説しています。

HTTPS 通信はトラブりやすい

僕が駆け出しの頃 「全然パッケージインストールできない!?」って悩んだ話です。

init.el をコピペするときの注意

ググってよく出てくる~/.emacs.d/init.elのリポジトリの設定ですが、
リポジトリの URL が https:// となっている場合、
ポート 443 を開放して HTTPS 通信ができる設定にしていないとエラーになります。
以下の状況に遭遇したら要注意です
  • M-x package-refresh-contents のあと M-x package-list-packages
    • リストに何も反映されない!
  • パッケージインストールでエラー
    • could not create connection to melpa.org:443 などが発生

これは十中八九 HTTPS 通信をしようとして失敗しています。
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)

関連記事

Emacs ロードマップ

MacOS の Emacs インストール方法

Emacs 操作方法

Emacs カスタマイズ方法

参考

コメント

コメントを残す

*