انجمنهای فارسی اوبونتو
تازه کار => انجمن تازهکاران => نویسنده: asajadi84 در 25 آبان 1396، 12:49 بظ
-
سلام دوستان.
من هیچ تجربه ای توی استفاده از لینوکس ندارم. تعدادی فایل deb دارم که با دوبار کلیک کردن روی اونها ubuntu software باز میشه ولی وفتی روی دکمه ی install کلیک میکنم هیچ اتفاقی نمی افته.
از طریق ترمینال هم دستور sudo dkpg -i رو امتحان کردم (طبق جستجو توی گوگل) ولی باز هم ارور میده. نرم افزارهایی که deb نیستن (مثل تلگرام desktop) رو بدون هیچ مشکلی میتونم نصب کنم ولی این فایلها رو نمیتونم
اگه کسی میتونه منو راهنمایی کنه
-
سلام. این پروندههای deb. رو دقیقاً از کجا آوردی؟ از سایتها گرفتی؟ یا اینکه مال یکی بوده که روی سیستمعاملش داشته و به شما داده؟
اگه از سایتها گرفتی که بیخیال شو. کار درستی نیست.
اگه از یکی دیگه گرفتی که قبلاً نصب میکرده، باید ببینی به سیستمعامل شما و نوع معماری سیستمعامل شما میخوره اصلاً یا نه.
تلگرام رو شما نصب نکردی. چون Package نبوده که نصب بشه. تلگرام یه فایل Binary بوده که شما اجراش کردی و داره برات کار میکنه. :)
نرمافزارهایی که نصب میشن، دقیقاً Package هستن. یا deb. یا rmp. یا حتی پروندههای بایگانی مثل tar.xz. یا مثلاً zip.
حالا اگه فرض کنیم که این deb. هایی که گرفتی، دقیقاً به سیستمعاملت میخورن، پس اونارو با فرمان زیر کپی کن توی آدرس اصلی بستههای ذخیره شده:
cd DIR
sudo cp *.deb /var/cache/apt/archives/
فرمان اول یعنی برو به شاخهای که بستهها توش هستن. اون DIR مثال بود. باید آدرس شاخهای که توش بستهها هستن رو بهش بدی.
بعد هم کپی میشن تمام پروندههای deb. در اون آدرس
حالا مخازن رو به روز میکنی:
sudo apt update
حالا اگه یادته اسم برنامهها چی بوده، به این صورت مینویسی:
sudo apt install vlc firefox smplayer i3 kde-full telegram-desktop emacs25
نرمافزارها به عنوان مثال آورده شدن.
بعد apt دیگه خودش براساس همون پروندههایی که کپی کردی، برنامههایی که بهش دادی رو برات نصب میکنه. این باعث میشه خودش پیشنیازها رو هم نصب کنه تا دیگه Error نگیری.
منتها موضوع اینه اصلاً ممکنه بستههایی که الآن داری ناقص باشن که apt در این صورت سعی میکنه از اینترنت بگیره. یعنی از مخازن رسمیش. که کار درست هم همینه. شما هم در اصل باید برنامههات رو از مخازن رسمی بگیری. یعنی همون فرمان آخری که بهت دادم رو برای نصب برنامههات بزنی
sudo apt install Esm-e_Package_Haa
نصب برنامه از طریق بارگیری اون از سایتها مشکلات زیادی بوجود میاره. هم از لحاظ فنی هم امنیتی. برای همین اکثر توزیعها، مخزن رسمی دارن که بستهها رو اونجا نگهداری میکنن.
-
آقا رسول اگه فرمت برنامه tar.xz یا zip بود چی؟ اونارو چه جوری نصب کنیم؟
کاش دکمه تشکر هم بود از آقا رسول کلی تشکر می کردیم. نصب فایل deb مشکل منم بود و ایشون عالی توضیح دادن مثل همیشه
-
آقا رسول اگه فرمت برنامه tar.xz یا zip بود چی؟ اونارو چه جوری نصب کنیم؟
کاش دکمه تشکر هم بود از آقا رسول کلی تشکر می کردیم. نصب فایل deb مشکل منم بود و ایشون عالی توضیح دادن مثل همیشه
قالبهایی مثل tar و zip آرشیو هستن. میشه ازشون به عنوان Package استفاده کرد.
ولی خب مکانیزمشون مثل اونا نیست دقیقاً. وقتی به شما یه چنین قالبی میدن یعنی باید از حالت آرشیو خارجش کنی و مثلاً اجراش کنی.
مثل deb نیست که هرچیزی بره سر جاش بشینه (به اصطلاح نصب بشه!)
مثلاً یه برنامهای مثل تلگرام، tar هست که باید از حالت آرشیو خارجش کنی و اجراش کنی. همین!
سورسها هم که مشخصه. مثلاً از گیتهاب یه برنامه میگیری که zip هست. اینو باید از حالت فشرده خارجش کنی. بعد حالا یا فقط اجراش میکنی حل میشه موضوع، یا باید کامپایل بشه که توی پروندهٔ README یا HELP و امثالهم توضیح دادن که چیکارش کنی نصب میشه.
پس قالبهای بستهبندی مثل deb و rpm جوری ساخته شدن که وقتی از از حالت آرشیو خارج میشن هر پرونده میره سر جای خودش در / (ریشه) قرار میگیره.
ولی tar و zip و ... هر کدوم روشش فرق داره که معروفترینشون میشه اجرای معمولی بعد از خارج کردن محتوا. یا کامپایلش که یه پرونده راهنما توی همون آرشیو برای کاربر گذاشتن. :)
-
آیا دلیل خاصی داره که همه برنامه ها رو tar نمی سازن؟ آیا دلیلش مثلا میتونه این باشه که برنامه هابی مثل تلگرام پیشنیاز ندارن و بخاطر همین نیازی به فرمت های دیگری مثل deb یا پکیج نیست ولی اکثر برنامه ها پیش نیاز دارن؟
-
آیا دلیل خاصی داره که همه برنامه ها رو tar نمی سازن؟ آیا دلیلش مثلا میتونه این باشه که برنامه هابی مثل تلگرام پیشنیاز ندارن و بخاطر همین نیازی به فرمت های دیگری مثل deb یا پکیج نیست ولی اکثر برنامه ها پیش نیاز دارن؟
بحث پیش نیاز نیست! به خاطر پیش نیاز بسته هارو بسته بندی نمی کنن!
چون همون طور که می دونی، پیش نیازهای یک برنامه باز به صورت یک بسته جداگونه نصب می شن.
دلیل وجود بسته بندی اینه که مثلاً دیدی توی ویندوز وقتی یه برنامه رو نصب می کنی پرونده هاش می رن توی Program Files و برنامه شروع می کنه به کار کردن؟
توی گنو این شکلی نیست. هر پرونده ای نیاز داره یه جای خاصی از ساختار درختی گنو بشینه. مثلاً آیکن های یک برنامه باید برن در مسیر
/usr/share/icon
و هر بخش همین جور سر جای خودش قرار می گیره.
شما وقتی یه پرونده Deb رو باز کنی می بینی که ادرس پرونده ها دقیقا از Root شروع شدن که مشخص کنه هر پرونده وقتی از حالت آرشیو خارج شد کجا بره بشینه. برای همین از Deb و RPM استفاده می کنن. این نوع بسته بندی برای همین درست شده.
در صورتی که توی Tar و Zip کسی چنین کاری نمی کنه و تمام برنامه موقع خارج شدن توی همون شاخه ای که شما مشخص کردی از حالت آرشیو خارج می شه و شما یا باید نصبش کنی جداگونه یا این که اجراش کنی فقط و باقی موارد.
البته ما توی Tar مکانیزمی داریم که پرونده ها موقع آرشیو شدن دقیقا ساختار درختیشون از ریشه حفظ بشه و موقع خارج کردن برن دوباره سر جاشون بشینن ولی خب خیلی کم استفاده می شه این مورد (بیش تر در توزیع آرچ که بسته هاش tar هستن)
ما دو تا توزیع مهم مادر داریم که از همون اوایل توسعه گنو کارشون رو شروع کردن. ردهت و دبیان
که RPM بسته بندی مخصوص ردهت و Deb بسته بندی مخصوص دبیان هست.
طبیعیه که استاندارد Packageها یکی از دو مورد باشه. ;)
-
خیلی عالی بود. ممنون