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

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

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


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: ساختن بسته نرم افزاری  (دفعات بازدید: 3869 بار)

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

آفلاین سید وحید رضا برهانی

  • High Hero Member
  • *
  • ارسال: 1668
  • جنسیت : پسر
  • یک مخالف نرم افزار اوپن سورس
پاسخ به: ساختن بسته نرم افزاری
« پاسخ #15 : 20 بهمن 1389، 03:45 ب‌ظ »
سلام
منظورم یک چیزی مثله اینه
http://negarsoft.persiangig.com/makepkg.sh
(این کار می کنه ولی قابل استفاده برای کار نهایی نیست مثلا خط اول رو می شد با awk خیلی خلاصه تر کرد ولی اونطوری از خوانایی اسکریپت کم می شد! یا اینکه خط اول از dpkg -L باید حذف بشه یا خط اول تا زمانی که دپنسی ها ی دپنسیها ! تموم نشده باید ادامه پیدا کنه و...) اگر این همون چیزی بود که می خواستی بگو که کامل کنیم
نرم افزاری که نشه سیخ انگولکش کرد (به هر دلیلی چه به‌خاطر قانون و چه پیچیدگی یا توسعه سریع)نرم افزار آزاد نیست حالا مهم نیست چه بنیادی یا چه افرادی اون رو نوشته باشند یا GPL باشه یانه!
نرم افزار آزاد یک جنبش هست نه یک تیکه کاغذ پاره(GPL)
حق فهمیدن از حق خوندن مهمتره

آفلاین ahmad511800

  • Sr. Member
  • *
  • ارسال: 413
    • اخبار استخدامی
پاسخ به: ساختن بسته نرم افزاری
« پاسخ #16 : 20 بهمن 1389، 04:07 ب‌ظ »
من هیچی از این فایل نفهمیدم ::) ](*,)
Ewrek reşî le ser me da tê

Degurrmiji dewê merev bihar tê

آفلاین سید وحید رضا برهانی

  • High Hero Member
  • *
  • ارسال: 1668
  • جنسیت : پسر
  • یک مخالف نرم افزار اوپن سورس
پاسخ به: ساختن بسته نرم افزاری
« پاسخ #17 : 21 بهمن 1389، 04:55 ب‌ظ »
سلام
اون یکی یکمی مشکل داشت این یکی بهتر شده
http://negarsoft.persiangig.com/makepkg2.sh
اینطوری استفاده ش کن
./makepkg2.sh nameofprogramme زیاد پیچیده که نیست (یعنی سعی کردم که نباشه)
توضیحش!
خب خط اول که نوشته dep= یعنی یک متغیر به نام dep  تعریف شده که برابر است با عبارت بعد از مساوی . بعد از مساوی تعدادی دستور بین دو علامت ` قرار داده شده این علامت کاری که می کنه اینکه خروجیه دستور بین دو علانت رو ذخیره می کنه این علامت توی php هم هست که توی php توابع سیستمی رو اجرا می کنه  بعد از این علامت dpkg -s قرار داره که برای نمایش توضیحات مربوط به یک بسته به کار می ره   علامت $1 به معنیه پارامتر شماره یک هست  که به اسکریپت فرستاده می شه (اولین پارامتر نیست اولیش $0 هست که نام اسکریپت رو بر می گردونه)(در واقع $1 با مقدار پارامتر شماره یک عوض (replace )می شه) تا اینجا dpkg -s توضیحات مربوط به پارامتر اول رو بر می گردونه به طور پیش فرض خروجیه dpkg روی صفحه نمایش هست که با |  این علامت به عنوان ورودیه نرم افزار بعداز | این علامت فرستاده می شه چون ما در این خط می خواهیم که پیش نیازهای برنامه را در بیاریم باید خروجیه dpkg -s رو بررسی و فیلتر کنیم یکی از ابزار های فیلترینگ ! grep هست grep -i depends خطوطی رو که در اون کلمه ی depends باشه رو برمی گردونه منتها به این صورت که به حروف کوچک و بزرگ حساس نباشه (-i) این خط دوباره توسط علامت | به sed فرستاده می شه در sed علامت : به \n تغییر می کنه \n به معنای کاراکتر انتهای خط هست(در واقع هم انتهای خط هم سرسطر )با این کار اون خطه تبدیل به دو خط می شه این دوخط دوباره وارد grep می شند ولی اینبار grep خطوطی رو که depends نداشته باشند نشون می ده (در واقع در اینجا خطیه که دپنسی ها توش هست رو بر می گردونه) این خطه دوباره وارد sed می شه و ", " به علامت \n تبدیل می شه در واقع هر دپنسی توی یک خط می ره این خطوط وارد tr میشن در tr هلامت پرانتز باز به \n تبدیل می شه (چون ممکنه که بسته ی مورد نیاز به ورژن خاصی از دپنسیها نیاز داشته باشه) وباز هم این خطوط به grep فرستاده می شن و grep اون خطوطی رو که دارای پرانتز بسته هستند رو نشون نمی ده ولی بقیه رو نشون می ده (نکته:خطوط دارای پرانتز باز نداریم!(رک :به مرحله قبل!)) در آخر هم جفت ! علامت ` هست که در واقع محصول نهایی از grep رو در متغیر dep ذخیره می کنه البته با ذخیره شدن خطوط  کاراکتر انتهای خط \n به کاراکتر فاصله تبدیل می شه!
یک مدل توضیح دیگه هم اینکه :
برای اینکار ما اول پیشنیازهای یک بسته رو با dpkg -s در مییاریم بعد با dpkg -L فایلهای اون بسته رو ودپنسی هاش رو (توی این اسکریپت دومی هم یک اشکلی که داره اینکه خود بسته رو لیست نمی کنه!(الان فهمیدم!)) در می یاره بعد با tar توی یک فایل فشرده ذخریه می کنه (همه ی فایلهای پیشنیاز و بسته ها)
« آخرین ویرایش: 22 بهمن 1389، 10:14 ق‌ظ توسط سید وحید رضا برهانی »
نرم افزاری که نشه سیخ انگولکش کرد (به هر دلیلی چه به‌خاطر قانون و چه پیچیدگی یا توسعه سریع)نرم افزار آزاد نیست حالا مهم نیست چه بنیادی یا چه افرادی اون رو نوشته باشند یا GPL باشه یانه!
نرم افزار آزاد یک جنبش هست نه یک تیکه کاغذ پاره(GPL)
حق فهمیدن از حق خوندن مهمتره