شما هنوز به سیستم وارد نشده اید.

اطلاعیه

#1 2021-08-14 15:42:13

Eyenpi
عضو
ثبت شده: 2021-08-14
ارسال ها: 5

[حل شد] مشکل متغیر depends در نوشتن PKGBUILD

سلام.
توی متغیر depends یا makedepends فایلهای PKGBUILD حتما باید بستههایی از مخزن اصلی باشه؟
اگر من یک بسته دارم که نیاز به یک بسته دیگه در AUR داره باید چیکار کنم؟
و اینکه عملا این کار درستی هست که بستهام به بسته دیگهای به این شکل وابسته باشه یا باید کار دیگهای انجام بدم؟
ممنون.

آخرین ویرایش توسط Eyenpi (2021-08-16 13:30:23)

آفلاین

#2 2021-08-15 07:28:33

morealaz
Moderator
ثبت شده: 2016-03-19
ارسال ها: 382

پاسخ: [حل شد] مشکل متغیر depends در نوشتن PKGBUILD

Eyenpi نوشته است که:

توی متغیر depends یا makedepends فایلهای PKGBUILD حتما باید بسته هایی از مخزن اصلی باشه؟

نه لزومی ندارد بسته از مخازن اصلی باشد مگر اینکه خود بسته شما هم در مخازن اصلی باشد. در مورد بسته شما که قرار است در AUR قرار بگیرد میتواند هم بسته هایی از مخازن اصلی به عنوان دپندنسی قرار بگیرد و هم بسته هایی از AUR

Eyenpi نوشته است که:

اگر من یک بسته دارم که نیاز به یک بسته دیگه در AUR داره باید چیکار کنم؟

اون بسته رو به عنوان دپندنسی بسته خودتون قرار بدید. البته چون پکمن بسته های AUR رو اتوماتیک نصب نمیکنه باید قبلا خودتون اون بسته ها رو در سیستم نصب کنید که بتونید بسته خودتون رو بسازید و استفاده کنید.

Eyenpi نوشته است که:

و اینکه عملا این کار درستی هست که بستهام به بسته دیگهای به این شکل وابسته باشه یا باید کار دیگهای انجام بدم؟

بعضی مواقع لازم هست برای درست کار کردن یک بسته، بسته های دیگری نصب باشه حتما.
این برمیگرده به نیاز بسته شما به بسته های دیگه
دپندنسی انواع مختلفی دارد:
اگر بسته شما برای اجرا مستقیما به بسته دیگری نیاز داشته باشد باید آن بسته دیگر در آرایه depends قرار بگیرد
اگر بسته شما صرفا برای ساخته شدن به بسته دیگری نیاز داشته باشد و بعد از آن بدون آن بسته قابل اجرا باشد باید آن بسته در makedepends قرار بگیرد به عنوان نمونه اگر سورس برنامه شما در گیتهاب باشد و بخواهید آخرین ویرایش سورس برنامه را از گیتهاب دانلود کنید نیاز به وجود بسته git می باشد ولی برای اجرا برنامه نیازی به git نیست بنابراین بسته git به عنوان makedepends قرار میگیرد.
بسته هایی که صرفا در مرحله check در PKGBUILD لازم هستند در ارایه checkdepends قرار میگیرند
بسته هایی که برای اجرای برنامه لازم نیستند ولی در صورت موجود بودند قابلیتهای بیشتری برای بسته شما فراهم میکنند در آرایه optdepends قرار میگیرند.

آفلاین

#3 2021-08-16 01:40:05

Eyenpi
عضو
ثبت شده: 2021-08-14
ارسال ها: 5

پاسخ: [حل شد] مشکل متغیر depends در نوشتن PKGBUILD

morealaz نوشته است که:

اون بسته رو به عنوان دپندنسی بسته خودتون قرار بدید. البته چون پکمن بسته های AUR رو اتوماتیک نصب نمیکنه باید قبلا خودتون اون بسته ها رو در سیستم نصب کنید که بتونید بسته خودتون رو بسازید و استفاده کنید.

