Emacs উইন্ডোজ সমর্থন লাইব্রেরি ইনস্টল করার সহজ উপায়


15

আমি উইন্ডোজের জন্য ইম্যাক্স 24.4 এর বাইনারি ইনস্টল করেছি এবং উইন্ডোজ README এর জন্য ইমাসে বর্ণিত সহায়তা লাইব্রেরিগুলি ইনস্টল করতে চাই । ইজউইনপোর্টস প্রকল্প থেকে সর্বশেষ প্রম্পম্পাইল্ড লাইব্রেরি পাওয়া যায় তবে সেগুলি ইনস্টল করা সামান্য সময় সাপেক্ষ। ইমাসের README এ উল্লিখিত সমস্ত লাইব্রেরি আমাকে নির্বাচন করতে হবে, পরবর্তী পূর্বশর্তগুলির জন্য ইজুইনপোর্টস README স্ক্যান করতে হবে এবং জিপ সংরক্ষণাগারগুলির প্রত্যেকটি ডাউনলোড করতে হবে। তারপরে আনপ্যাক করুন, এগুলি স্থায়ী স্থানে সরিয়ে দিন এবং আমার ডিরেক্টরিতে পৃথক ডিরেক্টরি যুক্ত করুন PATH। এই সংরক্ষণাগারগুলির মধ্যে ডুপ্লিকেট ফাইল রয়েছে, তাই আমি তাদের অভিন্ন কিনা তা পরীক্ষা না করেই তাদের সকলকে একই ডিরেক্টরিতে আনপ্যাক করা থেকে সতর্ক।

এটি করার কোনও স্বয়ংক্রিয় উপায় আছে?


যতদূর আমি বলতে পারি বাইনারি ডাউনলোডগুলিতে সমস্ত প্রাক-প্রয়োজনীয়তা রয়েছে তবে সেগুলি রেডমে তালিকাভুক্ত থাকা সত্ত্বেও সেগুলি আলাদাভাবে ডাউনলোড করার জন্য আপনাকে বিরক্ত করার দরকার নেই। এজন্য আপনার বিভিন্ন প্যাকেজে নকল ফাইল রয়েছে।
অ্যালান তৃতীয়

উত্তর:


10

ইমাস 25 দিয়ে শুরু করে, ইমাস উইন্ডোজ ডাউনলোড ডিরেক্টরিতে এখন একটি depsপ্যাকেজ অন্তর্ভুক্ত রয়েছে যা নির্দিষ্ট আর্কিটেকচারের জন্য সমস্ত নির্ভরতা অন্তর্ভুক্ত করে। উদাহরণস্বরূপ, x86_64 এর জন্য ব্যবহার করুন emacs-25-x86_64-deps.zip

আমি স্বয়ংক্রিয়ভাবে ইমাস ইনস্টল করতে নিম্নলিখিত স্ক্রিপ্টটি ব্যবহার করি। এটি ডাব্লুএসএল বা সাইগউইনের পক্ষে কাজ করা উচিত। এটি অবশ্যই উন্নতির অধীনে চালিত হতে হবে এবং ইতিমধ্যে Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSignedকোনও সময়ে পাওয়ারশেলে চালানো উচিত ।

#!/usr/bin/env bash

set -o nounset -o pipefail -o errexit

emacs_major=26
emacs_minor=1
emacs_ver="$emacs_major.$emacs_minor"
arch="x86_64"
emacs_url_root="https://ftpmirror.gnu.org/emacs/windows/emacs-$emacs_major"

emacs_deps_zip="emacs-$emacs_major-$arch-deps.zip"
emacs_zip="emacs-$emacs_ver-$arch.zip"

if [[ "$(uname -r)" == *Microsoft ]]; then
    programfiles="$(bin/wslpath "%ProgramFiles%")"
    programfilesx86="$(bin/wslpath "%ProgramFiles(x86)%")"
    allusersprofile="$(bin/wslpath "%AllUsersProfile%")"
    public_desktop="$(bin/wslpath "%Public%\\Desktop")"
    desktop="$(bin/wslpath "%UserProfile%\\Desktop")"
