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

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

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

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

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

動作確認は AWS の EC2 で行っています。ご了承ください。

ファイアウォール設定

【AWS】セキュリティグループの設定

クラウドサービス上で環境構築している場合、
ファイアウォールの設定をしておいてください。

80 番ポート、443 番ポートの開放が必要になります。
AWS の場合は EC2 のセキュリティーグループで設定します。

  • HTTP 通信
    • EC2 のセキュリティグループで 80 番ポートを許可
  • HTTPS 通信
    • EC2 のセキュリティグループで 443 番ポートを許可

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

インストール

# 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 を使いたい方は下記コマンドでインストールしてください。

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

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

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

シンボリックリンクを作成しなおして  emacs コマンドで起動する 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 設定を書きます。
設定が干渉しないように .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 が http:// じゃなくて https:// になっていることがあります。

これだと HTTPS 通信できる環境が整っていないとエラーになります。

~/.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)
以下の状況に遭遇したらリポジトリ URL を再確認
  • M-x package-refresh-contents のあと M-x package-list-packages
    • リストに何も反映されない!
  • パッケージインストールでエラー
    • could not create connection to melpa.org:443 などが発生

おそらく HTTPS 通信をしようとして失敗しています。

HTTP 系のリポジトリだけ登録していれば問題は起こらないはずなので、
駆け出しエンジニアは無理せずにこのやり方でいいと思います。

関連記事

Emacs ロードマップ

Emacs 操作方法

Emacs カスタマイズ方法

参考

お仕事ください!

僕が代表を務める 株式会社 EeeeG では Web 制作・システム開発・マーケティング相談を行っています。
なにかお困りごとがあれば、Twitter DM や Web サイトからお気軽にご相談ください。

コメント

コメントを残す

*