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

#1 2015-11-02 23:43:39

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,281

PKGBUILD دانلودمنیجر Persepolis

دانلودمنیجر پرسپولیس توسط علیرضا امیرصمیمی عزیز نوشته شده. برای توضیحات مفصل پیرامون این دانلود منیجر، به اینجا مراجعه کنید:
http://amirsamimi.mihanblog.com/post/25

من یه PKGBUILD برای نصبش نوشتم که لطفا امتحانش کنید و فیدبک بدید. البته مقداری جا برای تکاملش هست.
لطفا خط به خطش رو بخونید و اگر با هرجائیش مخالف هستید، پیشنهاد بهبودش رو بدید.


۱. کدهای زیر رو توی یک فایل متنی به نام PKGBUILD بریزید و این فایل رو  داخل یک دایرکتوری در خانه ذخیره کنید.

pkgname=pdmt
pkgver=1.18.4
pkgrel=1
pkgdesc='A download utility based on aria2 with special features like download from youtube and adjustable with firefox'
arch=('i686' 'x86_64')
url='http://amirsamimi.mihanblog.com/post/33'
license=('GPL')
depends=('aria2' 'pm-utils' 'wget' 'vorbis-tools' 'xdg-utils' 'xclip'  'libnotify' 'xterm' 'zenity' 'youtube-dl') 
install=pdmt.install
source=("https://github.com/alireza-amirsamimi/pdmt/archive/master.tar.gz")
sha1sums=('SKIP')
package() {
            user=$HOME
program_path="$user/.persepolis_download_manager_terminal"
install_path=`pwd`
mkdir -p $program_path >/dev/null 2>&1
cp -R -f "$srcdir"/pdmt-master/files/* $program_path
if [ ! -f ~/.Xresources ];then
cp -R -f ~/.persepolis_download_manager_terminal/Xresources  ~/.Xresources
xrdb -merge ~/.Xresources
fi
             mkdir -p "$pkgdir"/usr/share/persepolisdm
             mkdir -p "$pkgdir"/usr/share/persepolisdm/icon
	cd "$srcdir"/pdmt-master/files
             install -Dm0755 pdmt "$pkgdir"/usr/bin/pdmt
             install -Dm0755 persepolisdm "$pkgdir"/usr/bin/persepolisdm
             install -Dm0755 icon.png "$pkgdir"/usr/share/persepolisdm/icon/icon.png
             install -Dm0755 icon_circle.png "$pkgdir"/usr/share/persepolisdm/icon/icon_circle.png
             install -Dm0755 pdmt.1.gz "$pkgdir"/usr/share/man/man1/pdmt.1.gz     
             install -Dm644 Persepolis.desktop "$pkgdir"/usr/share/applications/Persepolis.desktop                    
}

۲. کدهای زیررو داخل یه فایل با نام pdmt.install بریزید و در همون دایرکتوری ذخیره کنید:

post_install() {
    echo "It's done!"
    echo   "Do 'man pdmt' for instructions."
    echo   "To use in GUI mode search 'Persepolis' in your applications."
}

post_remove() {
   # rm  -r /home/$(users)/.persepolis_download_manager_terminal
echo "Please remove .persepolis_download_manager_terminal directory from your home directory."
}

۳.

 $ makepkg -s

رو بزنید. حالا بسته آماده برای نصب توسط pacman تولید شده. در همون دایرکتوری، کد

 $ sudo pacman -U pdmt-1.18.4-1-x86_64.pkg.tar.xz

رو بزنید  و تمام.
-------------------------------------------------------------------------------------
* میشه هردو کد مرحله ۳  (ساخت بسته و نصب اون) را با کد زیر جایگزین کرد:

 $ makepkg -si

-------------------------------------------------------------------------------------

----------------
(vi) ویرایش شد.
----------------

آخرین ویرایش توسط Arcush (2015-12-10 14:14:18)

آفلاین

#2 2015-11-03 10:08:16

AraaX
Administrator
ثبت شده: 2015-09-13
ارسال ها: 337

پاسخ: PKGBUILD دانلودمنیجر Persepolis

بسیار عالی خسته نباشید
توی AUR هم قرار بدید

آفلاین

#3 2015-11-03 12:47:56

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,281

پاسخ: PKGBUILD دانلودمنیجر Persepolis

ممنون آرش جان. اسم فایل فشرده شده در گیت هاب، حاوی ورژن بسته نیست. اگه بود، PKGBUILD خیلی بهتر(= استانداردتر) میشد. خروجی namcap بسته رو که می بینم، خطایی نداره. اخطارهاش هم راجع به دیپندنسی ها هست که طبق ویکی خود namcap، فعلا نمیشه به نتایج دیپندنسی namcap استناد کرد.

----------PKGBUILD برای دومین بار ویرایش شد-----------

آخرین ویرایش توسط Arcush (2015-11-03 13:56:38)

آفلاین

#4 2015-11-03 14:10:36

HDArtworks
Moderator
از : خوزستان
ثبت شده: 2015-09-16
ارسال ها: 94
وب سایت

پاسخ: PKGBUILD دانلودمنیجر Persepolis

سلام.
خیلی عالی شده.
البته من تخصصی توی PKGBUILD ندارم متاسفانه ولی حرکت خیلی خوبیه.
پیشنهاد میکنم با امیرصمیمی در تماس باش و ایراداتش رو بگو برطرف کنه که بشه برنامه رو توی AUR گذاشت. smile

آفلاین

#5 2015-11-03 14:53:42

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,281

پاسخ: PKGBUILD دانلودمنیجر Persepolis

ممنون حسین جان.  برنامه یک آیکون دسکتاپ به نام persepolis داره . از طرفی برنامه توی حالت cli با زدن دستور pdmt اجرا میشه. به نظرم یک نام برای هردوی اینها انتخاب بشه، خیلی بهتره. البته انجام این کار خیلی ساده هست و چون لایسنس برنامه gpl هست، هر کسی میتونه این کار رو برای خودش انجام بده. ولی شاید بهترین حالت اینه که خود maintainer  این کار رو بکنه.

چشم. با علیرضای عزیز تماس می گیرم.

آفلاین

#6 2015-11-03 17:34:07

حسین حیدری
عضو
از : اصفهان
ثبت شده: 2015-09-16
ارسال ها: 366
وب سایت

پاسخ: PKGBUILD دانلودمنیجر Persepolis

سلام.

عالی فقط به خود علیرضا هم خبر بدید من توی همون پست دانلود منیجر که علیرضا توی انجمن اوبونتو نوشته, لینک این پست را میدم


وبسایت شخصی من: http://hosseinws.ir

آفلاین

#7 2015-11-03 17:41:14

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,281

پاسخ: PKGBUILD دانلودمنیجر Persepolis

ممنون. حتما. منتها دارم فکر می کنم اگه یه جوری تابع ()prepare  حذف بشه و کل اتفاق ها تو ()package بیفته، خیلی ایده آل میشه.  مساله اینه که در اینصورت باید پوشه file به نحو مناسبی توی pkgdir قرار بگیره و بعد از نصب توسط پکمن، این پوشه اتومات کپی بشه توی دایرکتوری خانه. به نظرم با دستور sed این کار امکانپذیره.

*** پست اول ویرایش شد.

آخرین ویرایش توسط Arcush (2015-11-04 03:27:04)

آفلاین

#8 2015-11-04 16:13:28

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,281

پاسخ: PKGBUILD دانلودمنیجر Persepolis

به نظر میاد میشه تعداد خطوط کمتری برای نصب هزینه کرد.

**** پست اول ویرایش شد.

آفلاین

#9 2015-11-05 00:58:13

Programmer
عضو
از : root/
ثبت شده: 2015-10-01
ارسال ها: 397

پاسخ: PKGBUILD دانلودمنیجر Persepolis

خیلی خوبه Arcush جان . من قبلا از دانلود منیجر عیرضا استفاده کردم . براش زحمت کشیده و برنامه خوبیه اما باید بیشتر روش کار کنه تا شبیه به idm بشه . قبلا این ها رو خدمتش گفتم . حالا ک شما زحمت کشیدی و براش پکیج بیلد نوشتی (من هنوز دقیق نمی دونم پکیج بیلد رو چطور باید بسازم متاسفانه !) بهش دوباره یادآوری کن تا یک برنامه فوق العاده از آب دربیاد خوب کافی نیست عزیز .


Impossible Impossible
Imagination is more important than science
به بلاگ من سر بزنید smile
به اینستاگرام من سر بزنید smile

آفلاین

#10 2015-11-05 01:22:34

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,281

پاسخ: PKGBUILD دانلودمنیجر Persepolis

ممنونم مهردادجان. در کشور ما بخاطر کند و گرون بودن اینترنت، بسیار مهمه که یک دانلودمنیجر مطلوب وجود داشته باشه تا هم بخوبی قابل برنامه ریزی برای start و stop در ساعات خاص  (معمولا ساعات اینترنت رایگان) باشه و هم کاربر رو از ایمنی دانلود مطمئن کنه. این مسایل شاید الان در کشورهای دیگه به اندازه کشور ما مهم نیستن. بنابراین یکی از بهترین راه حل ها برای بهتر شدنش استفاده مکرر ما ازین برنامه هست تا حین استفاده تمام باگ های احتمالیش رو دربیاریم، به اضافه اینکه با توجه به نیازهایی که ما مخصوصا در کشور خودمون برای دانلود و مسایل مربوط به اون داریم، میتونیم ایده هامون رو بهمراه یه راه حل حداقل برای شروع به علیرضای عزیز بدیم تا با توجه به صلاحدید خودش تصمیمی درموردش بگیره. من معتقدم و البته مطمئن ام اعتقاد صحیحیه که پرسش و پاسخ و قرار گرفتن درون مساله بهترین راه برای حل مساله و یادگرفتن هست.

ویرایش: مهرداد عزیز، راجع به PKGBUILD لطفا آسونتر برخورد کنید. اینطوری نگاه کنید که AUR یک مخزن بزرگه که پر از بسته ها و گروه های نرم افزاریه. درصد بسیار بالاییشون هم خیلی خوب کار می کنن. خب این همه PKGBUILD رو کی نوشته؟ قطعا هزاران نفر. بنابراین از همین جا مطمین بشید که نه تنها کار سختی نیست، بلکه آسان هم هست. اما متاسفانه چون ما تاحالا تمرینی در اینمورد نداشتیم( یا تمرین های خیلی کمی داشتیم) با کمی هراس بهش نگاه می کنیم. پیشنهاد من اینه که با abs تمام PKGBUILDهای مخزن های رسمی رو دانلود کنید و هرزگاهی که فرصت دارید بعضی از اونها رو نگاه کنید. بعد از دیدن چندتاشون یک الگوریتم تکراری خواهید دید و قطعا متوجه میشید که چقدر ساده. درحقیقت، میشه براحتی یک PKGBUILD نوشت که کار کنه و البته خوب هم کار کنه. اما موضوع مرحله بعدیشه: این PKGBUILD چقدر حرفه ای نوشته شده. تنها راه برای اینکه ببینیم چقدر حرفه ای نوشته شده، مقایسش با PKGBUILDهای مشابه هست ( و البته که خود برنامه هم در این مورد دخیله). اگه به PKGBUILDهای برنامه های مخازن اصلی نگاهی بندازید، ملاحظه خواهید کرد درصد بسیار بالایی (بدون اغراق بیشتر از ۹۰) از اون ها توی کمتر از ۵۰ خط تموم شدن و البته سه تایی معروف configure.-make-make install به نحو مناسبی توشون قرار داده شده. این به این معنی هست که برنامه یا بسته بارها و بارها امتحان شده، به کرّات استفاده شده و بعد از رسیدن به یک ثبات خوب، نویسنده اون برنامه تصمیم گرفته تا یک اسکریپت configure برای برنامه بنویسه که فرآیند نصب بسیار ساده بشه. درمورد شل-اسکریپت ها شاید هم نیازی به این کار نباشه اما بهرحال این یک عامل مهم برای پرش بسته به مخازن رسمیه. بنابراین هرچه زودتر، مطالعتون رو درمورد PKGBUILD شروع کنید تا با پرسش و پاسخ هایی که در اینمورد خواهیم داشت، به دانش هممون افزوده بشه. جملات معروفی از قبیل اینکه "آرچ سادست" و "اسلکویر سادست" حتما باید مانع از این بشه که درصدی به این فکر کنیم که انجام دادن یک کار در آرچ سخته.

آخرین ویرایش توسط Arcush (2015-11-05 01:39:20)

آفلاین

#11 2015-11-08 11:58:10

AraaX
Administrator
ثبت شده: 2015-09-13
ارسال ها: 337

پاسخ: PKGBUILD دانلودمنیجر Persepolis

سلام

 
==> Validating source files with md5sums...
    master.tar.gz ... FAILED
==> ERROR: One or more files did not pass the validity check!

آفلاین

#12 2015-11-08 13:02:19

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,281

پاسخ: PKGBUILD دانلودمنیجر Persepolis

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

سلام

 
==> Validating source files with md5sums...
    master.tar.gz ... FAILED
==> ERROR: One or more files did not pass the validity check!

آرش جان من ترجیح دادم md5sum رو فعلا بصورت لوکال جنریت کنیم و بعد که PKGBUILD فیکس شد، از علیرضا بخوایم تا برای هر آپدیت یه دونه خودش فیکس کنه. بنابراین

 $ makepkg -g >> PKGBUILD
 $ makepkg -s
 $ sudo pacman -U pdmt-1.18.2-1-x86_64.pkg.tar

امیدوارم خودت هم یه نگاه درست و حسابی به PKGBUILDش بندازی و اگر نکته ای رو لازم می بینی، بهم یاد بدی. ممنون.

(v) ویرایش شد: به نظر، علیرضا تغییراتی در فایل سورس داده. برمبنای همون ها ویرایش کوچیکی انجام شد.


همچنین راجع به desktop entryها، روش استاندارد اینه که desktop entry را داخل فایل tarball قرار بدیم و با دستور install در تابع package اون رو نصب کنیم. اما من ترجیح دادم که به طبقه بندی فایل tar دست نزنم. یا مثلا راجع به icon، طبیعی تر این هست که با دستور install در همون تابع، آیکون رو در /usr/share/icons ذخیره کنیم. یا در مورد مستندات که در /usr/share/doc ذخیره بشند. بهرحال درمورد اینکه چرا تصمیم گرفته شده، تمام فایل ها در یک پوشه مخفی در خانه ذخیره بشن، من هنوز به نتیجه ای نرسیدم.

آخرین ویرایش توسط Arcush (2015-11-08 15:26:51)

آفلاین

#13 2015-12-10 16:38:23

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,281

پاسخ: PKGBUILD دانلودمنیجر Persepolis

راه حلی که فکر می کنم مناسب این مساله تاپیک
http://bbs.archusers.ir/viewtopic.php?pid=1551#p1551
باشه، عوض کردن آدرس فایل های اجرایی هست. مستندات در ویرایش جدید، آدرسشون عوض شده. منتها فایل های اجرایی و اسکریپت ها در پوشه ای در دایرکتوری هوم قرار میگیرن. یکی از اونها میره و در دایرکتوری /usr/bin قرار میگیره ولی موقعی که میخواد اجرا بشه میاد و فایل های دیگه رو از همون دایرکتوری در هوم اجرا میکنه. پیشنهاد من اینه که فایل های اجرایی برن توی همون /usr/bin قرار بگیرن. استانداردش هم این هست. در اینصورت، دیگه بوجود اون دایرکتوری نیازی نیست و بنابراین نیازی نخواد بود که اون دایرکتوری موقع آنینستال، حذف بشه. همچنین آیکون برنامه توی دایرکتوری آیکون.

آخرین ویرایش توسط Arcush (2016-02-23 05:23:12)

آفلاین

#14 2015-12-13 17:38:44

بهروز رمضانی
عضو
از : اصفهان
ثبت شده: 2015-09-16
ارسال ها: 189
وب سایت

پاسخ: PKGBUILD دانلودمنیجر Persepolis

سلام من همین مشکل پاک شدن home را روی نسخه هایی قدیمی pdmt بر روی توزیع فدورا داشتن که با کمک علیرضا باگ مربوطه فیکس شد.


در یادگیری و استفاده از خط فرمان کوشا باشید چرا که رستگاری شما در آن است.

آفلاین

#15 2015-12-13 21:06:40

silver
عضو
از : اصفهان
ثبت شده: 2015-12-03
ارسال ها: 187
وب سایت

پاسخ: PKGBUILD دانلودمنیجر Persepolis

گفتی جانم به قربانت ولی حالا چرا


بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ (1).اقُلْ هُوَ اللَّهُ أَحَدٌ(2). اللَّهُ الصَّمَدُ (3).لمْ يَلِدْ وَلَمْ يُولَدْ(4). وَلَمْ يَكُن لَّهُ كُفُوًا أَحَدٌ(5)
http://lidora.blog.ir
علیرضا پژوهش

آفلاین

#16 2016-02-23 04:47:27

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,281

پاسخ: PKGBUILD دانلودمنیجر Persepolis

پست اول با توجه به ویراست جدید دانلود منیجر و هم چنین تاپیک زیر، ویرایش شد.
با توجه به مشکلی که در http://bbs.archusers.ir/viewtopic.php?pid=1551#p1551 وجود داره، من ترجیح دادم که پوشه

.persepolis_download_manager_terminal

توسط خود شخص حذف بشه. البته بقیه فایلا که نصب شدن، بدون خطری حذف خواهند شد. مضافا با توجه به سرچی که کردم، خود اون دستور حذف، در موارد دیگری هم باعث چنین اتفاق مشابهی شده. بنابراین  پیشنهاد می کنم که اگه حتی مستقیما نصب می کنید، توی اسکریپت uninstall خط مربوط به حذف دایرکتوری فوق رو کامنت و نسبت به حذف اون شخصا اقدام کنید و نه در قالب اسکریپت .

آفلاین

پانوشت انجمن

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