else
    CSIDL_PROGRAM_FILES=38
    CSIDL_PROGRAM_FILESX86=42
    CSIDL_COMMON_APPDATA=35
    CSIDL_COMMON_DESKTOPDIRECTORY=25
    CSIDL_DESKTOP=0

    programfiles="$(cygpath -F "$CSIDL_PROGRAM_FILES")"
    programfilesx86="$(cygpath -F "$CSIDL_PROGRAM_FILESX86")"
    allusersprofile="$(cygpath -F "$CSIDL_COMMON_APPDATA")"
    public_desktop="$(cygpath -F "$CSIDL_COMMON_DESKTOPDIRECTORY")"
    desktop="$(cygpath -F "$CSIDL_DESKTOP")"
fi

emacs_root="$programfiles/Emacs"

old_tmpdir="${TMPDIR:-}"
TMPDIR="$(mktemp -dt install-windows-pkgs.XXXXXXXXXX)"
export TMPDIR

on_exit () {
    rm -rf "$TMPDIR"
}

trap on_exit EXIT

unzip_dest () {
    local zip="$1"
    local dest="$2"

    if [[ ! -d "$dest" ]]; then
        if ! mkdir -p "$dest"; then
            result="$?"
            echo "Can't create '$dest'. Try running under elevation" >&2
            exit "$result"
        fi

        unzip -n "$zip" -d "$dest"
    fi
}

install_emacs_pkg () {
    local zip="$1"
    local dest="$2"

    # XXX: move to tmp
    if [[ ! -d "$dest" ]]; then
        wget --directory-prefix "$TMPDIR" "$emacs_url_root/$zip"
        unzip_dest "$TMPDIR/$zip" "$dest"
    fi
}

on_exit
trap EXIT
TMPDIR="$old_tmpdir"

# XXX: Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
# XXX: sticking cmd.exe /c start before this causes all nature of space-quoting problems
powershell.exe windows\\add_path.ps1 "%ProgramFiles%\\Emacs\\emacs-$emacs_ver\\bin" "%ProgramFiles%\\Emacs\\emacs-$emacs_major-deps\\bin"

# XXX: would be nice to pin runemacs.exe to taskbar, but the need to edit
# that is probably best seen as Emacs bug/flaw

5

এটি কোনও সম্পূর্ণ স্বয়ংক্রিয় সমাধান নয়, তবে এটি সেখানে যাওয়ার অংশ। আমি যতদূর বলতে পারি, সমর্থন লাইব্রেরি এবং তাদের পূর্বশর্তগুলির বর্তমান সেটটি হ'ল:

  • libpng-1.6.12
  • কায়রো-1.12.16
  • gdk-pixbuf-2.30.2
  • giflib-5.1.0
  • সাবলীল-2.38.2
  • gnutls-3.0.9
  • JPEG-v9a
  • libcroco-0.6.8
  • libffi-3.0.13
  • librsvg-2.40.1-2
  • libxml2-2.7.8
  • lzo-2.06
  • Pango-1.36.1-2
  • pixman-0.32.4
  • এক চুমুক মদ-4.0.3
  • zlib-1.2.8-2

এগুলি এভিউনপোর্টস ফাইল অঞ্চল থেকে একটি মঞ্চ ডিরেক্টরিতে ডাউনলোড করুন। তারপর ব্যবহার ইউএনপি তাদের নিজস্ব ডিরেক্টরি এইসব প্রতিটি প্যাকমুক্ত করতে। renameকোনও -w32-binপ্রত্যয় মুছে ফেলার জন্য সাইগউইনে কমান্ডটি ব্যবহার করুন ।

rename -- -w32-bin "" *-w32-bin

আপনার যে ডিরেক্টরিতে যোগ করতে হবে তার তালিকা পেতে নিম্নলিখিত মত একটি কমান্ড ব্যবহার করুন PATH:

command ls -1 | perl -pe 's/^/C:\\Program Files (x86)\\/; s/\n/\\bin;/'

এরপরে আপনি এগুলি সমস্ত একটি পছন্দ মতো স্থানে নিয়ে যেতে পারেন C:\Program Files (x86)


2
সমর্থন লাইব্রেরিগুলি যেহেতু পরিবর্তিত হওয়ার সম্ভাবনা রয়েছে তাই আমি পুরো জিনিসটি পরিষ্কার করার বা স্বয়ংক্রিয় করার চেষ্টা করতে অনেকটা সময় দিতে নারাজ। আনপ এবং পুনর্নামকরণ আসলেই প্রয়োজনীয় নয়, আপনি কেবল unzipএই ফাইলগুলিকে পছন্দসই স্থানে যেতে পারেন। তবে আমার চারপাশে ছিল তাই এগুলি ব্যবহার করা আরও সহজ।
মাইকেল হাফম্যান

4

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


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