نصب درست و حسابیِ اسپاتیفای روی فدورا

2020-02-23
20 دقیقه مطالعه

احتمالا یادتونه خیلی وقت پیشا گفتم که اگه کاربر فدورا هستین و از اسپاتیفای آهنگ گوش میدین منتظر یه نوشته از من باشین. و حالا دارین اون نوشته رو می‌خونین! فکر کنم اسپاتیفای رو خیلیاتون بشناسین. یه سرویس استریم موزیک با یه آرشیو فوق العاده قوی و کامل از تمام موزیسین‌های دنیا! تقریبا هرچی تو اسپاتیفای سرچ کنین به نتیجه می‌رسین و می‌تونین موزیک مورد نظرتون رو با بهترین کیفیت گوش کنین.

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

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

اگه دبیان و توزیع‌های دبیان بیسد رو استفاده می‌کنید که کاملا اوکیه. اسپاتیفای براتون یه بسته‌ی deb درست کرده که خیلی راحت با dpkg نصب می‌شه. اما برای توزیع‌های دیگه بسته‌ی اصطلاحا نیتیو اون مدیربسته رو نداریم. اما چاره چیه؟ به جز استفاده از snap و flatpack یه کاری که می‌تونیم بکنیم اینه که بریم همون بسته‌ی دبیانی رو بگیریم و بازش کنیم و خیلی ساده هر چیزی رو بذاریم سر جای خودش! اما من قراره یکم متفاوت‌تر این کار رو انجام بدم.

احتمالا آرچ لینوکس رو همه‌تون می‌شناسید. از بهترین و خفن‌ترین توزیع‌های لینوکسی هست که در تمام دنیا پیدا می‌شه و یکی از محاسنش علاوه بر ویکی خفن و مینیمال بودنش مخازن AURش هستن. ما قراره توی این مطلب اسپاتیفای رو با کمک AUR روی فدورا نصب کنیم! خوبی این راه اینه که دقیقا یه چیزی مثل یه recepie برای نصبش داریم که در واقع همون فایل PKGBUILD هست. حتی اگه آرچ هم ندارید به سادگی می‌تونید به این آدرس برید و هر بسته‌ای که دوست دارید رو توی AUR جستجو کنید. مثلا من اسپاتیفای رو توش جستجو کردم و نتایج به شکل زیره:

spotify aur search

می‌بینید که کلی نتیجه داریم اما در این لحظه ما فقط با یکی‌شون کار داریم و اون چیزی نیست جز خود بسته‌ی spotify که زیرش هم خط کشیدم. وقتی وارد صفحه‌ی پکیج بشید یه قسمتی داریم که به شکل sources مشخص شده و اونجا منابع بسته رو برامون قرار داده و همون‌طور که می‌بینید یه فایل deb داریم که در واقع همون بسته‌ای هست که بهش نیاز داریم. در نتیجه کافیه روی لینکش کلیک کنیم تا دانلودش شروع شه.

spotify aur deb package link

حالا تو همون صفحه‌ی پکیج تو قسمت package actions یه گزینه به اسم View PKGBUILD داریم. خیلی نمی‌خوایم ریز بشیم اما توی آرچ بسته‌ها با استفاده از فایلی به اسم PKGBUILD ساخته می‌شن و محتوای این فایل کمک‌مون می‌کنه که بفهمیم این بسته چطوری قراره نصب بشه و وقتی بفهمیم این بسته چطوری قراره نصب بشه قاعدتا می‌تونیم روی هر توزیعی به جز آرچ از جمله فدورا هم نصبش کنیم.

spotify aur pkgbuild in package actions section

اگه با Arch Build System آشنا باشید احتمالا خودتون می‌تونید با خوندن اون فایل PKGBUILD خیلی راحت اسپاتیفای رو هر جایی که خواستید نصبش کنید. اما ما فرض می‌کنیم که با ABS آشنا نیستید و در نتیجه مرحله به مرحله نصبش رو با هم می‌ریم جلو.

spotify aur pkgbuild

بعد از دانلود شدن فایل deb یه دایرکتوری درست کنین و انتقالش بدین داخل اون، مثلا:

$ mkdir /tmp/spotify
$ mv spotify-client_1.1.10.546.ge08ef575-19_amd64.deb /tmp/spotify
$ cd /tmp/spotify

نکته: دقت کنید اسم فایل spotify شما می‌تونه بسته به ورژن هر چیز دیگه‌ای باشه. در نتیجه این دستورات رو کپی نکنید و خودتون بنویسیدش.

بعدش باید با ar بسته‌ی deb رو بازش کنیم. دقت کنید اگه دستور ar رو نداشتید (احتمالش کمه) باید بسته‌ی binutils رو نصب کنید که نصبش هم به سادگی با دستور زیر امکان‌پذیره:

