আমি কীভাবে ELPA সার্ভার সেট আপ করতে পারি?


15

একজন বন্ধু এবং আমি আমাদের কোম্পানিতে ব্যবহারের জন্য নির্দিষ্ট ইম্যাক্স প্যাকেজগুলি লেখা শুরু করতে চাই। (বিশ্বাস করুন, আমরা যা লিখি তা বাইরের কারও পক্ষে বেশি আগ্রহী হবে না - এটি অভ্যন্তরীণ সরঞ্জামগুলির সাথে একীকরণ) ration

আমরা যতটা সম্ভব প্যাকেজ ইনস্টলেশন এবং রক্ষণাবেক্ষণ করতে চাই এবং আমরা মনে করি এর সাথে সংহতকরণের অর্থ package.el। এ জাতীয় ব্যবহারের জন্য একটি সংগ্রহস্থল স্থাপন করতে আমাদের কী করতে হবে?


আমি মেলপা কাঁটাচামচ করতাম এবং আপনার প্যাকেজগুলির জন্য রেসিপিগুলি লিখতাম! বিকল্পভাবে, কেবল রেসিপিগুলি সরবরাহ করুন এবং আপনার সহকর্মীদের কোয়েলপাতে নির্দেশ করুন।
লুনারিওর

উত্তর:


18

আমি একটি স্থানীয় প্যাকেজ আর্কাইভ (এ গিয়ে Emacs 24.5) ব্যবহার করে সেট আপ package.elপ্রথম দুই ডিরেক্টরি সৃষ্টি করে pkgsএবং local। (নামগুলি কোনও গুরুত্ব দেয় না)) আপনার প্যাকেজগুলির সমন্বিত ফাইলগুলি প্রবেশ করে pkgsএবং localআপনার সংরক্ষণাগারটি ধারণ করে। আপনি যদি অন্যদের কাছে সংরক্ষণাগারটি উপলভ্য করতে চান তবে আপনি localওয়েব সার্ভার ব্যবহার করে প্রকাশ করতে পারেন , তবে প্রক্রিয়াটি স্থানীয় সংরক্ষণাগার তৈরির মতোই।

আমি আমার init.elফাইলে নিম্নলিখিতটি রেখেছি :

