gói-khởi tạo: đối số kiểu sai: mảng, nil


29

Trong khi xem qua các trình soạn thảo như trình soạn thảo ac / c ++ , tôi đã xem qua các dòng mã sau để đưa vào ~/.emacstệp của mình , để kết nối để melpa archivescài đặt gói

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
(package-initialize)

Sau khi lưu các dòng này vào emacs, khi tôi bắt đầu emacs, nó hiển thị cho tôi một wrong type argument: arrayp, niltrong khu vực xe buýt nhỏ

Khi tôi cố gắng $ emacs --debug -init, tôi đã nhận được:

Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
  package--add-to-archive-contents(nil "melpa")
  package-read-archive-contents("melpa")
  package-read-all-archive-contents()
  package-initialize()
  eval-buffer(#<buffer  *load*> nil "/home/anupam/.emacs" nil t)  ; Reading at buffer position 905
  load-with-code-conversion("/home/anupam/.emacs" "/home/anupam/.emacs" t t)
  load("~/.emacs" t t)
  #[0 "\205\262�    \306=\203�\307\310Q\202;�   \311=\204�\307\312Q\202;�\313\307\314\315#\203*�\316\202;�\313\307\314\317#\203:�\320\nB\321\202;�\316\322\323\322\211#\210\322=\203a�\324\325\326\307\327Q!\"\323\322\211#\210\322=\203`�\210\203\243�\330!\331\232\203\243�\332!\211\333P\334!\203}�\211\202\210�\334!\203\207�\202\210�\314\262\203\241�\335\"\203\237�\336\337#\210\340\341!\210\266\f?\205\260�\314\323\342\322\211#)\262\207" [init-file-user system-type delayed-warnings-list user-init-file inhibit-default-init inhibit-startup-screen ms-dos "~" "/_emacs" windows-nt "/.emacs" directory-files nil "^\\.emacs\\(\\.elc?\\)?$" "~/.emacs" "^_emacs\\(\\.elc?\\)?$" (initialization "`_emacs' init file is deprecated, please use `.emacs'") "~/_emacs" t load expand-file-name "init" file-name-as-directory "/.emacs.d" file-name-extension "elc" file-name-sans-extension ".el" file-exists-p file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1 "default"] 7 "\n\n(fn)"]()
  command-line()
  normal-top-level()

Tôi chưa quen với emacs, ai đó có thể vui lòng cho tôi biết làm thế nào tôi có thể giải quyết điều này?

Câu trả lời:


41

Tôi đã chạy vào đây ngày khác. Tôi nghĩ rằng đó là do một tệp lưu trữ gói không hợp lệ. Cách khắc phục ngay lập tức là xóa <user-emacs-directory>/elpa/archives/melpa/archive-contents; nó sẽ được xây dựng lại vào tiếp theo package-initialize. Thật không may, pack.el không mạnh mẽ cho loại thất bại này.


bạn nói đúng, nó hoạt động với tôi khoảng 12 giờ, rồi đột nhiên vấn đề này xuất hiện .. ngoài ra còn có nhiều gói được đề cập trong loạt bài hướng dẫn không có trong elpa.gnu.org tiêu chuẩn ..
lazarus

Không có cách nào khác để giải quyết vấn đề này?
lazarus

Tôi nghĩ rằng đó có thể là một lỗi trong MELPA (kết hợp với sự thiếu khả năng phục hồi trong gói.el), bạn có thể muốn gửi một vấn đề ở đó.
shosti

Không chắc nó có liên quan hay không, nhưng địa chỉ của kho lưu trữ đã thay đổi: bây giờ nó khuyến nghị:(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
rvf0068

Tôi đã chạy trong cùng một vấn đề sau khi nâng cấp gói. Các sửa chữa làm việc như một nét duyên dáng. Cảm ơn.
rkachach

3

Tôi đã có cùng một vấn đề và áp dụng các sửa chữa sau đây. Điều này làm việc cho tôi:

  • Thay đổi địa chỉ cho kho lưu trữ melpa thành: " http://melpa.org/packages "
  • Xóa tệp ~ / .emacs.d / elpa / archives / melpa / archive-content
  • Chạy gói khởi tạo và làm mới gói nội dung.

Tôi có một lệnh gói-refresh-nội dung trong tệp .emacs của tôi. Điều này đảm bảo rằng các gói luôn được cập nhật nhưng nó thêm khoảng hai giây vào thời gian khởi động của emacs.

Các lệnh liên quan đến gói của tôi trong .emacs trông như thế này:

;; Package system
(require 'package)
(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
                         ("marmalade" . "https://marmalade-repo.org/packages/")
                         ("melpa" . "http://melpa.org/packages/")
                         ("user42" . "http://download.tuxfamily.org/user42/elpa/packages/")))
(package-initialize)

(package-refresh-contents)
(setq auto-install-packages
      '(color-theme bar-cursor htmlize flycheck flycheck-haskell
                    haskell-mode sml-mode rust-mode fsharp-mode nasm-mode go-mode
                    perl-mode web-mode )) ;;ffap-perl-module markdown-mode))
(dolist (pkg auto-install-packages)
  (unless (package-installed-p pkg)
    (package-install pkg)))

Tôi đang gặp vấn đề này khá thường xuyên. Tôi tự hỏi liệu có cách nào để tự động xóa tệp ~ / .emacs.d / elpa / archives / melpa / archive-nội dung bất cứ khi nào sự cố này xảy ra.
Thorkil Værge

1
Bạn có nghĩa là alias rm_archive='rm -r <user-emacs-directory>/elpa/archives/melpa/archive-contents'trong ~/.bashrctập tin của bạn ?
snd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.