$ sudo dnf install binutils

حالا بسته رو بازش می‌کنیم:

$ ar x spotify-client_1.1.10.546.ge08ef575-19_amd64.deb

بعد از باز شدن بسته اگه یه ls بزنید می‌بینید که صاحب دوتا فایل فشرده‌ی جدید به اسم‌های control.tar.gz و data.tar.gz می‌شیم که هر کدوم از اون‌ها رو هم باید از حالت فشرده درشون بیارید. دستورات زیر این کار رو براتون انجام می‌دن:

$ tar -xvf control.tar.gz
$ tar -xvf data.tar.gz

حالا طبق PKGBUILD جلو می‌ریم و اول فایل desktop entry اسپاتیفای رو می‌ذاریم توی دایرکتوری desktop entryهامون و بعدش می‌ریم سراغ آیکون‌هاش که هر سایز رو توی دایرکتوری مناسبش قرار بدیم تا میزکارمون بدونه باید کجا از چه آیکونی برای نمایشش استفاده کنه. دقت کنید که توی دایرکتوری /tmp/spotify باشید و بعد بزنید:

$ sudo mv usr/share/spotify/spotify.desktop /usr/share/applications
$ sudo cp usr/share/spotify/icons/spotify-linux-512.png /usr/share/pixmaps/spotify-client.png
$ for size in 22 24 32 48 64 128 256 512; do sudo cp spotify-linux-$size.png /usr/share/icons/hicolor/${size}x${size}/apps/spotify.png; done

بعد از اینکه Desktop Entry و آیکون‌ها رو گذاشتیم سرجای خودشون، مرحله‌ی بعدی‌مون انتقال باینری برنامه به دایرکتوری /opt هست که دایرکتوری مرسوم توی سیستم عامل گنو/لینوکس برای برنامه‌های خارج از مخازن محسوب می‌شه. بدین منظور می‌تونین از دستور زیر استفاده کنید:

$ sudo mv usr/share/spotify /opt

بعدش باید یه symlink از فایل اجرایی اسپاتیفای داخل دایرکتوری باینری‌های سیستم عامل‌مون درست کنیم تا بتونیم به راحتی با استفاده از دستور spotify از هر کجا رانش کنیم. برای ساختن این symlink کافیه از دستور زیر استفاده کنیم:

$ sudo ln -sf /opt/spotify/spotify /usr/bin/spotify

در نهایت هم برای ست شدن دسترسی‌های مورد نیاز می‌تونید از این دستور استفاده کنید:

$ sudo chmod -R go-w /opt/spotify

حالا یه مرحله‌ی کوچیک مونده برای این‌که ببینیم همه چی درسته یا نه! کافیه یه ترمینال باز کنید و داخلش بنویسید spotify:

$ spotify

اگه برنامه ران شد که خیلی هم عالی! می‌تونید Ctrl -C بزنید و ببندیدش و برید از داخل لیست Desktop Entryهاتون عین آدم (!) رانش کنید:

rofi drun spotify search

اما اگه اروری در مورد libcurl-gnutls.so.4 یا libatmoic گرفتین، اول مطمئن شین که این کتابخونه‌ها نصب هستن:

$ sudo dnf install libcurl libatmoic

اگر بعد از نصب بازم ارور مربوط به libcurl-gnutls.so.4 داشتین کافیه یه لینک از libcurl.so.4 به اسم libcurl-gnutls.so.4 بزنید:

$ sudo ln -s /usr/lib64/libcurl.so.4 /usr/lib64/libcurl-gnutls.so.4

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

یه نکته‌ی کوچیکی هم که می‌مونه اینه که من دیپندنسی‌ها رو توی صفحه‌ی AUR بررسی نکردم و دلیلشم این بود که اکثر بسته‌هایی که برای اجرای اسپاتیفای نیازه به شکل پیش‌فرض روی فدورا نصب هستن به جز یکی دو مورد بالا که اونم باز بسته به flavorای که استفاده می‌کنید ممکنه نصب باشن یا نه. به هر حال در 90 درصد شرایط مشکلی نخواهید داشت اما اگه موقع اجرا به مشکل حادی خوردین کافیه اسپاتیفای رو از داخل کامندلاین اجرا کنین و با توجه به لاگ‌ش بسته‌ی مورد نیازش رو نصب کنید. کار خیلی ساده‌ای خواهد بود.

امیدوارم این پست بدردتون بخوره و حسابی از موزیک‌هاتون لذت ببرین ((( :


سورس این پست رو می‌تونین از اینجا ببینین :)