経緯
CentOS 8 Stream に Emacs 26.1 が DNF でインストールできる。
$ sudo dnf info emacs-nox
Last metadata expiration check: 0:06:54 ago on Sat 17 Apr 2021 12:17:36 PM JST.
Installed Packages
Name : emacs-nox
Epoch : 1
Version : 26.1
Release : 5.el8
Architecture : x86_64
Size : 38 M
Source : emacs-26.1-5.el8.src.rpm
Repository : @System
From repo : appstream
Summary : GNU Emacs text editor without X support
URL : http://www.gnu.org/software/emacs/
License : GPLv3+ and CC0-1.0
Description : Emacs is a powerful, customizable, self-documenting, modeless text
: editor. Emacs contains special code editing features, a scripting
: language (elisp), and the capability to read mail, news, and more
: without leaving the editor.
:
: This package provides an emacs binary with no X windows support for running
: on a terminal.
とりあえず, Getting Started - MELPA を参考に設定ファイルを作成する。
~/.emacs.d/init.el
(require 'package)
(add-to-list 'package-archives
'("melpa-stable" . "https://stable.melpa.org/packages/") t)
;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities`
;; and `package-pinned-packages`. Most users will not need or want to do this.
;;(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
(package-initialize)
ところが, M-x package-refresh-contents
しても, Failed to download ‘melpa’ archive.
と表示される。
結論
2021-04-17 時点で最新の Emacs 27.2 をインストールすることで通るようになる。
なお, なぜ 27.2 で通るようになるのかは未調査。
対処
-
不要になった Emacs 26.1 は削除する。
$ sudo dnf -y remove emacs-nox
-
とりあえずはビルドが通れば良いので, 開発ツールを一通りインストールする。
個別に必要なパッケージもインストールする。$ sudo dnf -y group install development $ sudo dnf -y install gnutls-devel ncurses-devel
-
ソースコードをダウンロードし, 展開する。
$ curl -LO https://ftp.iij.ad.jp/pub/gnu/emacs/emacs-27.2.tar.xz $ unxz -c emacs-27.2.tar.xz | tar -xpf - $ cd emacs-27.2; pwd
-
ビルドする。
$ ./configure $ make $ sudo make install
-
この時点ではパスが通らないので再ログインし, Emacs を起動,
改めてM-x package-refresh-contents
するとPackage refresh done
と表示される。
付録: 個別パッケージ未インストール時に ./configure
で表示されるメッセージ
gnutls-devel 未インストールの場合
configure: error: The following required libraries were not found:
gnutls
Maybe some development libraries/packages are missing?
To build anyway, give:
--with-gnutls=ifavailable
as options to configure.
ncurses-devel 未インストールの場合
configure: error: The required function 'tputs' was not found in any library.
The following libraries were tried (in order):
libtinfo, libncurses, libterminfo, libcurses, libtermcap
Please try installing whichever of these libraries is most appropriate
for your system, together with its header files.
For example, a libncurses-dev(el) or similar package.
どっとはらい。