ممنون بابت پاسخگویی. این قسمت رو متوجه نشدم. من اون بسته رو که از aur قابل دسترسه توی آرایه depends ام قرار میدم. بعد اگر این بسته رو بخوام نصب کنم اون وابستگی نصب نمیشه چون از aur هست؟ اینکه خودم باید از قبل نصب کرده باشم رو متوجه نمیشم. اگر نصب نمیشه که دیگه چه تاثیری داره بودن اون بسته توی آرایه؟
همچنین نصب وابستگی رو باید دستی توی همون pkgbuild انجام بدم؟ یعنی توی یک pkgbuild یه بسته دیگه رو makepkg کنم؟ اینطوری به نظر مشکل پیش میاد و روش تمیزی نیست.
اگر بسته ای هم در نظرتون هست که به این شکله ممنون میشم بگین که سورس اون رو بخونم.

آفلاین

#4 2021-08-16 07:44:38

morealaz
Moderator
ثبت شده: 2016-03-19
ارسال ها: 382

پاسخ: [حل شد] مشکل متغیر depends در نوشتن PKGBUILD

Eyenpi نوشته است که:
morealaz نوشته است که:

اون بسته رو به عنوان دپندنسی بسته خودتون قرار بدید. البته چون پکمن بسته های AUR رو اتوماتیک نصب نمیکنه باید قبلا خودتون اون بسته ها رو در سیستم نصب کنید که بتونید بسته خودتون رو بسازید و استفاده کنید.

ممنون بابت پاسخگویی. این قسمت رو متوجه نشدم. من اون بسته رو که از aur قابل دسترسه توی آرایه depends ام قرار میدم. بعد اگر این بسته رو بخوام نصب کنم اون وابستگی نصب نمیشه چون از aur هست؟ اینکه خودم باید از قبل نصب کرده باشم رو متوجه نمیشم. اگر نصب نمیشه که دیگه چه تاثیری داره بودن اون بسته توی آرایه؟
همچنین نصب وابستگی رو باید دستی توی همون pkgbuild انجام بدم؟ یعنی توی یک pkgbuild یه بسته دیگه رو makepkg کنم؟ اینطوری به نظر مشکل پیش میاد و روش تمیزی نیست.
اگر بسته ای هم در نظرتون هست که به این شکله ممنون میشم بگین که سورس اون رو بخونم.

من بد توضیح دادم ببخشید
منظور من اینه که موقعی که شما دارید بسته خودتون رو تست میکنید و می سازید از دستور makepkg استفاده میکنید. این دستور از pacman برای نصب دپندنسی های بسته شما استفاده میکند و چون پکمن نصب بسته های AUR را به صورت مستقیم مثل بسته های مخازن ساپورت نمیکند برای همین اگر از قبل اون بسته های دپندنسی در سیستم نصب نباشد نمیتوانید بسته خودتون رو نصب وتست کنید. ولی چون اکثر کاربران AUR از برنامه کمکی AUR مثل paru و yay استفاده میکنند و این برنامه ها مشکلی در نصب بسته از AUR ندارند مشکلی ایجاد نمی شود. ولی کاربرانی که از makepkg برای نصب بسته های AUR به صورت دستی استفاده میکنند باید دپندنسی هایی که در AUR هستند را هم جداگانه نصب کنند به همان دلیلی که گفتم.
با تمام این صحبتها شما باید دپندنسی های بسته خود را چه در AUR باشند و چه در مخازن مشخص کنید. نیازی هم به نصب بسته از طریق قرار دادن دستور نصب داخل PKGBUILD نیست و نباید این کار را کرد. صرفا نام بسته را داخل ارایه دپندنسی قرار بدید و تمام.

آفلاین

پانوشت انجمن

پشتیبانی توسط تیم آرچ لینوکس ایران و نیرو گرفته با FluxBB میزبانی توسط MahanCloud