انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید




نویسنده موضوع: کامپایل jwm (حل شد)  (دفعات بازدید: 1035 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 767
  • جنسیت : پسر
  • Linux Mint
پاسخ : کامپایل jwm (حل شد)
« پاسخ #15 : 06 تیر 1401، 04:05 ب‌ظ »
ادامه عکسها:

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 767
  • جنسیت : پسر
  • Linux Mint
پاسخ : کامپایل jwm (حل شد)
« پاسخ #16 : 06 تیر 1401، 04:06 ب‌ظ »
ادامه عکسها:

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5125
  • جنسیت : پسر
پاسخ : کامپایل jwm (حل شد)
« پاسخ #17 : 07 تیر 1401، 06:12 ب‌ظ »
نقل‌قول
Probably the easiest is to download the latest release tarball for 2.4.0 (it should be pretty up-to-date), and not bother with autogen.sh.
در اینجا آقای Wingbermuehle می گویند : احتمالاً ساده‌ترین راه این است که آخرین نسخه tarball را برای نسخه 2.4.0 دانلود کنید (باید کاملاً به روز باشد) و با autogen.sh خود را خسته نکنید.

در اینجا من  طبق این توصیه ، فعلا آخرین نسخه این JWM v2.4.3 را کنار می گذرم و نسخه پایین تر یعنی  نسخه 2.4.0 از jwm را دانلود و می خواهم نصب نمایم.
در اینجا تنها همین سه فرمان  configure/. و make  و  sudo make install  کفایت می کند و همچنان که آقای Wingbermuehle  برای این روش گفته اند ، اصلا نیازی
به استفاده از  فرمان autogen.sh نیست. ( عکس های 3 تا 7 )
جوابی که دادند، مربوط به ۶ ماه پیش بوده. توی اون زمان آخرین نسخه منتشر شده jwm، نسخه ۲.۴.۰ بوده.
اگه با آخرین نسخه منتشر شده فعلی، یعنی ۲.۴.۲ همین کار‌ها رو امتحان کنید، باید باز هم جواب بده.
در ضمن هنوز نسخه ۲.۴.۳ از jwm منتشر نشده.

نقل‌قول
نقل‌قول
You could instead update configure.ac to request the version of gettext for your system (the AM_GNU_GETTEXT_VERSION line).
در اینجا دوباره بر می گردیم سراغ آخرین ورژن JWM v2.4.3 و اینبار می خواهیم آنرا نصب نماییم.
  اینبار می رویم در داخل فایل  configure.ac ، ورژن gettext  را از 0.20 به 0.19  بصورت دستی تغییر می دهیم. ( عکس 8 )

با اجرای فرمان configure/. برخلاف نتایجی که از آن در آپشن قبلی گرفتیم، هیچ چیزی رخ نمی دهد.( عکس 9)
چون که اون موقع اسکریپت autogen.sh رو اجرا نکرده بودید. در نتیجه فایل configure هم وجود نداشته.

نقل‌قول
بنابراین بنظر می رسد که علاوه بر دو بسته  build-essential  و libx11-dev ، نیازمندم ،بسته دیگری بنام dh-autoreconf را نصب کنم.
به بسته dh-autoreconf نیازی نداشتید. این بسته پشتیبانی از autoreconf رو به debhelper اضافه می‌کنه. debhelper یه برنامه برای ایجاد بسته‌های deb هست.
شما به بسته‌های autoconf وlibtool و automake نیاز داشتید. بسته dh-autoreconf به این بسته‌ها وابسته هست. به خاطر همین با نصب dh-autoreconf، اون بسته‌ها هم نصب شدند و تونستید jwm رو کامپایل کنید.

نقل‌قول
دلم می خواهد از دستور autoreconf  --install  را هم اجرا  کنم تا ببینم بجای دستور autogen.sh/. می توان این دستور را بکار ببرم. . ( عکس 11 ) ، چون فایل configure.ac برای ویرایش ورژن gettext سیستممان ویرایش کرده ایم ، این متن خطا می گوید که چون این فایل  configure.ac بصورت محلی ویرایش شده است ، آنها را رونویسی نمی کند ،زیرا force-- مشخص نشده است.
فکر نکنم اون خطا‌ها به این خاطر بوده باشند که فایل configure.ac رو ویرایش کردید.
احتمالا به این خاطر اون خطا‌ها رو دیدید که قبلا یه بار اسکریپت configure رو ایجاد و اجرا کرده بودید. اگه در اون شرایط make clean رو می‌زدید، احتمالا اون فایل‌ها به حالت قبلی بر می‌گشتند و autoreconf خطا نمیداد.
میدونید که زکات علم نشر آن است

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 767
  • جنسیت : پسر
  • Linux Mint
پاسخ : کامپایل jwm (حل شد)
« پاسخ #18 : 07 تیر 1401، 09:35 ب‌ظ »
!

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5125
  • جنسیت : پسر
پاسخ : کامپایل jwm (حل شد)
« پاسخ #19 : 07 تیر 1401، 09:55 ب‌ظ »
شاید توی کد‌های برنامه، نسخه‌ای که نمایش داده میشه تغییر کرده باشه ولی هنوز اون نسخه به طور رسمی منتشر نشده.
اگه منتشر شده بود، می‌تونستید توی این صفحه ببینیدش. آخرین نسخه توی این صفحه، ۲.۴.۲ هست.
« آخرین ویرایش: 10 تیر 1401، 12:12 ق‌ظ توسط Dragon- »
میدونید که زکات علم نشر آن است

آفلاین Dr.Code

  • High Hero Member
  • *
  • ارسال: 1446
  • جنسیت : پسر
  • Dr.Code
    • My website
پاسخ : کامپایل jwm (حل شد)
« پاسخ #20 : 07 تیر 1401، 10:40 ب‌ظ »
شاید توی کد‌های برنامه، نسخه‌ای که نمایش داده میشه تغییر کرده باشه ولی هنوز اون نسخه به طور رسمی منتشر نشده.
اگه منتشر شده بود، می‌تونید توی این صفحه ببینیدش. آخرین نسخه توی این صفحه، ۲.۴.۲ هست.
یعنی خودش تغییر داده؟

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 767
  • جنسیت : پسر
  • Linux Mint
پاسخ : کامپایل jwm (حل شد)
« پاسخ #21 : 07 تیر 1401، 10:43 ب‌ظ »
شاید توی کد‌های برنامه، نسخه‌ای که نمایش داده میشه تغییر کرده باشه ولی هنوز اون نسخه به طور رسمی منتشر نشده.
اگه منتشر شده بود، می‌تونید توی این صفحه ببینیدش. آخرین نسخه توی این صفحه، ۲.۴.۲ هست.
عکسهای 1 و 2 .


در ضمن بعد از اتمام کامپایل و نصب برنامه در مرحله sudo make install ، چکار بایستی بکنم؟ آیا بایستی بصورت دستی روی پوشه ای که عمل کامپایل انجام داده ام ، کلیک راست کنم و آنرا  delete کنم ؟

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 767
  • جنسیت : پسر
  • Linux Mint
پاسخ : کامپایل jwm (حل شد)
« پاسخ #22 : 08 تیر 1401، 08:38 ق‌ظ »
توضیح بیشتر در رابطه با ارسالی قبلی ام و کمی مطالب بیشتر:

در رابطه با عکس 1 ارسالی قبلی:
در صفحه اصلی  https://github.com/joewing/jwm ، همانطور که در عکس 1  ، در ارسالی قبلیم نشان داده ام ، اگر بر روی دکمه Code کلیک کنید و سپس بر روی
کادر محاوره ای باز شده بر روی Download ZIP کلیک کنید ، فایلی بنام jwm-master.zip برایتان دانلود خواهد شد که با نصب آن نسخه JWM v2.4.3 برایتان نصب خواهد شد.
اگر هم در صفحه اصلی  https://github.com/joewing/jwm  ،در قسمت سمت راست بروید سر وقت  Releases و از آنجا بخواهید دانلود کنید ،
سه تا ورژن با نامهای v2.4.2  و  v2.4.1  و  v2.4.0 در اختیارتان خواهد بود.



فکر نکنم اون خطا‌ها به این خاطر بوده باشند که فایل configure.ac رو ویرایش کردید.
احتمالا به این خاطر اون خطا‌ها رو دیدید که قبلا یه بار اسکریپت configure رو ایجاد و اجرا کرده بودید. اگه در اون شرایط make clean رو می‌زدید، احتمالا اون فایل‌ها به حالت قبلی بر می‌گشتند و autoreconf خطا نمیداد.
این مطلب را دوباره چک کردم. البته اینبار هم مثل تمامی دفعات قبلی در ارسالی هایم در اینجا، برای اینکه نتایج عملکرد موارد قبلی بر موارد فعلی تاثیر نگذاشته باشد هر جا که لازم می دیدم یا به دفعات سیستم را  restore می کردم(مخصوصا بعد از suso make install)  و یا اینکه پوشه extract شده را حذف و دوباره از فایل تاربال مادر extract  می کردم.
در اینجا سیستم را restore کردم و دوباره از فایل zip ، پوشه جدید را  extract کردم ، بعد از ویرایش فایل configure.ac ، اولین فرمانی را که اجرا کردم،
فرمان autoreconf  --install بود، همانطور که می بینید همان خطای force-- دیده می شود، که با بکارگیری فرمان autoreconf -vsi --force ، این مشکل حل می شود.
جهل نمی کنم، اگر باز فکر می کنید که شاید این خطا از جای دیگری بوده باشد بگویید ،امتحان کنم.( عکس  force-error.png )



یک مورد دیگری هم که برایم سوال شده این است که در مراحل کامپایل ، تنها در مرحله sudo make install   ، فایل ها را در دایرکتوری مقصد در شاخه های سیستم عامل کپی می کند(معمولا  در    مسیرهای  مانند usr/lib/ یا  usr/bin/ )  ؟ یا اینکه اینکار در مراحل قبل تر در configure/. یا make هم صورت می پذیرد؟ و فایل هایی در شاخه هایی از سیستم عامل کپی یا تغییراتی در تنظیمات آن فایل ها صورت می پذیرد؟
خیلی ساده تر اینکه در فرامین قبل از  sudo make install  ، هر چی رخ می ده فقط در داخل همین پوشه extract شده که در داخلش فرآیند کامپایل را انجام می دهیم ، رخ می ده و کاری با جاهای دیگر ندارد؟
ولی در  configure/. یک چیزهایی در رابطه با   gcc -c -g -O2 -DLOCALEDIR=\"/usr/local/share/locale\"  action.c    و ....نوشته شده ، یعنی یک چیزهایی رفته
در   usr/local/share/  کپی کرده یا تغییر داده؟! ( عکس make )




یک مورد دیگر اینکه، استفاده کنندگان نرم افزارها از طریق کامپایل source code ها ، آیا تنها به دلیل کمبود وقتشان مجبورند از دستوراتی مانند:
 make clean  -   make distclean    -    make uninstall   -   make maintainer-clean    -    make mrproper    -    make clobber   -   make mostlyclean
استفاده نمایند؟ و یا دلایل دیگری هم دارند؟ چرا همه چیز را پاک نمی کنند و از اول کامپایل نمی کنند؟
در ضمن این دستورات بالایی تنها در محدوده عملکرد قبل از اجرای sudo make install بدرد می خورند ویا اینکه حتی بعد از اجرای sudo make install می توانند ، مفید باشند؟

« آخرین ویرایش: 10 تیر 1401، 11:01 ق‌ظ توسط norouzi90 »

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5125
  • جنسیت : پسر
پاسخ : کامپایل jwm (حل شد)
« پاسخ #23 : 10 تیر 1401، 01:08 ب‌ظ »
یعنی خودش تغییر داده؟
چه کسی چه چیزی رو تغییر داده؟
منظورتون  چیه؟

در ضمن بعد از اتمام کامپایل و نصب برنامه در مرحله sudo make install ، چکار بایستی بکنم؟ آیا بایستی بصورت دستی روی پوشه ای که عمل کامپایل انجام داده ام ، کلیک راست کنم و آنرا  delete کنم ؟
بعد از نصب می‌تونید هر کاری خواستید با اون دایرکتوری انجام بدید. شاید بخواهید نگهش دارید تا بدونید چه چیز‌هایی کامپایل شدند. شاید هم بخواهید برای آزاد کردن فضای ذخیره‌سازی، اون دایرکتوری رو کلا پاک کنید.

توضیح بیشتر در رابطه با ارسالی قبلی ام و کمی مطالب بیشتر:

در رابطه با عکس 1 ارسالی قبلی:
در صفحه اصلی  https://github.com/joewing/jwm ، همانطور که در عکس 1  ، در ارسالی قبلیم نشان داده ام ، اگر بر روی دکمه Code کلیک کنید و سپس بر روی
کادر محاوره ای باز شده بر روی Download ZIP کلیک کنید ، فایلی بنام jwm-master.zip برایتان دانلود خواهد شد که با نصب آن نسخه JWM v2.4.3 برایتان نصب خواهد شد.
اون چیزی که دانلود می‌کنید، jwm نسخه ۲.۴.۳ نیست. این چیز‌هایی که می‌بینید، چیز‌هایی هستند که قراره توی نسخه ۲.۴.۳ قرار بگیرن. اون نسخه هنوز به طور رسمی منتشر نشده. چیزی که دریافت کردید، نسخه در حال توسعه برنامه هست.

نقل‌قول
اگر هم در صفحه اصلی  https://github.com/joewing/jwm  ،در قسمت سمت راست بروید سر وقت  Releases و از آنجا بخواهید دانلود کنید ،
سه تا ورژن با نامهای v2.4.2  و  v2.4.1  و  v2.4.0 در اختیارتان خواهد بود.
اینجا جایی هست که می‌تونید نسخه‌های رسمی منتشر شده رو ببینید. همونطور که مشخصه، هنوز نسخه ۲.۴.۳ اینجا نیست. یعنی هنوز به طور رسمی منتشر نشده و در حال توسعه هست.

فکر نکنم اون خطا‌ها به این خاطر بوده باشند که فایل configure.ac رو ویرایش کردید.
احتمالا به این خاطر اون خطا‌ها رو دیدید که قبلا یه بار اسکریپت configure رو ایجاد و اجرا کرده بودید. اگه در اون شرایط make clean رو می‌زدید، احتمالا اون فایل‌ها به حالت قبلی بر می‌گشتند و autoreconf خطا نمیداد.
این مطلب را دوباره چک کردم.
...
دوباره اسکریپت autogen.sh رو دیدم. خود توسعه‌دهنده هم آپشن f- رو به autoreconf داده. برای autoreconf، آپشن f- نسخه کوتاه شده force-- هست.
پس به نظر میاد با توجه به شرایط پروژه، لازمه اون آپشن به autoreconf داده بشه.
پروژه‌های دیگه رو هم که بررسی کردم، اونها هم آپشن f- رو به autoreconf داده بودند.

نقل‌قول
یک مورد دیگری هم که برایم سوال شده این است که در مراحل کامپایل ، تنها در مرحله sudo make install   ، فایل ها را در دایرکتوری مقصد در شاخه های سیستم عامل کپی می کند(معمولا  در    مسیرهای  مانند usr/lib/ یا  usr/bin/ )  ؟ یا اینکه اینکار در مراحل قبل تر در configure/. یا make هم صورت می پذیرد؟ و فایل هایی در شاخه هایی از سیستم عامل کپی یا تغییراتی در تنظیمات آن فایل ها صورت می پذیرد؟
خیلی ساده تر اینکه در فرامین قبل از  sudo make install  ، هر چی رخ می ده فقط در داخل همین پوشه extract شده که در داخلش فرآیند کامپایل را انجام می دهیم ، رخ می ده و کاری با جاهای دیگر ندارد؟
تا قبل از اجرای make install، چیزی توی دایرکتوری‌های سیستمی نصب نمیشه. حداقل به طور معمول چنین اتفاقی نمی‌افته. توسعه‌دهنده می‌تونه اسکریپت‌ها و makefile ها جوری بنویسه که چنین اتفاقی بیوفته ولی من تا حالا ندیدم کسی اینجوری عمل کنه.
تا جایی که makefile مربوط به jwm رو دیدم، اینکار رو انجام نمیداد.

به غیر از این، معمولا برای تغییر یا قرار دادن فایل داخل دایرکتوری‌های مهم مثل /usr/ یا /etc/ لازمه دسترسی روت داشت. از اونجایی که شما اون مراحل رو بدون دسترسی روت انجام دادید، حتی اگه اسکریپت‌ها یا makefile می‌خواستند چنین کاری انجام بدهند، نمی‌تونستند.


نقل‌قول
ولی در  configure/. یک چیزهایی در رابطه با   gcc -c -g -O2 -DLOCALEDIR=\"/usr/local/share/locale\"  action.c    و ....نوشته شده ، یعنی یک چیزهایی رفته
در   usr/local/share/  کپی کرده یا تغییر داده؟! ( عکس make )
نه. چیزی رو داخل /usr/local/share/locale/ تغییر نداده.
=DLOCALEDIR- باعث شده یه ماکرو با اسم LOCALEDIR و مقدار  "/usr/local/share/locale/" برای پیش پردازنده c ایجاد بشه. اون علامت‌های " هم جز مقدار ماکرو LOCALEDIR هست.
اون علامت‌های backslash (\) برای این هستند تا پوسته اونها رو برای خودش معنی نکنه. اگه اون backslash ها نبود، پوسته علامت‌های " رو خودش معنی می‌کرد و مقدار ماکرو LOCALEDIR میشد /usr/local/share/locales/ که جلوتر، کامپایلر c به اون گیر میداد و کامپایل انجام نمیشد.

با توجه به اسمی که اون ماکرو داره، احتمالا کارش این هست که برای jwm مشخص کنه دایرکتوری locale ها کجاست. داخل دایرکتوری locale ها، چیز‌هایی که می‌تونه باعث بشه برنامه برای یه محل خاص قابل استفاده بشه قرار می‌گیره. مثلا چینش صفحه کلید، زبان اونجا، نحوه نمایش تاریخ و اینجور چیز‌ها.

پیش پردازنده c که بالاتر دیدید، ربط خاصی به پردازنده کامپیوتر نداره.

کامپایل کد c به فایل اجرایی یه فرایند یه مرحله‌ای نیست، بلکه یه فرایندیه که توی چندین مرحله انجام میشه.

مرحله اول پیش پردازش هست. توی این مرحله، پیش پردازنده c اجرا میشه و متن کد رو تغییر میده. خروجی این مرحله همچنان متن هست که هنوز به صورت کد c شناسایی میشه.
توی این مرحله در واقعیت متن برنامه جایگزین میشه. اینکه چه چیزی جایگزین بشه، به راهنما‌های پیش پردازنده توی کد بستگی داره. توی این مرحله، کامنت‌های برنامه هم پاک میشن.

راهنما‌های پیش پردازنده توی c با علامت # شروع میشن. برای مثال ممکنه توی خیلی از کد‌های c، اول‌های فایل چنین چیزی ببینید:
#include <"stdio.h">
یکی از راهنما‌های پیش پردازنده c، راهنمای define# هست. با این میشه یه ماکرو رو توی کد تعریف کرد. میشه برای اون ماکرو مقدار در نظر گرفت، میشه هم اون رو بدون مقدار تعریف کرد.
برای مثال این رو ببینید:
#define A 10
#define B 6.9
#define TEXT "this is an example"

int n = A;
double m = B;
const char *msg = TEXT;

بعد از اجرای مرحله پیش پردازش روی کد بالا، خروجی میشه این:
int n = 10;
double m = 6.9;
const char *msg = "this is an example"
در واقعیت کار خیلی خاصی انجام نشده، فقط متن برنامه تغییر کرده.

ماکرو‌ها رو میشه توی خود کد برنامه تعریف کرد. میشه اونها رو هم از طریق خط فرمانِ پیش پردازنده c مشخص کرد.

با gcc -E code.c می‌تونید پیش پردازش شده فایل code.c رو دید.
از پیش پردازنده c میشه برای کار‌های جایگزین کردن متن استفاده کرد ولی اگه قراره جایگزین کردن، زیاد و پیشرفته باشه؛ بهتره از ابزار‌های مخصوص اینکار مثل m4 استفاده بشه.

نقل‌قول
یک مورد دیگر اینکه، توسعه دهندگان نرم افزارها ، آیا تنها به دلیل کمبود وقتشان مجبورند از دستوراتی مانند:
 make clean  -   make distclean    -    make uninstall   -   make maintainer-clean    -    make mrproper    -    make clobber   -   make mostlyclean
استفاده نمایند؟ و یا دلایل دیگری هم دارند؟ چرا همه چیز را پاک نمی کنند و از اول کامپایل نمی کنند؟
چون ممکنه لازم باشه به یه سری از چیز‌هایی که موقع کامپایل ایجاد شده دسترسی داشته باشند و پاک کردن هر چیزی که موقع کامپایل ایجاد شده، گزینه مناسبی نباشه.
نقل‌قول
در ضمن این دستورات بالایی تنها در محدوده عملکرد قبل از اجرای sudo make install بدرد می خورند ویا اینکه حتی بعد از اجرای sudo make install می توانند ، مفید باشند؟
بستگی داره که makefile چجوری نوشته شده باشه. مثلا ممکنه یه make uninstall هم باشه که کارش اینه که چیزی که نصب شده رو پاک کنه.
میدونید که زکات علم نشر آن است

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 767
  • جنسیت : پسر
  • Linux Mint
پاسخ : کامپایل jwm (حل شد)
« پاسخ #24 : 10 تیر 1401، 06:19 ب‌ظ »
  در نصب هایی که تاکنون برای jwm از source آن داشته ایم ، با package manager سیستم عامل مان کاری نداشته ایم. چون  خارج از سیستم مدیریت بسته ، بسته ای
  را از source اش نصب کرده ایم ، بنابراین  در هنگام حذف این بسته ، از  package manager سیستممان نمی توانیم کمک بگیریم.
  می توانیم از دستوراتی که در ارسالی قبلی ام داشته ام برای حذف این بسته از سیستممان بهره بگیریم مثلا sudo make uninstall

  ولی اگر بخواهیم پکیج منیجر سیستممان این بسته موردنظرمان را بشناسد.
  بنابراین ابتدا، بسته ای بنام  checkinstall را نصب می نماییم.
sudo apt install checkinstall
 این CheckInstall یک برنامه کامپیوتری برای سیستم عامل های مشابه یونیکس است که با استفاده از سیستم های مدیریت بسته، نصب
 و حذف نرم افزارهای کامپایل شده از منبع را آسان می کند.

  بنابراین مراحل نصب اینطوری می شود:

  ۱- ویرایش فایل configure.ac و تغییر ورژن gettext از 0.20 به 0.19  .
  ۲- سپس  autogen.sh/.
  ۳- سپس configure/.
  ۴- سپس   make
 
  ۵- اما در این قسمت از دستور  sudo make install دیگر استفاده نمی کنیم و بجایش از دستور   sudo checkinstall   استفاده می کنیم.( عکس 1)

  در اینجا چند نکته مهم وجود دارد که به آنها می پردازیم:
  بعد از اینکه این دستور را اجرا کردیم ، سیستم می پرسد:
نقل‌قول
The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs?  [y]:

کلید y را زده و سپس اینتر را می زنیم.(عکس 2)

بعد این مورد را از ما می خواهد که :

نقل‌قول
Please write a description for the package.
End your description with an empty line or EOF

    لطفا توضیحاتی برای بسته بنویسید.توضیحات خود را با یک خط خالی یا EOF پایان دهید. البته من چون نیازی برای نوشتن توضیحی برای این بسته نداشتم ، چیزی نمی نویسم
    و تنها اینتر می زنم.(عکس 3)

    بعد این مورد را از ما می پرسد که :

نقل‌قول
This package will be built according to these values:


 این بسته با توجه به این مقادیر ساخته خواهد شد .( عکس 4)

  ولی در اینجا ضروری است که نسبت به اصلاح دو تا آیتم اقدام نماییم:
  در قسمت :
نقل‌قول
Enter a number to change any of them or press ENTER to continue:
 
 عدد 2 (را که مربوط به  :Name است) را می نویسیم و سپس اینتر را می زنیم. همانطور که می بینید برای  :Name بصورت پیش فرض jwm را در نظر گرفته است.
  بهتر است این واژه را تغییر دهیم ،  اگر ما این برنامه را با این نام نصب کنیم ، بسته مورد نظرمان
  نصب می شود ولی  چون در مخازن اصلی بسته ای بنام jwm وجود دارد. هر وقت ما sudo apt update  و سپس sudo apt upgrade نماییم ، بسته موردنظرمان در لیست
  بسته های update شده می آید و سپس با upgrade بسته فعلی امان حذف و بسته موجود  در مخازن نصب می گردد.
  بنابراین من اسمی را انتخاب می کنم که در مخازن بسته ای با آن اسم نباشد مثلا:  my-jwm ( عکس 5)

 اینبار نوبت تغییر مقدار Version  می باشیم ، اگر تغییرش ندهیم این خطا را بعدا خواهید دید.(عکس های 6 و 7)

 برای تغییر مقدار Version در جلوی عبارت :

نقل‌قول
Enter a number to change any of them or press ENTER to continue:


عدد 3 را می نویسم و سپس اینتر را می زنم. من مقدار متغییر Version را از مقدار "  master" به مقدار "1" تغییر می دهم.( عکس 8 )

  سپس دوباره اینتر را می زنم تا مراحل نصب ادامه یابد ، در اینجا با پیام  Done. The new package has been installed and saved to
  متوجه می شوم که نصب بسته جدیدمان با موفقیت تمام شده است.(عکس 9)
 همچنین در پایان قید کرده است که :

نقل‌قول
You can remove it from your system anytime using:

      dpkg -r my-jwm

یعنی هر زمان که بخواهید می توانید با این دستور این بسته را از سیستمتان البته با کمک و مدیریت package manager از سیستمتان حذف نمایید.
 یک سری هم به synaptic می زنیم ، همانطور که می بینید ، بسته ای با نام my-jwm وجود دارد( عکس 10) که این بسته را از آنجا هم می توانید حذف کنید و همچنین
 از طریق sudo apt remove هم می توانید آنرا حذف نمایید.(عکس 11)
بنظرم این روش نسبت به روشهای قبلی اصولی تر است چونکه پکیج منیجر سیستممان آنرا می شناسد.

« آخرین ویرایش: 10 تیر 1401، 06:32 ب‌ظ توسط norouzi90 »

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 767
  • جنسیت : پسر
  • Linux Mint
پاسخ : کامپایل jwm (حل شد)
« پاسخ #25 : 10 تیر 1401، 06:22 ب‌ظ »
ادامه عکسها:

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 767
  • جنسیت : پسر
  • Linux Mint
پاسخ : کامپایل jwm (حل شد)
« پاسخ #26 : 10 تیر 1401، 06:23 ب‌ظ »
ادامه عکسها:

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5125
  • جنسیت : پسر
پاسخ : کامپایل jwm (حل شد)
« پاسخ #27 : 11 تیر 1401، 06:54 ب‌ظ »
ممکنه این روش بعضی وقتا جواب نده. برای مثال ممکنه makefile یه سری کار‌هایی هم انجام بده که معمولا اسکریپت‌های preinstall یا postinstall توی بسته‌های deb انجام میدن. در اینصورت ممکنه checkinstall یه بسته deb ایجاد کنه که فقط فایل‌های اون برنامه رو داره ولی اسکریپت‌های postinstall و preinstall مناسب نداره.

ممکنه لازم باشه قبل یا بعد از حذف برنامه، یه سری کار انجام بشه. برای بسته‌های نصب شده از مخازن، اینکار‌ها توسط اسکریپت‌های postrm و prerm انجام میشه. اما اون بسته deb که توسط checkinstall ساخته شده، بعیده چنین اسکریپت‌های داشته باشه.

در حالت کلی، نصب درست یه برنامه از طریق کد منبع، نیاز به این داره که به درستی از برنامه آگاه باشید و بدونید چه کار‌هایی لازمه انجام بشن.
در مورد بسته‌های مخازن رسمی، اینکار‌ها توسط توسعه‌دهنده‌های توزیع انجام شده. وقتی خودتون دستی یه چیزی رو نصب می‌کنید، اینکار‌ها به عهده خودتون قرار می‌گیره.
میدونید که زکات علم نشر آن است

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 767
  • جنسیت : پسر
  • Linux Mint
پاسخ : کامپایل jwm (حل شد)
« پاسخ #28 : 11 تیر 1401، 07:45 ب‌ظ »
با تشکر مجدد از آقای Dragon- عزیز.