(require 'package)
(setq package-enable-at-startup nil)

(require 'package-x)
(defvar local-archive
  (expand-file-name "local/" user-emacs-directory)
  "Location of the package archive.")
(setq package-archive-upload-base local-archive)
(add-to-list 'package-archives `("local" . ,local-archive) t)

(package-initialize)

আমি আমার আমার সংরক্ষণাগার করা .emacs.dডিরেক্টরি (অত: পর user-emacs-directoryexpand-file-nameফর্ম) কিন্তু আপনি যে কোনো স্থানে আপনার মত লাগাতে পারেন।

এটি একবার মূল্যায়ন করা হলে, কার্যকর করুন M-x package-upload-fileএবং ইনস্টল করার জন্য আপনার প্যাকেজের ফাইলের নাম দিন। এটি এতে একটি নতুন প্যাকেজ তৈরি করবে local। আপনি সেখানে তিনটি নতুন ফাইল দেখতে, হবে archive-contents, yourpackagename-version.elএবং yourpackagename-readme.txt। এখন আপনার করা M-x package-list-packagesএবং আপনার প্যাকেজ তালিকাভুক্ত দেখতে পারা উচিত । ভাগ্যক্রমে, তারা শীর্ষে "নতুন" চিহ্নিত থাকবে। আপনি প্যাকেজটি যথারীতি ইনস্টল করতে পারেন এবং আপনি এটি .emacs.d/elpaঅন্য ডিরেক্টরিতে প্যাকেজের মতো আপনার ডিরেক্টরিতে প্রদর্শিত দেখবেন ।

এটি ইমাস 24 এর জন্য বাক্সের বাইরে কাজ করা উচিত earlier আমি পূর্ববর্তী সংস্করণগুলি সম্পর্কে নিশ্চিত নই। আপনার ব্যবহারকারীরা অন্তর্ভুক্ত করে আপনার প্যাকেজটি স্বাভাবিক উপায়ে অ্যাক্সেস করতে পারে

(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives 
  '("archive" . "http://yourdomain.com/path-to-local-dir/"))
(package-initialize)

তাদের init.elফাইল

কীভাবে প্যাকেজ লিখবেন সে সম্পর্কিত তথ্যের জন্য , জিএনইউ ইম্যাকস লিস্প ম্যানুয়ালটিতে বিতরণের জন্য লিস্প কোড প্রস্তুত করা দেখুন ।


ধন্যবাদ! এটি একটি খুব লিখিত উত্তর এবং এটি আমার পক্ষে ভালভাবে কাজ করেছে। আমার কেবল একটি প্রশ্ন আছে .. আমি যখন করি তখন M-x package-update-fileএটি .elফাইলটিকে সরাসরি local/ডিয়ারের নীচে রাখে । সেখানে যাতে আমরা দিয়ে শেষ প্রতিটি প্যাকেজের জন্য একটি সাব-তৈরি করতে একটি উপায় আছে কি local/pkg1/pkg1.el, local/pkg2/pkg2.el, ...?
कौशल মোদি

আমার জ্ঞান না। elpaডিরেক্টরি উপায় আপনি বর্ণনা সেট আপ করা হয়। আমি জানি না কেন localহয় না। মনে রাখবেন যে এই ফাইলগুলি স্বয়ংক্রিয়ভাবে উত্পন্ন হয়েছে, তাই সত্যিই কারও কাছে এগুলি দেখার দরকার নেই। আমি আমার ফাইলগুলি গিটের সাহায্যে সংস্করণ নিয়ন্ত্রণে রাখি এবং সেই কারণেই আমার localডিরেক্টরিতে রাখি .gitignore। আমি আমার pkgsডিরেক্টরিটি সুন্দরভাবে সংগঠিত, এবং সংস্করণ নিয়ন্ত্রণে রাখি , তবে localএটি এটি।
রডনি দাম

ধন্যবাদ। সুতরাং নিশ্চিত করতে, সমস্ত ফাইল আপনার মধ্যে একটি ফ্ল্যাট শ্রেণিবিন্যাসে ফেলে দেওয়া হয় local/? আমি হায়ারারিকিকাল ব্যবস্থাটি চেয়েছিলাম যাতে আমি ;; URL: http://yourdomain.com/path-to-local-dir/pkg1বিভিন্ন প্যাকেজের জন্য প্যাকেজের ইউআরএল মেটা ডেটা হিসাবে নির্দিষ্ট করতে পারি । তবে এটি বড় কথা নয়। আমি আমার প্যাকেজগুলি স্থানীয় এলপায় প্রকাশ করতে আরও শিহরিত। :)
कुशल মোদী

1
আমারও সমতল। আমি localযাইহোক আপনার ব্যবহারকারীদের সেই ডিরেক্টরিতে নির্দেশ করব না। পরিবর্তে তাদের মূল উত্স দিকে নির্দেশ করুন।
রডনি দাম 21

এটা অসাধারণ! তবে আমি যখন এটি উইন্ডোগুলিতে ট্যারি ফাইলগুলির সাথে ব্যবহার করি, একটি ভাঙা টার আপলোড করা হয় এবং আমাকে আবার এটির উপর কপি করতে হবে। Emacs মধ্যে বাগ? 24.5
fommil

1

আপনি যদি মেল্পার মতো কিছু হোস্ট করতে চান, তবে আপনার নিজের মেলপা উদাহরণটি কীভাবে হোস্ট করবেন সে সম্পর্কে আপনি মেল্পার উইকিতে নির্দেশিকা পেতে পারেন:

https://github.com/melpa/melpa/wiki/Custom-Melpa-Archive

মূলত:

  1. MELPA GitHub সংগ্রহস্থলটি কাঁটাচামচ / ক্লোন করুন
  2. recipes/ডিরেক্টরি থেকে বিদ্যমান সমস্ত রেসিপি মুছুন
  3. আপনার নিজের রেসিপি যোগ করুন
  4. চালান make
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.