[解決済み] Emacsでパッケージの更新をする
質問
パッケージについて、以下のような設定をしています(より良い推奨のものがあるかはわかりません)。
(require 'package)
(setq package-archives '(("ELPA" . "http://tromey.com/elpa/")
("gnu" . "http://elpa.gnu.org/packages/")
("marmalade" . "http://marmalade-repo.org/packages/")))
; Apparently needed for the package auto-complete (why?)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
(setq url-http-attempt-keepalives nil)
パッケージのインストールとアップデートに関連して、3つの質問があります。
Q1. 利用可能なパッケージのリスト(および最新バージョン)を更新し、特定のパッケージを更新する方法はありますか?
Q.2 以下のパッケージソースの違いは何ですか?
- ELPAです。
- GNU
- マーマレード
- メルパ
Q.3
に追加される順序は重要ですか?
package-archives
?
解決方法は?
-
パッケージのリストを自動的に更新するためには。 すでにパッケージリストがない場合のみ は、以下を使用してください。
(when (not package-archive-contents) (package-refresh-contents))
インストールされているすべてのパッケージを更新するには、次のように入力します。
package-list-packages
に移動します。*Packages*
バッファに保存し (パッケージのリストも更新し)、次に U x .package-refresh-contents
に追加したすべてのレポから無条件にパッケージリストをダウンロードしようとします。package-archives
;package-archive-contents
は、すでにパッケージリストをダウンロードしている場合は、nil 以外となります。 -
ELPA がオリジナルです。 もうあまりメンテナンスされていないと思うのですが、どうなんでしょう。 私は使っていません。
GNU は公式のものです。 Emacsと一緒にメンテナンスされているため、常に動作するはずですが、アップデートや新しいパッケージはあまり来ません。
マーマレード は基本的に、完全なパッケージをアップロードすると、それが marmalade レポに追加されるウェブサイトです。 パッケージのアップストリームへのリンクを送信するだけで、パッケージの作成が完全に自動化されるわけではありません。 必ずしも上流を追跡したいわけではないので、これはRight Thingだと思います。 残念ながら、しばらくメンテナンスされていませんでしたが、最近誰かがそれを引き継いだので、いつかは復活し、より良いものになるはずです。
メルパ EmacsWiki の lisp エリアや github リポジトリなどの URL を受け取り、そこから自動的にパッケージをビルドします。 そのため、追跡しているものが何であれ、通常せいぜい1日程度は遅れています。 アップストリームを追跡していますが、実際に問題になったことはありませんし、私のパッケージはほとんどここから来ています。 また メルパ安定版 これは Melpa に似ていますが、最新リビジョンではなく、上流レポのタグ付きリビジョンを取得します。 Melpa stable は Melpa よりも少ないパッケージしか持っていません。
オーグモード は、独自の
package.el
レポ( http://orgmode.org/elpa/ ).どのパッケージリポジトリも同じように動作します。
package-archives
.以下は、より詳細な ブログ記事 このテーマについては、私もほぼ同意見です。
-
よくわからないのですが、パッケージが異なるレポに重複している場合、レポの表示順が
package-archives
は優先順位を決定します。 優先順位が高いのがリストの最初か最後かはわかりません。更新: Emacs 25 では、変数
package-archive-priorities
を使用すると、パッケージ・レポに優先順位をつけることができます(例:MELPAよりELPAを優先する)。
以下は、私の該当部分です。
init.el
もし興味があれば。
(setq jpk-packages
'(
ac-dabbrev
...
yasnippet
))
(package-initialize)
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/"))
(add-to-list 'package-archives
'("org" . "http://orgmode.org/elpa/"))
;; install any packages in jpk-packages, if they are not installed already
(let ((refreshed nil))
(when (not package-archive-contents)
(package-refresh-contents)
(setq refreshed t))
(dolist (pkg jpk-packages)
(when (and (not (package-installed-p pkg))
(assoc pkg package-archive-contents))
(unless refreshed
(package-refresh-contents)
(setq refreshed t))
(package-install pkg))))
(defun package-list-unaccounted-packages ()
"Like `package-list-packages', but shows only the packages that
are installed and are not in `jpk-packages'. Useful for
cleaning out unwanted packages."
(interactive)
(package-show-package-list
(remove-if-not (lambda (x) (and (not (memq x jpk-packages))
(not (package-built-in-p x))
(package-installed-p x)))
(mapcar 'car package-archive-contents))))
関連
-
[解決済み] EmacsとVimの違い
-
[解決済み] Emacsの中でsu/sudoを使ってファイルを開く
-
[解決済み] Emacsで*scratch*バッファを再オープンする?
-
[解決済み] Emacsで行を丸ごと複製するには?
-
[解決済み] テキストモードのEmacsで4スペースインデントを設定する
-
[解決済み] .emacs.dディレクトリにあるものをすべてバイトコンパイルするには?
-
[解決済み] Emacsでコードの折りたたみ効果を得るには?
-
[解決済み] パッケージ名のリストを指定して、Emacsのパッケージを自動的にインストールするには?
-
[解決済み] Emacsのデフォルトフォルダを変更する
-
[解決済み] emacs/elispです。ハッシュ(ポンド、数字記号、オクトパス)記号は何のために使うのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テキストモードのEmacsで4スペースインデントを設定する
-
[解決済み] Emacsでパッケージの更新をする
-
[解決済み] Emacsで複数のシェルを実行する方法
-
[解決済み] Emacsの中からディレクトリを作成するにはどうしたらよいですか?
-
[解決済み] emacsの分割画面の大きさを変えるには?
-
[解決済み] Emacsでコードの折りたたみ効果を得るには?
-
[解決済み] パッケージ名のリストを指定して、Emacsのパッケージを自動的にインストールするには?
-
[解決済み] Emacsのデフォルトフォルダを変更する
-
[解決済み] 現在のファイルのフルパスをミニバッファに表示する機能
-
[解決済み] emacs/elispです。ハッシュ(ポンド、数字記号、オクトパス)記号は何のために使うのですか?