ইমাস ইনস্টল করা প্যাকেজগুলি রফতানি করবেন?


10

আমি ইমাস 24.4 ব্যবহার করছি। আমি প্রায় এক বছরের ব্যবহারের ক্ষেত্রে Mx তালিকা-প্যাকেজগুলির নির্দেশের মাধ্যমে সংখ্যক ইনস্টল করা প্যাকেজ যুক্ত করেছি। আমি অন্য কোথাও ব্যবহারের জন্য আমার ইনস্টল করা প্যাকেজ তালিকাটি রফতানি করতে চাই। আমার .emacs অনুলিপি করা শুরুতে আমাকে কিছু ত্রুটি দেয় যা কিছু জিনিস ইনস্টল করতে আমার স্মৃতিকে জাগিয়ে তোলে। আমি সন্দেহ করি যে আমি .emacs.d অনুলিপি করতে পারি, তবে এটি সম্ভবত একটি খারাপ ধারণা বলে মনে হচ্ছে।

বিদেশী মেশিনে সহজেই এগুলি পেতে ব্যবহার করা যেতে পারে এমন কোনও ফাইলের কাছে ইনস্টল করা প্যাকেজগুলির তালিকা ডাম্প করার জন্য আমি কোনও পদ্ধতি বা নির্দেশনা জারি করতে পারি?



1
আপনার .emacs.dডিরেক্টরিটি অনুলিপি করা (বা এটি সম্ভবত সংস্করণ নিয়ন্ত্রণে রাখা) সাধারণত একটি ভাল ধারণা। ( ~/.emacsআপনি ~/.emacs.d/init.elযদি এটি করার সিদ্ধান্ত নেন তবে পুনরায় নামকরণ করাও বুদ্ধিমান ))
ফিলিপস

উত্তর:


5

ডিরেক্টরিতে ~/.emacs.d/elpaইনস্টল করা সমস্ত প্যাকেজ রয়েছে list-packages। আপনি এই ডিরেক্টরিটি অনুলিপি করতে পারেন।

আমি বাইট-রিকম্পাইল করার জন্য সমস্ত কিছু (byte-recompile-directory "~/.emacs.d/elpa" 0 t)( যেমন 0জিজ্ঞাসা করব না, tমানে বলপূর্বক পুনরায় কম্পাইল করা) এর মতো সম্ভবত চালাব কারণ আমি বিশ্বাস করি যে ইমাস সংস্করণগুলির মধ্যে বাইট-সংকলিত ফাইলগুলির কিছুটা বেমানান রয়েছে।


এই প্রশ্নটি জিজ্ঞাসা করার পর থেকে আমি এই কৌশলটি বেশ কয়েকবার ব্যবহার করেছি। ইনপুট জন্য ধন্যবাদ।
সানিমাল্প

4

আমি package.elফাইলটি দেখেছি এবং ভেরিয়েবলটি পেয়েছি package-alist। এটি আপনার ইনস্টল করা প্যাকেজগুলির দ্বারা প্রয়োজনীয় প্যাকেজ সহ সমস্ত ইনস্টল হওয়া প্যাকেজগুলির একটি তালিকা বলে মনে হয়।

আপনি যদি চান সব প্যাকেজের নাম ইনস্টল নিম্নলিখিত কোড এই তালিকা থেকে প্যাকেজ নাম লিখতে হবে একটি তালিকা রয়েছে *Messages*বাফার।

(dolist (p1 (sort (mapcar 'symbol-name (mapcar 'car package-alist)) 'string<))
  (message "%s" p1))

আমি কোনও লিস্প প্রোগ্রামার নই তাই আমি নিশ্চিত কেউ এই কোডটির আরও ভাল সংস্করণ লিখতে পারে।

নতুন পিসিতে আমার সমস্ত প্যাকেজ ইনস্টল করার জন্য আমি বিকল্পটি দিয়ে প্যাকেজ কোডটি ব্যবহার করা শুরু করেছি :ensure t


2

করার একটি উপায় হ'ল প্যাকেজ ইনস্টল করা যদি না ইতিমধ্যে ইনস্টল করা থাকে তবে আপনার নিজের ফাইলটি আপডেট করা উচিত এবং সেই লাইনগুলি যুক্ত করা উচিত:

(defvar my-packages
  '(color-theme db-pg db kv magit-push-remote magit-tramp
                magit git-rebase-mode git-commit-mode pg
                pretty-lambdada projectile pkg-info epl dash
                python-mode rich-minority s yasnippet yasnippet-bundle
                use-package key-chord undo-tree guide-key move-text
                openwith ack ag aggressive-indent nginx-mode multiple-cursors
                smartparens with-editor haskell-mode)
  "A list of packages to ensure are installed at launch.")

(defun my-packages-installed-p ()
  (loop for p in my-packages
        when (not (package-installed-p p)) do (return nil)
        finally (return t)))

(unless (my-packages-installed-p)
  ;; check for new packages (package versions)                                  
  (package-refresh-contents)
  ;; install the missing packages                                                                               
  (dolist (p my-packages)
    (when (not (package-installed-p p))
      (package-install p))))

my-packagesভেরিয়েবলটি সংশোধন করুন এবং আপনি যে প্যাকেজটি ইনস্টল করতে চান তা যুক্ত / যুক্ত করুন। M-x describe-variable package-activated-listআপনাকে আপনার বর্তমানে ইনস্টল করা প্যাকেজটির তালিকা দেবে।

এর পরে, ভাগ করার একমাত্র জিনিস হ'ল আপনার init ফাইল। আমি আশা করি এটি সাহায্য করবে


ওহো আমি দেখতে পাচ্ছি যে আপনি কীভাবে তালিকাটি ডাম্প করবেন তার উত্তর দিয়েছেন। সম্ভবত এটি আপনার উত্তর আরও বিশিষ্ট করা উচিত?
ভার্দামমেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.