こんにちは。iQeda [@iQeeeda] です。
と、最初に詰まってしまう人向けのリポジトリ設定の説明もしています。
ファイアウォール設定
クラウドサービス上で環境構築している場合、
ファイアウォールの設定をしておいてください。
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 に以下を記述してください。
パッケージインストールを使えるようにするための設定です。
;;
;; パッケージ読み込み
;;
(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 通信できる環境が整っていないとエラーになります。
;;
;; パッケージ読み込み
;;
(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 系のリポジトリだけ登録していれば問題は起こらないはずなので、
駆け出しエンジニアは無理せずにこのやり方でいいと思います。
No comments yet