<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
		<id>https://wiki.ubuntu-ir.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Narayana</id>
		<title>ویکی فارسی اوبونتو - مشارکت‌های کاربر [fa]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.ubuntu-ir.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Narayana"/>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/wiki/%D9%88%DB%8C%DA%98%D9%87:%D9%85%D8%B4%D8%A7%D8%B1%DA%A9%D8%AA%E2%80%8C%D9%87%D8%A7/Narayana"/>
		<updated>2026-05-14T02:58:17Z</updated>
		<subtitle>مشارکت‌های کاربر</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=XFCE&amp;diff=756</id>
		<title>XFCE</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=XFCE&amp;diff=756"/>
				<updated>2015-07-04T17:03:51Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: خنثی‌سازی ویرایش 755 توسط Danialbehzadi (بحث)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[پرونده:Xfce4.12.jpg|400px|thumb|left|نمونه‌ای از میزکار ایکس اف سی ای نسخه ۴.۱۲]]&lt;br /&gt;
[[DE|میزکار]] XFCE که به شکل چهار حرف مجزا از یکدیگر ایکس.اف.سی.ای. تلفظ می‌شود، نرم افزاری آزاد و یک محیط کار برای سیستم‌های مشابه [[Unix|یونیکس]] همچون [[GNU/Linux|گنو/لینوکس]] و [[BSD|بی.اس.دی.]] است. هدف XFCE سرعت و سبکی در عین حفظ زیبایی و کاربری آسان بوده است. این میزکار بر اساس اجزای مستقل از یکدیگر طراحی شده که به همراه هم، میزکار را تکمیل می‌کنند و توسّط کاربر قابل کم و زیاد شدن یا جایگزینی هستند.&lt;br /&gt;
&lt;br /&gt;
[[رده:میزکارها و پوسته‌ها]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%AF%D9%86%D9%88_%D9%87%D8%B1%D8%AF&amp;diff=754</id>
		<title>گنو هرد</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%AF%D9%86%D9%88_%D9%87%D8%B1%D8%AF&amp;diff=754"/>
				<updated>2015-07-04T16:47:10Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;گنو هرد (به انگلیسی GNU HURD) که گاهی به اختصار هرد نامیده می‌شود یک [[Kernel|کرنل]] [[OS|سیستم‌عامل]] است که برای [[GNU|سیستم‌عامل گنو]] طراحی شده است. گنو هرد به عنوان [[Free Software|نرم‌افزار آزاد]] تحت [[GPL|پروانه جامع همگانی گنو]] منتشر شده است. گنو هرد از سال ۱۹۹۰ بوسیله [[GNU Project|پروژه‌ی گنو]] از [[FSF|بنیاد نرم‌افزار آزاد]] در حال توسعه بوده است.&lt;br /&gt;
&lt;br /&gt;
=ساختار=&lt;br /&gt;
گنو هرد شامل مجموعه‌ای از پروتکل‌ها و فرایندهای سرور (یا [[daemon]] در اصطلاح [[Unix|یونیکس]]) است که روی [[Micro Kernel|ریزهسته]]‌ای به نام [[GNU Mach|گنو ماخ]] اجرا می‌شود. هدف هرد پیش افتادن از سیستم‌عامل یونیکس در عملکرد، امنیت، و ثبات در عین حفظ سازگاری زیاد با آن عنوان شده است. پروژه گنو معماری ریزهسته را به دلیل مزایای بیش‌تر نسبت به معماری سنتی هسته یکپارچه یونیکس برای این سیستم‌عامل انتخاب کرده است. این انتخاب با معماری اکثر هسته‌های موجود (از جمله [[لینوکس]]) متفاوت بوده و دامن زننده به بحث‌های مفصل انتخاب بین ریزهسته و [[Monolithic Kernel|هسته‌های یک‌پارچه]] است.&lt;br /&gt;
&lt;br /&gt;
=وضعیت کنونی=&lt;br /&gt;
به گفته‌ی تیم توسعه‌ی [[Debian|دبیان]]، گنو هرد برای ورودش به این توزیع در انتشار جسی بیش از ۸۰٪ آماده است. با توجّه به این که کرنل [[FreeBSD]] هنگام ورودش در انتشار ویزی دارای آمادگی ۸۵٪ بود، امید است به زودی شاهد توزیع گسترده و عمومی آن باشیم. این کرنل در حال حاضر به صورت غیر رسمی توسّط دو توزیع‌کننده‌ی بزرگ دبیان و [[Arch|آرچ]] قابل دریافت و استفاده است که در میان آن‌ها، توزیع دبیان از وضعیت بهتری برخوردار بوده و تا حد زیادی توانایی انجام کارهای عادی روزمره را دارد.&lt;br /&gt;
&lt;br /&gt;
=کاستی‌ها=&lt;br /&gt;
گنو هرد با تمام خوبی‌هایش، نواقصی نیز دارد که ناشی از کمبود نیروی انسانی داوطلب برای توسعه‌ی آن است. برای مثال در حال حاضر هنوز نسخه‌ی ۶۴ بیتی از آن موجود نیست و نمی‌تواند با [[Disk|دیسک‌های]] ساتا کار کند. هم‌چنین [[Driver|راه‌اندازهای]] سخت‌افزاری آن محدود هستند و ممکن است با خیلی از دستگاه‌ها کار نکند. گرچه برای مثال [[Server|سرویس‌دهنده‌های]] پایگاه وب گنو هم‌اکنون به وسیله‌ی گنو/هرد راه‌اندازی شده اند، ولی برای داشتن یک تجربه‌ی کاربری بدون مشکل با این سیستم‌عامل برای کارهای روزمره، بهترین روش استفاده از آن بر روی یک [[Virtual Machine|مجازی‌ساز]] مانند [[kvm]] است، زیرا که راه‌اندازهای مربوط به دستگاه‌های شبیه‌سازی شده‌ی رایج برای گنو هرد نوشته شده اند.&lt;br /&gt;
&lt;br /&gt;
=هرد و لینوکس=&lt;br /&gt;
[[Stallman|ریچارد استالمن]] رابطه‌ی بین هرد و [[Linux|لینوکس]] را این‌گونه شرح می‌دهد:&lt;br /&gt;
&lt;br /&gt;
«بعضی‌وقت‌ها مردم می‌پرسند «چرا بنیاد نرم‌افزار آزاد به‌جای استفاده از لینوکس، یک کرنل آزاد جدید را توسعه داد؟» این پرسش معقولی است. پاسخ آن به صورت خلاصه این است که ما با این پرسش مواجه نبودیم.&lt;br /&gt;
&lt;br /&gt;
هنگامی که ما در ۱۹۹۰ شروع به توسعه‌ی هرد کردیم، پرسشی که با آن مواجه بودیم این بود که «چگونه می‌توانیم کرنلی آزاد برای سیستم‌عامل گنو داشته باشیم؟» در آن زمان هیچ کرنل شبه‌یونیکس آزادی وجود نداشت و ما هیچ تلاش دیگری را هم برای نوشتنش نمی‌شناختیم. تنها راهی که می‌توانستیم برای داشتن یک کرنل آزاد انتظار داشته باشیم این بود که خودمان بنویسیمش، پس شروع کردیم.&lt;br /&gt;
&lt;br /&gt;
ما پس از انتشار لینوکس درباره‌ی آن شنیدیم. در آن زمان پرسشی که دربرابر ما قرار داشت این بود که «آیا باید پروژه‌ی هرد را لغو کنیم و به‌جایش از لینوکس استفاده کنیم؟» ما شنیدیم که لینوکس به هیچ‌وجه قابل انتقال نیست (این گزاره شاید امروزه درست نباشد، ولی در آن زمان این‌گونه گفته می‌شد). هم‌چنین ما شنیدیم که لینوکس از نظر معماری معادل دقیق یونیکس است، در حالی که کار ما به چیزی بسیار پرقدرت‌تر می‌انجامید.&lt;br /&gt;
&lt;br /&gt;
با توجّه به سال‌ها کاری که تا آن زمان بر روی هرد انجام شده بود، ما تصمیم گرفتیم که آن را به جای دور انداختن، به اتمام برسانیم.&lt;br /&gt;
&lt;br /&gt;
اگر ما با این پرسشی که مردم می‌پرسند مواجه بودیم (یعنی لینوکس موجود بود و می‌خواستیم تصمیم بگیریم که کرنل دیگری بنویسیم یا نه)، این کار را نمی‌کردیم. به جای آن پروژه‌ی دیگری را برای کار بر رویش انتخاب می‌کردیم؛ چیزی که کاری را انجام دهد که هیج نرم‌افزار آزاد موجودی نمی‌توانست.&lt;br /&gt;
&lt;br /&gt;
ولی ما هرد را قبل از آن شروع کردیم و اکنون نیز آن را به مرحله‌ی اجرایی رسانده‌ایم و امیدواریم که معماری برتر آن، سیستم‌عامل‌های آزاد را قدرتمندتر کند.»&lt;br /&gt;
&lt;br /&gt;
=نصب=&lt;br /&gt;
برای استفاده از گنو/هرد، آسان‌ترین راه استفاده از یک تصویر از پیش نصب شده است. این تصویر را برای توزیع دبیان می‌توان از این‌جا دریافت کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و با این دستور از حالت فشرده خارج کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ tar xzf debian-hurd.img.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال می‌توان آن را مستقیما روی kvm اجرا کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ kvm -drive file=debian-hurd*.img,cache=writeback -m 1G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا آن را تبدیل به دیسک virtualbox کرد تا از داخل این برنامه آن را مدیریت کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ VBoxManage convertfromraw debian-hurd.img debian-hurd.vdi --format vdi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال می‌توان به صورت عادی از آن استفاده کرد.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[رده:کرنل‌ها]]&lt;br /&gt;
[[رده:گنو]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=XFCE&amp;diff=753</id>
		<title>XFCE</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=XFCE&amp;diff=753"/>
				<updated>2015-07-04T16:42:05Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[پرونده:Xfce4.12.jpg|400px|thumb|left|نمونه‌ای از میزکار ایکس اف سی ای نسخه ۴.۱۲]]&lt;br /&gt;
[[DE|میزکار]] XFCE که به شکل چهار حرف مجزا از یکدیگر ایکس.اف.سی.ای. تلفظ می‌شود، نرم افزاری آزاد و یک محیط کار برای سیستم‌های مشابه [[Unix|یونیکس]] همچون [[GNU/Linux|گنو/لینوکس]] و [[BSD|بی.اس.دی.]] است. هدف XFCE سرعت و سبکی در عین حفظ زیبایی و کاربری آسان بوده است. این میزکار بر اساس اجزای مستقل از یکدیگر طراحی شده که به همراه هم، میزکار را تکمیل می‌کنند و توسّط کاربر قابل کم و زیاد شدن یا جایگزینی هستند.&lt;br /&gt;
&lt;br /&gt;
[[رده:میزکارها و پوسته‌ها]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%AF%D9%86%D9%88/%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3&amp;diff=752</id>
		<title>گنو/لینوکس</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%AF%D9%86%D9%88/%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3&amp;diff=752"/>
				<updated>2015-07-04T16:41:23Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''گنو/لینوکس''' (GNU/Linux در انگلیسی) [[OS|سیستم‌عاملی]] است که از ترکیب [[GNU OS|سیستم‌عامل گنو]] و [[kernel|کرنلی]] به نام [[Linux|لینوکس]] به وجود آمده است. [[kernel|کرنل]] اصلی خود سیستم‌عامل گنو، [[گنو هرد|هِرد]] نام دارد.&lt;br /&gt;
&lt;br /&gt;
[[رده:تعاریف]]&lt;br /&gt;
[[رده:سیستم‌عامل‌ها]]&lt;br /&gt;
[[رده:گنو]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=Deb&amp;diff=749</id>
		<title>Deb</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=Deb&amp;diff=749"/>
				<updated>2015-07-04T15:31:17Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''deb''' [[format|قالب]] [[file|پرونده‌]] های قابل نصب در [[Distro|توزیع‌های]] مبتنی بر [[دبیان]] از جمله [[اوبونتو]] است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ file r-base_3.2.0-4vivid0_all.deb&lt;br /&gt;
r-base_3.2.0-4vivid0_all.deb: Debian binary package (format 2.0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
از نظر فنی پرونده‌های deb یک بایگانی [[ar]] استاندارد هستند که شامل دو بایگانی [[tar]] است که با [[gzip]]، [[Bzip2]] یا قالب‌های دیگر فشرده شده‌اند. یکی از این دو پرونده حاوی اطّلاعات کنترلی و دیگری حاوی اطّلاعات برنامه‌ی اصلی است.&lt;br /&gt;
&lt;br /&gt;
پایه‌ای‌ترین [[Software|نرم‌افزار]] کار با پرونده‌های دب، [[dpkg]] است، ولی معمولاً مدیران سامانه برای کار با این بسته‌ها، از برنامه‌های سطح بالاتری چون [[APT]] یا [[gdebi]] یا [[USC|مرکز نرم‌افزاری اوبونتو]] بهره می‌گیرند.&lt;br /&gt;
&lt;br /&gt;
[[رده:قالب‌ها]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Narayana&amp;diff=748</id>
		<title>کاربر:Narayana</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Narayana&amp;diff=748"/>
				<updated>2015-07-04T15:06:26Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
سلام.&lt;br /&gt;
*لینوکس یا به اصرار پرتکرار     [[کاربر:Danialbehzadi|بعضیااااااا]]     گنو/لینوکس, جاییست که همیشه کار برای انجام دادن هست . &lt;br /&gt;
*دنیای لینوکس مثل یک بیمارستان پر از بیمار است که هریک بیماری‌ای دارند و هیچیک سالم نیستند و به اصطلاح یک‌جایشان میلنگد بنابراین در اینجا از آسایش و نفس راحت، خبری نیست پس لینوکس فقط علاقه میخواهد نه دلیل...&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Narayana&amp;diff=735</id>
		<title>کاربر:Narayana</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Narayana&amp;diff=735"/>
				<updated>2015-07-04T14:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
سلام.&lt;br /&gt;
لینوکس یا به اصرار پرتکرار [[کاربر:Danialbehzadi|بعضیااااااا]] گنو/لینوکس, جاییست که همیشه کار برای انجام دادن هست.&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=719</id>
		<title>تعمیر گراب</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=719"/>
				<updated>2015-07-03T18:05:18Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: /* پایان */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;اگر پس از نصب [[Ubuntu|اوبونتو]]، تغییراتی در ترتیب دیسک‌ها بدهید یا سیستم‌عامل‌های غیراستانداری مانند [[Windows|ویندوز]] را روی رایانه‌ی خود نصب کنید، ممکن است [[grub|گراب]] خود را از دست بدهید. در چنین مواردی باید گراب را دوباره نصب کرده یا به اصطلاح تعمیر کنید.&lt;br /&gt;
&lt;br /&gt;
=پیش‌نیازها=&lt;br /&gt;
* [[Live Media|رسانهٔ زندهٔ]] اوبونتوی سازگار با [[Arch|معماری]] و نگارش گراب اوبونتویی که روی دیسک شماست.&lt;br /&gt;
&lt;br /&gt;
=روش کار=&lt;br /&gt;
ابتدا رایانه را با رسانهٔ زنده [[Boot|راه‌اندازی]] کرده و در نشست زنده، [[Termianl|پایانه]] را بگشایید.&lt;br /&gt;
&lt;br /&gt;
==سوار کردن پارتیشن‌ها==&lt;br /&gt;
لازم است بدانید که [[پارتیشن]] ریشه را در کجا نصب کرده‌اید. دستور [[fdisk]] می‌تواند در این زمینه به شما کمک کند.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo fdisk -l&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
فرض می‌کنیم ریشه‌ی اوبونتو در پارتیشن &amp;lt;code&amp;gt;dev/sda1/&amp;lt;/code&amp;gt; باشد. این پارتیشن را روی [[File System|سامانه‌پروندهٔ]] توزیع زنده [[mount|سوار]] می‌کنیم.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mount /dev/sda1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر هنگام نصب توزیع خود، پارتیشن جدایی (فرض می‌شود&amp;lt;code&amp;gt;/dev/sda2&amp;lt;/code&amp;gt;) برای boot در نظر گرفته بوده‌اید با دستور زیر boot را هم سوار نمایید:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mount  /dev/sda2 /mnt/boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای شناخت صحیح پارتیشن ها در گراب باید شاخه‌های مجازی dev و proc را از توزیع زنده‌ای که هم‌اکنون در حال کار با آن هستیم، روی سامانه‌پرونده‌ی سیستم اصلی خود سوار کنیم:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mount --bind /dev/ /mnt/dev&lt;br /&gt;
$ sudo mount --bind /proc /mnt/proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==نصب گراب==&lt;br /&gt;
حال باید گراب را روی دیسک اصلی خود که راه‌انداز [[Bios|بایاس]] به [[MBR|رکورد راه‌اندازی اصلی]] آن اشاره می‌کند، نصب کرد. با فرض این که &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; دیسک اصلی شماست:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo grub-install --root-directory=/mnt/ /dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==رفتن به محیط اوبونتوی اصلی==&lt;br /&gt;
سپس به وسیلهٔ [[chroot]] به توزیع اصلی نصب‌شدهٔ خود وارد می‌شویم:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo chroot /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===به‌روز رسانی گراب===&lt;br /&gt;
حال باید فهرست گراب را بر اساس آن‌چه روی دیسک وجود دارد به‌روز رسانی کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;# update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==خروج==&lt;br /&gt;
سپس با زدن دستور &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt; یا فشردن دکمه‌های ctrl+d از محیط chroot خارج می‌شویم. پس از آن باید پارتیشن‌های سوار شده را پیاده کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo umount /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==پایان==&lt;br /&gt;
نهایتا سیستم را راه‌اندازی مجدّد کنید و با خارج کردن رسانهٔ زنده، از طریق گراب به اوبونتوی اصلی خود وارد شوید.&lt;br /&gt;
&lt;br /&gt;
[[رده:آموزش‌ها]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=718</id>
		<title>تعمیر گراب</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=718"/>
				<updated>2015-07-03T18:03:38Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;اگر پس از نصب [[Ubuntu|اوبونتو]]، تغییراتی در ترتیب دیسک‌ها بدهید یا سیستم‌عامل‌های غیراستانداری مانند [[Windows|ویندوز]] را روی رایانه‌ی خود نصب کنید، ممکن است [[grub|گراب]] خود را از دست بدهید. در چنین مواردی باید گراب را دوباره نصب کرده یا به اصطلاح تعمیر کنید.&lt;br /&gt;
&lt;br /&gt;
=پیش‌نیازها=&lt;br /&gt;
* [[Live Media|رسانهٔ زندهٔ]] اوبونتوی سازگار با [[Arch|معماری]] و نگارش گراب اوبونتویی که روی دیسک شماست.&lt;br /&gt;
&lt;br /&gt;
=روش کار=&lt;br /&gt;
ابتدا رایانه را با رسانهٔ زنده [[Boot|راه‌اندازی]] کرده و در نشست زنده، [[Termianl|پایانه]] را بگشایید.&lt;br /&gt;
&lt;br /&gt;
==سوار کردن پارتیشن‌ها==&lt;br /&gt;
لازم است بدانید که [[پارتیشن]] ریشه را در کجا نصب کرده‌اید. دستور [[fdisk]] می‌تواند در این زمینه به شما کمک کند.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo fdisk -l&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
فرض می‌کنیم ریشه‌ی اوبونتو در پارتیشن &amp;lt;code&amp;gt;dev/sda1/&amp;lt;/code&amp;gt; باشد. این پارتیشن را روی [[File System|سامانه‌پروندهٔ]] توزیع زنده [[mount|سوار]] می‌کنیم.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mount /dev/sda1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر هنگام نصب توزیع خود، پارتیشن جدایی (فرض می‌شود&amp;lt;code&amp;gt;/dev/sda2&amp;lt;/code&amp;gt;) برای boot در نظر گرفته بوده‌اید با دستور زیر boot را هم سوار نمایید:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mount  /dev/sda2 /mnt/boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای شناخت صحیح پارتیشن ها در گراب باید شاخه‌های مجازی dev و proc را از توزیع زنده‌ای که هم‌اکنون در حال کار با آن هستیم، روی سامانه‌پرونده‌ی سیستم اصلی خود سوار کنیم:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mount --bind /dev/ /mnt/dev&lt;br /&gt;
$ sudo mount --bind /proc /mnt/proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==نصب گراب==&lt;br /&gt;
حال باید گراب را روی دیسک اصلی خود که راه‌انداز [[Bios|بایاس]] به [[MBR|رکورد راه‌اندازی اصلی]] آن اشاره می‌کند، نصب کرد. با فرض این که &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; دیسک اصلی شماست:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo grub-install --root-directory=/mnt/ /dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==رفتن به محیط اوبونتوی اصلی==&lt;br /&gt;
سپس به وسیلهٔ [[chroot]] به توزیع اصلی نصب‌شدهٔ خود وارد می‌شویم:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo chroot /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===به‌روز رسانی گراب===&lt;br /&gt;
حال باید فهرست گراب را بر اساس آن‌چه روی دیسک وجود دارد به‌روز رسانی کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;# update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==خروج==&lt;br /&gt;
سپس با زدن دستور &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt; یا فشردن دکمه‌های ctrl+d از محیط chroot خارج می‌شویم. پس از آن باید پارتیشن‌های سوار شده را پیاده کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo umount /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==پایان==&lt;br /&gt;
نهایتا را راه‌اندازی مجدّد کنید و از با خارج کردن رسانهٔ زنده، از طریق گراب به اوبونتوی اصلی خود وارد شوید.&lt;br /&gt;
&lt;br /&gt;
[[رده:آموزش‌ها]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=717</id>
		<title>تعمیر گراب</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=717"/>
				<updated>2015-07-03T18:02:13Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;اگر پس از نصب [[Ubuntu|اوبونتو]]، تغییراتی در ترتیب دیسک‌ها بدهید یا سیستم‌عامل‌های غیراستانداری مانند [[Windows|ویندوز]] را روی رایانه‌ی خود نصب کنید، ممکن است [[grub|گراب]] خود را از دست بدهید. در چنین مواردی باید گراب را دوباره نصب کرده یا به اصطلاح تعمیر کنید.&lt;br /&gt;
&lt;br /&gt;
=پیش‌نیازها=&lt;br /&gt;
* [[Live Media|رسانهٔ زندهٔ]] اوبونتوی سازگار با [[Arch|معماری]] و نگارش گراب اوبونتویی که روی دیسک شماست.&lt;br /&gt;
&lt;br /&gt;
=روش کار=&lt;br /&gt;
ابتدا رایانه را با رسانهٔ زنده [[Boot|راه‌اندازی]] کرده و در نشست زنده، [[Termianl|پایانه]] را بگشایید.&lt;br /&gt;
&lt;br /&gt;
==سوار کردن پارتیشن‌ها==&lt;br /&gt;
لازم است بدانید که [[پارتیشن]] ریشه را در کجا نصب کرده‌اید. دستور [[fdisk]] می‌تواند در این زمینه به شما کمک کند.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo fdisk -l&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
فرض می‌کنیم ریشه‌ی اوبونتو در پارتیشن &amp;lt;code&amp;gt; dev/sda1/ &amp;lt;/code&amp;gt; باشد. این پارتیشن را روی [[File System|سامانه‌پروندهٔ]] توزیع زنده [[mount|سوار]] می‌کنیم.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mount /dev/sda1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر هنگام نصب توزیع خود، پارتیشن جدایی ( فرض می‌شود &amp;lt;code&amp;gt; /dev/sda2 &amp;lt;/code&amp;gt; ) برای boot در نظر گرفته بوده‌اید با دستور زیر boot را هم سوار نمایید:&lt;br /&gt;
&amp;lt;pre&amp;gt; $ sudo mount  /dev/sda2 /mnt/boot &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای شناخت صحیح پارتیشن ها در گراب باید شاخه‌های مجازی dev و proc را از توزیع زنده‌ای که هم‌اکنون در حال کار با آن هستیم، روی سامانه‌پرونده‌ی سیستم اصلی خود سوار کنیم:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mount --bind /dev/ /mnt/dev&lt;br /&gt;
$ sudo mount --bind /proc /mnt/proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==نصب گراب==&lt;br /&gt;
حال باید گراب را روی دیسک اصلی خود که راه‌انداز [[Bios|بایاس]] به [[MBR|رکورد راه‌اندازی اصلی]] آن اشاره می‌کند، نصب کرد. با فرض این که &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; دیسک اصلی شماست:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo grub-install --root-directory=/mnt/ /dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==رفتن به محیط اوبونتوی اصلی==&lt;br /&gt;
سپس به وسیلهٔ [[chroot]] به توزیع اصلی نصب‌شدهٔ خود وارد می‌شویم:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo chroot /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===به‌روز رسانی گراب===&lt;br /&gt;
حال باید فهرست گراب را بر اساس آن‌چه روی دیسک وجود دارد به‌روز رسانی کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;# update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==خروج==&lt;br /&gt;
سپس با زدن دستور &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt; یا فشردن دکمه‌های ctrl+d از محیط chroot خارج می‌شویم. پس از آن باید پارتیشن‌های سوار شده را پیاده کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo umount /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==پایان==&lt;br /&gt;
نهایتا را راه‌اندازی مجدّد کنید و از با خارج کردن رسانهٔ زنده، از طریق گراب به اوبونتوی اصلی خود وارد شوید.&lt;br /&gt;
&lt;br /&gt;
[[رده:آموزش‌ها]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=716</id>
		<title>تعمیر گراب</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=716"/>
				<updated>2015-07-03T17:59:44Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: /* سوار کردن پارتیشن‌ها */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;اگر پس از نصب [[Ubuntu|اوبونتو]]، تغییراتی در ترتیب دیسک‌ها بدهید یا سیستم‌عامل‌های غیراستانداری مانند [[Windows|ویندوز]] را روی رایانه‌ی خود نصب کنید، ممکن است [[grub|گراب]] خود را از دست بدهید. در چنین مواردی باید گراب را دوباره نصب کرده یا به اصطلاح تعمیر کنید.&lt;br /&gt;
&lt;br /&gt;
=پیش‌نیازها=&lt;br /&gt;
* [[Live Media|رسانهٔ زندهٔ]] اوبونتوی سازگار با [[Arch|معماری]] و نگارش گراب اوبونتویی که روی دیسک شماست.&lt;br /&gt;
&lt;br /&gt;
=روش کار=&lt;br /&gt;
ابتدا رایانه را با رسانهٔ زنده [[Boot|راه‌اندازی]] کرده و در نشست زنده، [[Termianl|پایانه]] را بگشایید.&lt;br /&gt;
&lt;br /&gt;
==سوار کردن پارتیشن‌ها==&lt;br /&gt;
لازم است بدانید که [[پارتیشن]] ریشه را در کجا نصب کرده‌اید. دستور [[fdisk]] می‌تواند در این زمینه به شما کمک کند.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo fdisk -l&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
فرض می‌کنیم ریشه‌ی اوبونتو در پارتیشن &amp;lt;code&amp;gt;dev/sda1&amp;lt;/code&amp;gt; باشد. این پارتیشن را روی [[File System|سامانه‌پروندهٔ]] توزیع زنده [[mount|سوار]] می‌کنیم.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mount /dev/sda1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر هنگام نصب توزیع خود، پارتیشن جدایی (فرض می‌شود &amp;lt;code&amp;gt;/dev/sda2&amp;lt;/code&amp;gt;) برای boot در نظر گرفته بوده‌اید با دستور زیر boot را هم سوار نمایید:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mount  dev/sda2/ /mnt/boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای شناخت صحیح پارتیشن ها در گراب باید شاخه‌های مجازی dev و proc را از توزیع زنده‌ای که هم‌اکنون در حال کار با آن هستیم، روی سامانه‌پرونده‌ی سیستم اصلی خود سوار کنیم:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mount --bind /dev/ /mnt/dev&lt;br /&gt;
$ sudo mount --bind /proc /mnt/proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==نصب گراب==&lt;br /&gt;
حال باید گراب را روی دیسک اصلی خود که راه‌انداز [[Bios|بایاس]] به [[MBR|رکورد راه‌اندازی اصلی]] آن اشاره می‌کند، نصب کرد. با فرض این که &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; دیسک اصلی شماست:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo grub-install --root-directory=/mnt/ /dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==رفتن به محیط اوبونتوی اصلی==&lt;br /&gt;
سپس به وسیلهٔ [[chroot]] به توزیع اصلی نصب‌شدهٔ خود وارد می‌شویم:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo chroot /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===به‌روز رسانی گراب===&lt;br /&gt;
حال باید فهرست گراب را بر اساس آن‌چه روی دیسک وجود دارد به‌روز رسانی کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;# update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==خروج==&lt;br /&gt;
سپس با زدن دستور &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt; یا فشردن دکمه‌های ctrl+d از محیط chroot خارج می‌شویم. پس از آن باید پارتیشن‌های سوار شده را پیاده کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo umount /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==پایان==&lt;br /&gt;
نهایتا را راه‌اندازی مجدّد کنید و از با خارج کردن رسانهٔ زنده، از طریق گراب به اوبونتوی اصلی خود وارد شوید.&lt;br /&gt;
&lt;br /&gt;
[[رده:آموزش‌ها]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Narayana&amp;diff=715</id>
		<title>کاربر:Narayana</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Narayana&amp;diff=715"/>
				<updated>2015-07-03T17:47:27Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
سلام.&lt;br /&gt;
لینوکس یا به اصرار پرتکرار  [http://wiki.ubuntu.ir/wiki/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Danialbehzadi بعضیااااااا]  گنو/لینوکس جاییست که همیشه کار برای انجام دادن هست&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Narayana&amp;diff=714</id>
		<title>کاربر:Narayana</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Narayana&amp;diff=714"/>
				<updated>2015-07-03T17:33:48Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
سلام.&lt;br /&gt;
لینوکس یا بقول  [http://wiki.ubuntu.ir/wiki/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Danialbehzadi بعضیااااااا]  گنو/لینوکس جاییست که همیشه کار برای انجام دادن هست&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Narayana&amp;diff=713</id>
		<title>کاربر:Narayana</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Narayana&amp;diff=713"/>
				<updated>2015-07-03T17:23:14Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;سلام&lt;br /&gt;
لینوکس یا بقول بعضیااااااا گنو/لینوکس جاییست که همیشه کار برای انجام دادن هست&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Narayana&amp;diff=712</id>
		<title>کاربر:Narayana</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:Narayana&amp;diff=712"/>
				<updated>2015-07-03T17:20:39Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: صفحه‌ای تازه حاوی «سلام» ایجاد کرد&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;سلام&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=709</id>
		<title>تعمیر گراب</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=709"/>
				<updated>2015-07-03T16:48:50Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: /* سوار کردن پارتیشن‌ها */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;اگر پس از نصب [[Ubuntu|اوبونتو]]، تغییراتی در ترتیب دیسک‌ها بدهید یا سیستم‌عامل‌های غیراستانداری مانند [[Windows|ویندوز]] را روی رایانه‌ی خود نصب کنید، ممکن است [[grub|گراب]] خود را از دست بدهید. در چنین مواردی باید گراب را دوباره نصب کرده یا به اصطلاح تعمیر کنید.&lt;br /&gt;
&lt;br /&gt;
=پیش‌نیازها=&lt;br /&gt;
* [[Live Media|رسانهٔ زندهٔ]] اوبونتوی سازگار با [[Arch|معماری]] و نگارش گراب اوبونتویی که روی دیسک شماست.&lt;br /&gt;
&lt;br /&gt;
=روش کار=&lt;br /&gt;
ابتدا رایانه را با رسانهٔ زنده [[Boot|راه‌اندازی]] کرده و در نشست زنده، [[Termianl|پایانه]] را بگشایید.&lt;br /&gt;
&lt;br /&gt;
==سوار کردن پارتیشن‌ها==&lt;br /&gt;
لازم است بدانید که [[پارتیشن]] ریشه را در کجا نصب کرده‌اید. دستور [[fdisk]] می‌تواند در این زمینه به شما کمک کند.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo fdisk -l&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
فرض می‌کنیم ریشه‌ی اوبونتو در پارتیشن &amp;lt;code&amp;gt;dev/sda1&amp;lt;/code&amp;gt; باشد. این پارتیشن را روی [[File System|سامانه‌پروندهٔ]] توزیع زنده [[mount|سوار]] می‌کنیم.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mount /dev/sda1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر هنگام نصب توزیع خود، پارتیشن جدایی (فرض می‌شود &amp;lt;code&amp;gt;dev/sda2&amp;lt;/code&amp;gt;) برای boot در نظر گرفته بوده‌اید با دستور زیر boot را هم سوار نمایید:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo mount /dev/sda2 /mnt/boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای شناخت صحیح پارتیشن ها در گراب باید شاخه‌های مجازی dev و proc را از توزیع زنده‌ای که هم‌اکنون در حال کار با آن هستیم، روی سامانه‌پرونده‌ی سیستم اصلی خود سوار کنیم:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mount --bind /dev/ /mnt/dev&lt;br /&gt;
$ sudo mount --bind /proc /mnt/proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==نصب گراب==&lt;br /&gt;
حال باید گراب را روی دیسک اصلی خود که راه‌انداز [[Bios|بایاس]] به [[MBR|رکورد راه‌اندازی اصلی]] آن اشاره می‌کند، نصب کرد. با فرض این که &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; دیسک اصلی شماست:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo grub-install --root-directory=/mnt/ /dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==رفتن به محیط اوبونتوی اصلی==&lt;br /&gt;
سپس به وسیلهٔ [[chroot]] به توزیع اصلی نصب‌شدهٔ خود وارد می‌شویم:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo chroot /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===به‌روز رسانی گراب===&lt;br /&gt;
حال باید فهرست گراب را بر اساس آن‌چه روی دیسک وجود دارد به‌روز رسانی کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;# update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==خروج==&lt;br /&gt;
سپس با زدن دستور &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt; یا فشردن دکمه‌های ctrl+d از محیط chroot خارج می‌شویم. پس از آن باید پارتیشن‌های سوار شده را پیاده کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo umount /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==پایان==&lt;br /&gt;
نهایتا را راه‌اندازی مجدّد کنید و از با خارج کردن رسانهٔ زنده، از طریق گراب به اوبونتوی اصلی خود وارد شوید.&lt;br /&gt;
&lt;br /&gt;
[[رده:آموزش‌ها]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=Curlftpfs&amp;diff=708</id>
		<title>Curlftpfs</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=Curlftpfs&amp;diff=708"/>
				<updated>2015-07-03T16:31:05Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: /* تنظمیات اتوماتیک */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Curlftps''' نرم افزاری برای [[mount|سوار کردن]] [[هاست]] '''[[FTP|FTP]]''' بر روی [[دایرکتوری]] محلی است. از طریق این نرم افزار، کاربر به سادگی می تواند [[فایل سیستم]] داخل شبکه را در سیستم فیزیکی خود، سوار کند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب ==&lt;br /&gt;
&lt;br /&gt;
برای نصب این نرم افزار می توانید از دستور زیر استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install curlftpfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== راهنمای استفاده ==&lt;br /&gt;
&lt;br /&gt;
خلاصه ی دستور به این شکل است:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curlftpfs [options] host path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
به عنوان مثال برای سوار کردن یک هاست FTP بدین شکل عمل می کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkdir /mnt/ftp&lt;br /&gt;
$ sudo curlftpfs -o allow_other user:password@ftp://myftp.com /mnt/ftp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* allow_other= به منظور دسترسی دادن به کاربران غیر از ریشه (root)&lt;br /&gt;
* user:pass= نام کاربری و گذرواژه ی هاست FTP&lt;br /&gt;
&lt;br /&gt;
'''نکته''': اگر به جای آدرس FTP از IP داخل شبکه استفاده می کنید، حتما Port آن را هم مقابل IP وارد کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
سپس با دستور:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /mnt/ftp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
به فایل سیستم خود دسترسی پیدا می کنیم.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* برای جداکردن فایل سیستم FTP از دایرکتوری، کافیه از دستور زیر استفاده کنیم. به طور مثال:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo umount /mnt/ftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== تنظمیات اتوماتیک ==&lt;br /&gt;
&lt;br /&gt;
برای اینکه FTP مورد نظر شما با هر بار روشن شدن سیستم، به صورت اتوماتیک سوار شود، باید فایل &amp;lt;code&amp;gt;etc/fstab/&amp;lt;/code&amp;gt; را توسط [[Nano|Nano]] (یا هر [[Text_Editor|ویرایشگر متن]] دلخواه) به صورت زیر ویرایش کرد: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/fstab&lt;br /&gt;
&lt;br /&gt;
curlftpfs#USER:PASSWORD@ftp.myftp.com /mnt/ftp fuse auto,user,uid=1000,allow_other,_netdev 0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* متن بالا را به آخر فایل fstab اضافه و فایل رو ذخیره می کنیم.&lt;br /&gt;
&lt;br /&gt;
== دستورات تکمیلی ==&lt;br /&gt;
&lt;br /&gt;
برای راهنمایی بیشتر راجع به کارکرد این نرم افزار به صفحه ی راهنمای آن ([[Man_Page|Man page]]) مراجعه کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ man curlftpfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=Curlftpfs&amp;diff=707</id>
		<title>Curlftpfs</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=Curlftpfs&amp;diff=707"/>
				<updated>2015-07-03T16:29:28Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Curlftps''' نرم افزاری برای [[mount|سوار کردن]] [[هاست]] '''[[FTP|FTP]]''' بر روی [[دایرکتوری]] محلی است. از طریق این نرم افزار، کاربر به سادگی می تواند [[فایل سیستم]] داخل شبکه را در سیستم فیزیکی خود، سوار کند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب ==&lt;br /&gt;
&lt;br /&gt;
برای نصب این نرم افزار می توانید از دستور زیر استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install curlftpfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== راهنمای استفاده ==&lt;br /&gt;
&lt;br /&gt;
خلاصه ی دستور به این شکل است:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curlftpfs [options] host path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
به عنوان مثال برای سوار کردن یک هاست FTP بدین شکل عمل می کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkdir /mnt/ftp&lt;br /&gt;
$ sudo curlftpfs -o allow_other user:password@ftp://myftp.com /mnt/ftp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* allow_other= به منظور دسترسی دادن به کاربران غیر از ریشه (root)&lt;br /&gt;
* user:pass= نام کاربری و گذرواژه ی هاست FTP&lt;br /&gt;
&lt;br /&gt;
'''نکته''': اگر به جای آدرس FTP از IP داخل شبکه استفاده می کنید، حتما Port آن را هم مقابل IP وارد کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
سپس با دستور:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /mnt/ftp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
به فایل سیستم خود دسترسی پیدا می کنیم.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* برای جداکردن فایل سیستم FTP از دایرکتوری، کافیه از دستور زیر استفاده کنیم. به طور مثال:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo umount /mnt/ftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== تنظمیات اتوماتیک ==&lt;br /&gt;
&lt;br /&gt;
برای اینکه FTP مورد نظر شما با هر بار روشن شدن سیستم، به صورت اتوماتیک سوار شود، باید فایل &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt; را توسط [[Nano|Nano]] (یا هر [[Text_Editor|ویرایشگر متن]] دلخواه) به صورت زیر ویرایش کرد: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/fstab&lt;br /&gt;
&lt;br /&gt;
curlftpfs#USER:PASSWORD@ftp.myftp.com /mnt/ftp fuse auto,user,uid=1000,allow_other,_netdev 0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* متن بالا را به آخر فایل fstab اضافه و فایل رو ذخیره می کنیم.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== دستورات تکمیلی ==&lt;br /&gt;
&lt;br /&gt;
برای راهنمایی بیشتر راجع به کارکرد این نرم افزار به صفحه ی راهنمای آن ([[Man_Page|Man page]]) مراجعه کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ man curlftpfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=Curlftpfs&amp;diff=706</id>
		<title>Curlftpfs</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=Curlftpfs&amp;diff=706"/>
				<updated>2015-07-03T16:21:26Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Curlftps''' نرم افزاری برای [[mount|سوار کردن]] هاست '''[[FTP|FTP]]''' بر روی [[دایرکتوری]] محلی است. از طریق این نرم افزار، کاربر به سادگی می تواند فایل سیستم داخل شبکه را در سیستم فیزیکی خود، سوار کند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب ==&lt;br /&gt;
&lt;br /&gt;
برای نصب این نرم افزار می توانید از دستور زیر استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install curlftpfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== راهنمای استفاده ==&lt;br /&gt;
&lt;br /&gt;
خلاصه ی دستور به این شکل است:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curlftpfs [options] host path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
به عنوان مثال برای سوار کردن یک هاست FTP بدین شکل عمل می کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo mkdir /mnt/ftp&lt;br /&gt;
$ sudo curlftpfs -o allow_other user:password@ftp://myftp.com /mnt/ftp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* allow_other= به منظور دسترسی دادن به کاربران غیر از ریشه (root)&lt;br /&gt;
* user:pass= نام کاربری و گذرواژه ی هاست FTP&lt;br /&gt;
&lt;br /&gt;
'''نکته''': اگر به جای آدرس FTP از IP داخل شبکه استفاده می کنید، حتما Port آن را هم مقابل IP وارد کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
سپس با دستور:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /mnt/ftp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
به فایل سیستم خود دسترسی پیدا می کنیم.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* برای جداکردن فایل سیستم FTP از دایرکتوری، کافیه از دستور زیر استفاده کنیم. به طور مثال:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo umount /mnt/ftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== تنظمیات اتوماتیک ==&lt;br /&gt;
&lt;br /&gt;
برای اینکه FTP مورد نظر شما با هر بار روشن شدن سیستم، به صورت اتوماتیک سوار شود، باید فایل etc/fstab/ را توسط [[Nano|Nano]] (یا هر [[Text_Editor|ویرایشگر متن]] دلخواه) به صورت زیر ویرایش کرد: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo nano /etc/fstab&lt;br /&gt;
&lt;br /&gt;
curlftpfs#USER:PASSWORD@ftp.myftp.com /mnt/ftp fuse auto,user,uid=1000,allow_other,_netdev 0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* متن بالا را به آخر فایل fstab اضافه و فایل رو ذخیره می کنیم.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== دستورات تکمیلی ==&lt;br /&gt;
&lt;br /&gt;
برای راهنمایی بیشتر راجع به کارکرد این نرم افزار به صفحه ی راهنمای آن ([[Man_Page|Man page]]) مراجعه کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ man curlftpfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=688</id>
		<title>بایگانی بستهٔ شخصی</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=688"/>
				<updated>2015-07-02T18:05:36Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;‫'''بایگانی بستهٔ شخصی''' (به انگلیسی Personal Package Archive) امکانی است که [[Ubuntu|اوبونتو]] در [[Launchpad|لانچ‌پد]] در اختیار توسعه دهندگان قرار می‌دهد تا بتوانند بسته‌های نرم‬‌افزاری خود را در اختیار کاربران قرار دهند. به این ترتیب شما با افزودن مخزن PPA به فهرست [[Repo|مخازن]] سامانهٔ خود، با یک دستور در [[CLI|خط فرمان]] یا با استفاده از [[USC|مرکز نرم‌افزاری اوبونتو]] می توانید آخرین‬ ‫نگارش برنامه‌ها را داشته باشید.‬ ‫‪&lt;br /&gt;
&lt;br /&gt;
=اخطار مهم=&lt;br /&gt;
'''به یاد داشته باشید که بسته‌های موجود در PPA از سوی اوبونتو تایید شده نیستند بنابراین با ریسک خودتان از آن‌ها استفاده کنید.'''&lt;br /&gt;
&lt;br /&gt;
=افزودن=&lt;br /&gt;
هر PPA دارای یک نام یکتا است که در صفحهٔ مشخّصاتش در لانچ‌پد ذکر شده. برای مثال PPA مربوط به Webupd8 که در [https://launchpad.net/~nilarimogard/+archive/webupd8 این نشانی] قرار دارد، دارای نام یکتای &amp;lt;code&amp;gt;ppa:nilarimogard/webupd8&amp;lt;/code&amp;gt; است. برای افزودن این PPA کافی است از این دستور استفاده کنیم:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo add-apt-repository ppa:nilarimogard/webupd8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=استفاده=&lt;br /&gt;
برای استفاده از برنامه‌های داخل PPA باید یک بار فهرست مخازن را به روز کرده و سپس به صورت عادی به نصب برنامه بپردازیم&lt;br /&gt;
&lt;br /&gt;
=حذف=&lt;br /&gt;
برای حذف یک PPA از سامانه به صورت امن از نرم‌افزار [[ppa-purge]] استفاده می‌شود. برای مثال برای حذف PPA مربوط به Webupd8 از این دستور استفاده می‌شود:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo ppa-purge ppa:nilarimogard/webupd8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[رده:مدیر بسته]]&lt;br /&gt;
[[رده:اوبونتو]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%B1%DB%8C%D8%B4%D9%87&amp;diff=687</id>
		<title>ریشه</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%B1%DB%8C%D8%B4%D9%87&amp;diff=687"/>
				<updated>2015-07-02T17:37:39Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''ریشه''' یا root در [[OS|سیستم‌عامل‌های]] شبه [[Unix|یونیکس]] اصلی‌ترین کاربر سامانه و مدیر اصلی آن است که به همه‌چیز دسترسی کامل دارد.&lt;br /&gt;
در [[Ubuntu|اوبونتو]] این کاربر غیرفعّال است و از طریق [[sudo]] می‌توان دسترسی‌های این کاربر را به کاربران عادی داد.&lt;br /&gt;
&lt;br /&gt;
[[رده:تعاریف]]&lt;br /&gt;
[[رده:ریشه]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=686</id>
		<title>تعمیر گراب</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=686"/>
				<updated>2015-07-02T17:34:41Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ابتدا سیستم را با یک دیسک زنده گنو/لینوکس [[Boot]] کرده و ترمینال را باز نمایید.&lt;br /&gt;
برای انجام عملیات [[chroot]] لازم است بدانید که پارتیشن / (root) توزیع خود را در کجا نصب کرده‌اید، برای نمایش یک لیست از پارتیشن‌های موجود از fdisk استفاده کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo fdisk -l&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
پس از وارد کردن دستور فوق در صورتی که رمز عبور سوال شد، آن را وارد نمایید، عموما در دیسک‌های زنده رمزعبور خواسته نمی‌شود و در صورت نیاز در هنگام لاگین به سیستم یا باز کردن ترمینال رمز عبور دیسک زنده به شما نمایش داده خواهد شد.&lt;br /&gt;
&lt;br /&gt;
در خروجی دستور فوق، پارتیشنی که به عنوان / (root) درنظر گرفته بودید را شناسایی نمایید، این نام باید مشابه &amp;lt;code&amp;gt;dev/sdXY/&amp;lt;/code&amp;gt; باشد. X: یک حرف مانند a یا b و… Y: یک عدد. برای مثال پارتیشن روت ما dev/sda5/ است. حال پارتیشن / (root) را mount میکنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount /dev/sda5 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر در هنگام نصب توزیع خود، پارتیشن مجزایی برای boot/ در نظر گرفته بوده‌اید با دستور زیر boot/ را هم mount نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount /dev/sda6 /mnt/boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در دستور فوق فرض بر این است که &amp;lt;code&amp;gt;dev/sda6/ &amp;lt;/code&amp;gt; پارتیشن boot میباشد. حال با ls یک لیست از شاخه mnt بگیرید تا اطمینان پیدا کنید که عملیات mount صحیح اجرا شده و آماده سایر مراحل هستید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ls /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی باید مشابه زیر باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bin   etc   initrd.img.old   media   proc   sbin   tmp   vmlinuz&lt;br /&gt;
boot home lib mnt   root srv   usr   vmlinuz.old&lt;br /&gt;
dev   initrd.img   lost+found   opt   run   sys   var&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
همینکار را برای شاخه boot/ تکرار نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ls /boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی مشابه زیر دریافت خواهید کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;abi-3.13.0-44-generic&lt;br /&gt;
abi-3.13.0-45-generic&lt;br /&gt;
vmlinuz-3.13.0-45-generic&lt;br /&gt;
...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال باید شاخه های زیر را برروی شاخه مشابه در mnt به صورت bind‌ سوار ( mount ) نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev&lt;br /&gt;
/dev/pts&lt;br /&gt;
/proc&lt;br /&gt;
/sys&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
انجام عملیات Mount به همراه پارامتر bind باعث می‌شود محتویات شاخه های فوق در هر دو محل به صورت یکسان قابل دسترس باشند. نحوه mount کردن به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount –bind foo bar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا به صورت زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount -B foo bar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در نتیجه لازم است شاخه های مذکور را به صورت ذکر شده mount نمایید، برای مثال نحوه مانت شاخه dev/ به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount -B /dev /mnt/dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای راحتی و سرعت بخشیدن به کار میتوان از یک حلقه for استفاده کرد. کد زیر هر ۴ شاخه مذکور را در محل صحیح mount خواهد کرد، این دستور را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر شاخه root را تغییر دهید (chroot).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chroot /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
دستور زیر فایل پیکربندی grub را برای سیستم ایجاد خواهد کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال برای نصب مجدد grub در [[MBR‌]] باید بدانید سیستم از کدام Disk برای بوت شدن استفاده میکند. برای این منظور میتوانید مجددا از fdisk -l‌ استفاده نمایید. آدرس دیسک باید به صورت زیر باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/sdX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که x یک حرف مانند a یا b و یا … می‌باشد، یعنی آدرسی مشابه زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر گراب را بر MBR دیسک مدنظر نصب نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo grub-install /dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس با دستور exit یا فشردن ctrl+d از chroot خارج شوید. حال نوبت آن است که پارتیشن و شاخه‌های mount شده را umount نمایید، به این منظور دستور زیر را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for i in /dev/pts /dev /proc /sys; do sudo umount /mnt$i; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در صورتی که پارتیشن boot/ را مجزا ایجاد و mount کرده بودید آن را umount نمایید، سپس mnt/ را umount کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نهایتا سیستم را reboot نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo shutdown -r now&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=685</id>
		<title>تعمیر گراب</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=685"/>
				<updated>2015-07-02T17:21:05Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ابتدا سیستم را با یک دیسک زنده گنو/لینوکس [[Boot]] کرده و ترمینال را باز نمایید.&lt;br /&gt;
برای انجام عملیات [[chroot]] لازم است بدانید که پارتیشن / (root) توزیع خود را در کجا نصب کرده‌اید، برای نمایش یک لیست از پارتیشن‌های موجود از fdisk استفاده کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo fdisk -l&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
پس از وارد کردن دستور فوق در صورتی که رمز عبور سوال شد، آن را وارد نمایید، عموما در دیسک‌های زنده رمزعبور خواسته نمی‌شود و در صورت نیاز در هنگام لاگین به سیستم یا باز کردن ترمینال رمز عبور دیسک زنده به شما نمایش داده خواهد شد.&lt;br /&gt;
&lt;br /&gt;
در خروجی دستور فوق، پارتیشنی که به عنوان / (root) درنظر گرفته بودید را شناسایی نمایید، این نام باید مشابه &amp;lt;code&amp;gt;dev/sdXY/&amp;lt;/code&amp;gt; باشد. X: یک حرف مانند a یا b و… Y: یک عدد. برای مثال پارتیشن روت ما dev/sda5/ است. حال پارتیشن / (root) را mount میکنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount /dev/sda5 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر در هنگام نصب توزیع خود، پارتیشن مجزایی برای boot/ در نظر گرفته بوده‌اید با دستور زیر boot/ را هم mount نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount /dev/sda6 /mnt/boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در دستور فوق فرض بر این است که dev/sda6/ پارتیشن boot میباشد. حال با ls یک لیست از شاخه mnt بگیرید تا اطمینان پیدا کنید که عملیات mount صحیح اجرا شده و آماده سایر مراحل هستید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ls /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی باید مشابه زیر باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bin   etc   initrd.img.old   media   proc   sbin   tmp   vmlinuz&lt;br /&gt;
boot home lib mnt   root srv   usr   vmlinuz.old&lt;br /&gt;
dev   initrd.img   lost+found   opt   run   sys   var&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
همینکار را برای شاخه boot/ تکرار نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ls /boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی مشابه زیر دریافت خواهید کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;abi-3.13.0-44-generic&lt;br /&gt;
abi-3.13.0-45-generic&lt;br /&gt;
vmlinuz-3.13.0-45-generic&lt;br /&gt;
...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال باید شاخه های زیر را برروی شاخه مشابه در mnt به صورت bind‌ سوار نمایید (mount کنید):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev&lt;br /&gt;
/dev/pts&lt;br /&gt;
/proc&lt;br /&gt;
/sys&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
انجام عملیات Mount به همراه پارامتر bind باعث می‌شود محتویات شاخه های فوق در هر دو محل به صورت یکسان قابل دسترس باشند. نحوه mount کردن به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount –bind foo bar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا به صورت زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount -B foo bar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در نتیجه لازم است شاخه های مذکور را به صورت ذکر شده mount نمایید، برای مثال نحوه مانت شاخه dev/ به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount -B /dev /mnt/dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای راحتی و سرعت بخشیدن به کار میتوان از یک حلقه for استفاده کرد. کد زیر هر ۴ شاخه مذکور را در محل صحیح mount خواهد کرد، این دستور را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر شاخه root را تغییر دهید (chroot).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chroot /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
دستور زیر فایل پیکربندی grub را برای سیستم ایجاد خواهد کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال برای نصب مجدد grub در [[MBR‌]] باید بدانید سیستم از کدام Disk برای بوت شدن استفاده میکند. برای این منظور میتوانید مجددا از fdisk -l‌ استفاده نمایید. آدرس دیسک باید به صورت زیر باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/sdX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که x یک حرف مانند a یا b و یا … می‌باشد، یعنی آدرسی مشابه زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر گراب را بر MBR دیسک مدنظر نصب نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo grub-install /dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس با دستور exit یا فشردن ctrl+d از chroot خارج شوید. حال نوبت آن است که پارتیشن و شاخه‌های mount شده را umount نمایید، به این منظور دستور زیر را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for i in /dev/pts /dev /proc /sys; do sudo umount /mnt$i; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در صورتی که پارتیشن boot/ را مجزا ایجاد و mount کرده بودید آن را umount نمایید، سپس mnt/ را umount کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نهایتا سیستم را reboot نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo shutdown -r now&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=684</id>
		<title>بایگانی بستهٔ شخصی</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=684"/>
				<updated>2015-07-02T16:51:03Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;‫'''بایگانی بستهٔ شخصی''' (به انگلیسی Personal Package Archive) امکانی است که [[Ubuntu|اوبونتو]] در [[Launchpad|لانچ‌پد]] در اختیار توسعه دهندگان قرار می‌دهد تا بتوانند بسته‌های نرم‬‌افزاری خود را در اختیار کاربران قرار دهند. به این ترتیب شما با افزودن مخزن PPA به فهرست [[Repo|مخازن]] سامانهٔ خود، با یک دستور در [[CLI|خط فرمان]] یا با استفاده از [[USC|مرکز نرم‌افزاری اوبونتو]] می توانید آخرین‬ ‫نگارش برنامه‌ها را داشته باشید.‬ ‫‪&lt;br /&gt;
&lt;br /&gt;
=اخطار مهم=&lt;br /&gt;
به یاد داشته باشید که بسته‌های موجود در PPA از سوی اوبونتو تایید شده نیستند بنابراین با ریسک خودتان از آن‌ها استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
=افزودن=&lt;br /&gt;
هر PPA دارای یک نام یکتا است که در صفحهٔ مشخّصاتش در لانچ‌پد ذکر شده. برای مثال PPA مربوط به Webupd8 که در [https://launchpad.net/~nilarimogard/+archive/webupd8 این نشانی] قرار دارد، دارای نام یکتای &amp;lt;code&amp;gt;ppa:nilarimogard/webupd8&amp;lt;/code&amp;gt; است. برای افزودن این PPA کافی است از این دستور استفاده کنیم:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo add-apt-repository ppa:nilarimogard/webupd8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=استفاده=&lt;br /&gt;
برای استفاده از برنامه‌های داخل PPA باید یک بار فهرست مخازن را به روز کرده و سپس به صورت عادی به نصب برنامه بپردازیم&lt;br /&gt;
&lt;br /&gt;
=حذف=&lt;br /&gt;
برای حذف یک PPA از سامانه به صورت امن از نرم‌افزار [[ppa-purge]] استفاده می‌شود. برای مثال برای حذف PPA مربوط به Webupd8 از این دستور استفاده می‌شود:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo ppa-purge ppa:nilarimogard/webupd8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[رده:مدیر بسته]]&lt;br /&gt;
[[رده:اوبونتو]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=683</id>
		<title>تعمیر گراب</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=683"/>
				<updated>2015-07-02T16:48:22Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ابتدا سیستم را با یک دیسک زنده گنو/لینوکس [[Boot]] کرده و ترمینال را باز نمایید.&lt;br /&gt;
برای انجام عملیات [[chroot]] لازم است پارتیشن / (root) که توزیع خود را بر  روی آن نصب کرده‌ایم بدانیم، برای نمایش یک لیست از پارتیشن‌های موجود از fdisk استفاده می‌کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo fdisk -l&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
پس از وارد کردن دستور فوق در صورتی که رمز عبور سوال شد، آن را وارد نمایید، عموما در دیسک‌های زنده رمزعبور خواسته نمی‌شود و در صورت نیاز در هنگام لاگین به سیستم یا باز کردن ترمینال رمز عبور دیسک زنده به شما نمایش داده خواهد شد.&lt;br /&gt;
&lt;br /&gt;
در خروجی دستور فوق، پارتیشنی که به عنوان / (root) درنظر گرفته بودید را شناسایی نمایید، این نام باید مشابه &amp;lt;code&amp;gt;dev/sdXY/&amp;lt;/code&amp;gt; باشد. X: یک حرف مانند a یا b و… Y: یک عدد. برای مثال پارتیشن روت ما dev/sda5/ است. حال پارتیشن / (root) را mount میکنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount /dev/sda5 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر در هنگام نصب توزیع خود، پارتیشن مجزایی برای boot/ در نظر گرفته بوده‌اید با دستور زیر boot/ را هم mount نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount /dev/sda6 /mnt/boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در دستور فوق فرض بر این است که dev/sda6/ پارتیشن boot میباشد. حال با ls یک لیست از شاخه mnt بگیرید تا اطمینان پیدا کنید که عملیات mount صحیح اجرا شده و آماده سایر مراحل هستیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ls /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی باید مشابه زیر باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bin   etc   initrd.img.old   media   proc   sbin   tmp   vmlinuz&lt;br /&gt;
boot home lib mnt   root srv   usr   vmlinuz.old&lt;br /&gt;
dev   initrd.img   lost+found   opt   run   sys   var&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
همینکار را برای شاخه boot/ تکرار نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ls /boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی مشابه زیر دریافت خواهید کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;abi-3.13.0-44-generic&lt;br /&gt;
abi-3.13.0-45-generic&lt;br /&gt;
vmlinuz-3.13.0-45-generic&amp;lt;/pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
حال باید شاخه های زیر را برروی شاخه مشابه در mnt به صورت bind‌ سوار نماییم (mount کنیم):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev&lt;br /&gt;
/dev/pts&lt;br /&gt;
/proc&lt;br /&gt;
/sys&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
انجام عملیات Mount به همراه پارامتر bind باعث می‌شود محتویات شاخه های فوق در هر دو محل به صورت یکسان قابل دسترس باشند. نحوه mount کردن به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount –bind foo bar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا به صورت زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount -B foo bar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در نتیجه لازم است شاخه های مذکور را به صورت ذکر شده mount نماییم، برای مثال نحوه مانت شاخه dev/ به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount -B /dev /mnt/dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای راحتی و سرعت بخشیدن به کار میتوان از یک حلقه for استفاده کرد. کد زیر هر ۴ شاخه مذکور را در محل صحیح mount خواهد کرد، این دستور را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر شاخه root را تغییر میدهم (chroot).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chroot /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
دستور زیر فایل پیکربندی grub را برای سیستم ایجاد خواهد کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال برای نصب مجدد grub در [[MBR‌]] باید بدانیم سیستم از کدام Disk برای بوت شدن استفاده میکند. برای این منظور میتوانید مجددا از fdisk -l‌ استفاده نمایید. آدرس دیسک باید به صورت زیر باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/sdX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که x یک حرف مانند a یا b و یا … می‌باشد، یعنی آدرسی مشابه زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر گراب را بر MBR دیسک مدنظر نصب می‌نماییم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo grub-install /dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس با دستور exit یا فشردن ctrl+d از chroot خارج شوید. حال نوبت آن است که پارتیشن و شاخه‌های mount شده را umount نماییم، به این منظور دستور زیر را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for i in /dev/pts /dev /proc /sys; do sudo umount /mnt$i; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در صورتی که پارتیشن boot/ را مجزا ایجاد و mount کرده بودید آن را umount نمایید، سپس mnt/ را umount کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نهایتا سیستم را reboot نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo shutdown -r now&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=682</id>
		<title>تعمیر گراب</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=682"/>
				<updated>2015-07-02T16:42:59Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ابتدا سیستم را با یک دیسک زنده گنو/لینوکس [[Boot]] کرده و ترمینال را باز نمایید.&lt;br /&gt;
برای انجام عملیات [[chroot]] لازم است پارتیشن / (root) که توزیع خود را بر  روی آن نصب کرده‌ایم بدانیم، برای نمایش یک لیست از پارتیشن‌های موجود از fdisk استفاده می‌کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo fdisk -l&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
پس از وارد کردن دستور فوق در صورتی که رمز عبور سوال شد، آن را وارد نمایید، عموما در دیسک‌های زنده رمزعبور خواسته نمی‌شود و در صورت نیاز در هنگام لاگین به سیستم یا باز کردن ترمینال رمز عبور دیسک زنده به شما نمایش داده خواهد شد.&lt;br /&gt;
&lt;br /&gt;
در خروجی دستور فوق، پارتیشنی که به عنوان / (root) درنظر گرفته بودید را شناسایی نمایید، این نام باید مشابه dev/sdXY/ باشد. X: یک حرف مانند a یا b و… Y: یک عدد برای مثال پارتیشن روت ما dev/sda5/ است. حال پارتیشن / (root) را mount میکنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount /dev/sda5 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر در هنگام نصب توزیع خود، پارتیشن مجزایی برای boot/ در نظر گرفته بوده‌اید با دستور زیر boot/ را هم mount نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount /dev/sda6 /mnt/boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در دستور فوق فرض بر این است که dev/sda6/ پارتیشن boot میباشد. حال با ls یک لیست از شاخه mnt بگیرید تا اطمینان پیدا کنید که عملیات mount صحیح اجرا شده و آماده سایر مراحل هستیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ls /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی باید مشابه زیر باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bin   etc   initrd.img.old   media   proc   sbin   tmp   vmlinuz&lt;br /&gt;
boot home lib mnt   root srv   usr   vmlinuz.old&lt;br /&gt;
dev   initrd.img   lost+found   opt   run   sys   var&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
همینکار را برای شاخه boot/ تکرار نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ls /boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی مشابه زیر دریافت خواهید کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;abi-3.13.0-44-generic&lt;br /&gt;
abi-3.13.0-45-generic&lt;br /&gt;
vmlinuz-3.13.0-45-generic&amp;lt;/pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
حال باید شاخه های زیر را برروی شاخه مشابه در mnt به صورت bind‌ سوار نماییم (mount کنیم):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev&lt;br /&gt;
/dev/pts&lt;br /&gt;
/proc&lt;br /&gt;
/sys&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
انجام عملیات Mount به همراه پارامتر bind باعث می‌شود محتویات شاخه های فوق در هر دو محل به صورت یکسان قابل دسترس باشند. نحوه mount کردن به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount –bind foo bar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا به صورت زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount -B foo bar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در نتیجه لازم است شاخه های مذکور را به صورت ذکر شده mount نماییم، برای مثال نحوه مانت شاخه dev/ به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount -B /dev /mnt/dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای راحتی و سرعت بخشیدن به کار میتوان از یک حلقه for استفاده کرد. کد زیر هر ۴ شاخه مذکور را در محل صحیح mount خواهد کرد، این دستور را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر شاخه root را تغییر میدهم (chroot).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chroot /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
دستور زیر فایل پیکربندی grub را برای سیستم ایجاد خواهد کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال برای نصب مجدد grub در [[MBR‌]] باید بدانیم سیستم از کدام Disk برای بوت شدن استفاده میکند. برای این منظور میتوانید مجددا از fdisk -l‌ استفاده نمایید. آدرس دیسک باید به صورت زیر باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/sdX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که x یک حرف مانند a یا b و یا … می‌باشد، یعنی آدرسی مشابه زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر گراب را بر MBR دیسک مدنظر نصب می‌نماییم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo grub-install /dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس با دستور exit یا فشردن ctrl+d از chroot خارج شوید. حال نوبت آن است که پارتیشن و شاخه‌های mount شده را umount نماییم، به این منظور دستور زیر را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for i in /dev/pts /dev /proc /sys; do sudo umount /mnt$i; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در صورتی که پارتیشن boot/ را مجزا ایجاد و mount کرده بودید آن را umount نمایید، سپس mnt/ را umount کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نهایتا سیستم را reboot نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo shutdown -r now&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=681</id>
		<title>تعمیر گراب</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=681"/>
				<updated>2015-07-02T16:41:23Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ابتدا سیستم را با یک دیسک زنده گنو/لینوکس [[Boot]] کرده و ترمینال را باز نمایید.&lt;br /&gt;
برای انجام عملیات [[chroot]] لازم است پارتیشن / (root) که توزیع خود را بر  روی آن نصب کرده‌ایم بدانیم، برای نمایش یک لیست از پارتیشن‌های موجود از fdisk استفاده می‌کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo fdisk -l&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
پس از وارد کردن دستور فوق در صورتی که رمز عبور سوال شد، آن را وارد نمایید، عموما در دیسک‌های زنده رمزعبور خواسته نمی‌شود و در صورت نیاز در هنگام لاگین به سیستم یا باز کردن ترمینال رمز عبور دیسک زنده به شما نمایش داده خواهد شد.&lt;br /&gt;
&lt;br /&gt;
در خروجی دستور فوق، پارتیشنی که به عنوان / (root) درنظر گرفته بودید را شناسایی نمایید، این نام باید مشابه dev/sdXY/ باشد.&lt;br /&gt;
&lt;br /&gt;
X: یک حرف مانند a یا b و…&lt;br /&gt;
Y: یک عدد&lt;br /&gt;
&lt;br /&gt;
برای مثال پارتیشن روت ما dev/sda5/ است.&lt;br /&gt;
&lt;br /&gt;
حال پارتیشن / (root) را mount میکنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount /dev/sda5 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر در هنگام نصب توزیع خود، پارتیشن مجزایی برای boot/ در نظر گرفته بوده‌اید با دستور زیر boot/ را هم mount نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount /dev/sda6 /mnt/boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در دستور فوق فرض بر این است که dev/sda6/ پارتیشن boot میباشد.&lt;br /&gt;
&lt;br /&gt;
حال با ls یک لیست از شاخه mnt بگیرید تا اطمینان پیدا کنید که عملیات mount صحیح اجرا شده و آماده سایر مراحل هستیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ls /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی باید مشابه زیر باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bin   etc   initrd.img.old   media   proc   sbin   tmp   vmlinuz&lt;br /&gt;
boot home lib mnt   root srv   usr   vmlinuz.old&lt;br /&gt;
dev   initrd.img   lost+found   opt   run   sys   var&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
همینکار را برای شاخه boot/ تکرار نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ls /boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی مشابه زیر دریافت خواهید کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;abi-3.13.0-44-generic&lt;br /&gt;
abi-3.13.0-45-generic&lt;br /&gt;
vmlinuz-3.13.0-45-generic&amp;lt;/pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
حال باید شاخه های زیر را برروی شاخه مشابه در mnt به صورت bind‌ سوار نماییم (mount کنیم):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev&lt;br /&gt;
/dev/pts&lt;br /&gt;
/proc&lt;br /&gt;
/sys&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
انجام عملیات Mount به همراه پارامتر bind باعث می‌شود محتویات شاخه های فوق در هر دو محل به صورت یکسان قابل دسترس باشند. نحوه mount کردن به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount –bind foo bar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا به صورت زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount -B foo bar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در نتیجه لازم است شاخه های مذکور را به صورت ذکر شده mount نماییم، برای مثال نحوه مانت شاخه dev/ به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount -B /dev /mnt/dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای راحتی و سرعت بخشیدن به کار میتوان از یک حلقه for استفاده کرد. کد زیر هر ۴ شاخه مذکور را در محل صحیح mount خواهد کرد، این دستور را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر شاخه root را تغییر میدهم (chroot).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chroot /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
دستور زیر فایل پیکربندی grub را برای سیستم ایجاد خواهد کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال برای نصب مجدد grub در [[MBR‌]] باید بدانیم سیستم از کدام Disk برای بوت شدن استفاده میکند. برای این منظور میتوانید مجددا از fdisk -l‌ استفاده نمایید.&lt;br /&gt;
&lt;br /&gt;
آدرس دیسک باید به صورت زیر باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/sdX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که x یک حرف مانند a یا b و یا … می‌باشد، یعنی آدرسی مشابه زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر گراب را بر MBR دیسک مدنظر نصب می‌نماییم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo grub-install /dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس با دستور exit یا فشردن ctrl+d از chroot خارج شوید.&lt;br /&gt;
&lt;br /&gt;
حال نوبت آن است که پارتیشن و شاخه‌های mount شده را umount نماییم، به این منظور دستور زیر را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for i in /dev/pts /dev /proc /sys; do sudo umount /mnt$i; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در صورتی که پارتیشن boot/ را مجزا ایجاد و mount کرده بودید آن را umount نمایید، سپس mnt/ را umount کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نهایتا سیستم را reboot نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo shutdown -r now&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=680</id>
		<title>تعمیر گراب</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=680"/>
				<updated>2015-07-02T16:37:28Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ابتدا سیستم را با یک دیسک زنده گنو/لینوکس Boot کرده و ترمینال را باز نمایید.&lt;br /&gt;
برای انجام عملیات chroot لازم است پارتیشن / (root) که توزیع خود را بر  روی آن نصب کرده‌ایم بدانیم، برای نمایش یک لیست از پارتیشن‌های موجود از fdisk استفاده می‌کنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo fdisk -l&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
پس از وارد کردن دستور فوق در صورتی که رمز عبور سوال شد، آن را وارد نمایید، عموما در دیسک‌های زنده رمزعبور خواسته نمی‌شود و در صورت نیاز در هنگام لاگین به سیستم یا باز کردن ترمینال رمز عبور دیسک زنده به شما نمایش داده خواهد شد.&lt;br /&gt;
&lt;br /&gt;
در خروجی دستور فوق، پارتیشنی که به عنوان / (root) درنظر گرفته بودید را شناسایی نمایید، این نام باید مشابه dev/sdXY/ باشد.&lt;br /&gt;
&lt;br /&gt;
X: یک حرف مانند a یا b و…&lt;br /&gt;
Y: یک عدد&lt;br /&gt;
&lt;br /&gt;
برای مثال پارتیشن روت ما dev/sda5/ است.&lt;br /&gt;
&lt;br /&gt;
حال پارتیشن / (root) را mount میکنیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount /dev/sda5 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر در هنگام نصب توزیع خود، پارتیشن مجزایی برای boot/ در نظر گرفته بوده‌اید با دستور زیر boot/ را هم mount نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount /dev/sda6 /mnt/boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در دستور فوق فرض بر این است که dev/sda6/ پارتیشن boot میباشد.&lt;br /&gt;
&lt;br /&gt;
حال با ls یک لیست از شاخه mnt بگیرید تا اطمینان پیدا کنید که عملیات mount صحیح اجرا شده و آماده سایر مراحل هستیم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ls /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی باید مشابه زیر باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bin   etc   initrd.img.old   media   proc   sbin   tmp   vmlinuz&lt;br /&gt;
boot home lib mnt   root srv   usr   vmlinuz.old&lt;br /&gt;
dev   initrd.img   lost+found   opt   run   sys   var&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
همینکار را برای شاخه boot/ تکرار نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ls /boot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
خروجی مشابه زیر دریافت خواهید کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;abi-3.13.0-44-generic&lt;br /&gt;
abi-3.13.0-45-generic&lt;br /&gt;
vmlinuz-3.13.0-45-generic&amp;lt;/pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
حال باید شاخه های زیر را برروی شاخه مشابه در mnt به صورت bind‌ سوار نماییم (mount کنیم):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev&lt;br /&gt;
/dev/pts&lt;br /&gt;
/proc&lt;br /&gt;
/sys&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
انجام عملیات Mount به همراه پارامتر bind باعث می‌شود محتویات شاخه های فوق در هر دو محل به صورت یکسان قابل دسترس باشند. نحوه mount کردن به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount –bind foo bar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا به صورت زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount -B foo bar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در نتیجه لازم است شاخه های مذکور را به صورت ذکر شده mount نماییم، برای مثال نحوه مانت شاخه dev/ به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mount -B /dev /mnt/dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای راحتی و سرعت بخشیدن به کار میتوان از یک حلقه for استفاده کرد. کد زیر هر ۴ شاخه مذکور را در محل صحیح mount خواهد کرد، این دستور را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر شاخه root را تغییر میدهم (chroot).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chroot /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
دستور زیر فایل پیکربندی grub را برای سیستم ایجاد خواهد کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo update-grub&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال برای نصب مجدد grub در MBR‌ باید بدانیم سیستم از کدام Disk برای بوت شدن استفاده میکند. برای این منظور میتوانید مجددا از fdisk -l‌ استفاده نمایید.&lt;br /&gt;
&lt;br /&gt;
آدرس دیسک باید به صورت زیر باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/sdX&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
که x یک حرف مانند a یا b و یا … می‌باشد، یعنی آدرسی مشابه زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر گراب را بر MBR دیسک مدنظر نصب می‌نماییم:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo grub-install /dev/sda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس با دستور exit یا فشردن ctrl+d از chroot خارج شوید.&lt;br /&gt;
&lt;br /&gt;
حال نوبت آن است که پارتیشن و شاخه‌های mount شده را umount نماییم، به این منظور دستور زیر را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for i in /dev/pts /dev /proc /sys; do sudo umount /mnt$i; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در صورتی که پارتیشن boot/ را مجزا ایجاد و mount کرده بودید آن را umount نمایید، سپس mnt/ را umount کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo umount /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نهایتا سیستم را reboot نمایید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo shutdown -r now&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=679</id>
		<title>تعمیر گراب</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8&amp;diff=679"/>
				<updated>2015-07-02T16:18:37Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: صفحه‌ای تازه حاوی «ابتدا سیستم را با یک دیسک زنده گنو/لینوکس Boot کرده و ترمینال را باز نمایید. برا...» ایجاد کرد&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ابتدا سیستم را با یک دیسک زنده گنو/لینوکس Boot کرده و ترمینال را باز نمایید.&lt;br /&gt;
برای انجام عملیات chroot لازم است پارتیشن / (root) که توزیع خود را بر  روی آن نصب کرده‌ایم بدانیم، برای نمایش یک لیست از پارتیشن‌های موجود از fdisk استفاده می‌کنیم:&lt;br /&gt;
&lt;br /&gt;
sudo fdisk -l&lt;br /&gt;
&lt;br /&gt;
پس از وارد کردن دستور فوق در صورتی که رمز عبور سوال شد، آن را وارد نمایید، عموما در دیسک‌های زنده رمزعبور خواسته نمی‌شود و در صورت نیاز در هنگام لاگین به سیستم یا باز کردن ترمینال رمز عبور دیسک زنده به شما نمایش داده خواهد شد.&lt;br /&gt;
&lt;br /&gt;
در خروجی دستور فوق، پارتیشنی که به عنوان / (root) درنظر گرفته بودید را شناسایی نمایید، این نام باید مشابه dev/sdXY/ باشد.&lt;br /&gt;
&lt;br /&gt;
X: یک حرف مانند a یا b و…&lt;br /&gt;
Y: یک عدد&lt;br /&gt;
&lt;br /&gt;
برای مثال پارتیشن روت ما dev/sda5/ است.&lt;br /&gt;
&lt;br /&gt;
حال پارتیشن / (root) را mount میکنیم:&lt;br /&gt;
&lt;br /&gt;
sudo mount /dev/sda5 /mnt&lt;br /&gt;
&lt;br /&gt;
اگر در هنگام نصب توزیع خود، پارتیشن مجزایی برای boot/ در نظر گرفته بوده‌اید با دستور زیر boot/ را هم mount نمایید:&lt;br /&gt;
&lt;br /&gt;
sudo mount /dev/sda6 /mnt/boot&lt;br /&gt;
&lt;br /&gt;
در دستور فوق فرض بر این است که dev/sda6/ پارتیشن boot میباشد.&lt;br /&gt;
&lt;br /&gt;
حال با ls یک لیست از شاخه mnt بگیرید تا اطمینان پیدا کنید که عملیات mount صحیح اجرا شده و آماده سایر مراحل هستیم:&lt;br /&gt;
&lt;br /&gt;
ls /mnt&lt;br /&gt;
&lt;br /&gt;
خروجی باید مشابه زیر باشد:&lt;br /&gt;
&lt;br /&gt;
bin   etc   initrd.img.old   media   proc   sbin   tmp   vmlinuz&lt;br /&gt;
boot home lib mnt   root srv   usr   vmlinuz.old&lt;br /&gt;
dev   initrd.img   lost+found   opt   run   sys   var&lt;br /&gt;
&lt;br /&gt;
همینکار را برای شاخه boot/ تکرار نمایید:&lt;br /&gt;
&lt;br /&gt;
ls /boot&lt;br /&gt;
&lt;br /&gt;
خروجی مشابه زیر دریافت خواهید کرد:&lt;br /&gt;
&lt;br /&gt;
abi-3.13.0-44-generic&lt;br /&gt;
abi-3.13.0-45-generic&lt;br /&gt;
vmlinuz-3.13.0-45-generic&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
حال باید شاخه های زیر را برروی شاخه مشابه در mnt به صورت bind‌ سوار نماییم (mount کنیم):&lt;br /&gt;
&lt;br /&gt;
/dev&lt;br /&gt;
/dev/pts&lt;br /&gt;
/proc&lt;br /&gt;
/sys&lt;br /&gt;
&lt;br /&gt;
انجام عملیات Mount به همراه پارامتر bind باعث می‌شود محتویات شاخه های فوق در هر دو محل به صورت یکسان قابل دسترس باشند. نحوه mount کردن به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
sudo mount –bind foo bar&lt;br /&gt;
&lt;br /&gt;
یا به صورت زیر:&lt;br /&gt;
&lt;br /&gt;
sudo mount -B foo bar&lt;br /&gt;
&lt;br /&gt;
در نتیجه لازم است شاخه های مذکور را به صورت ذکر شده mount نماییم، برای مثال نحوه مانت شاخه dev/ به صورت زیر خواهد بود:&lt;br /&gt;
&lt;br /&gt;
sudo mount -B /dev /mnt/dev&lt;br /&gt;
&lt;br /&gt;
برای راحتی و سرعت بخشیدن به کار میتوان از یک حلقه for استفاده کرد. کد زیر هر ۴ شاخه مذکور را در محل صحیح mount خواهد کرد، این دستور را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر شاخه root را تغییر میدهم (chroot).&lt;br /&gt;
&lt;br /&gt;
sudo chroot /mnt&lt;br /&gt;
&lt;br /&gt;
دستور زیر فایل پیکربندی grub را برای سیستم ایجاد خواهد کرد:&lt;br /&gt;
&lt;br /&gt;
sudo update-grub&lt;br /&gt;
&lt;br /&gt;
حال برای نصب مجدد grub در MBR‌ باید بدانیم سیستم از کدام Disk برای بوت شدن استفاده میکند. برای این منظور میتوانید مجددا از fdisk -l‌ استفاده نمایید.&lt;br /&gt;
&lt;br /&gt;
آدرس دیسک باید به صورت زیر باشد:&lt;br /&gt;
&lt;br /&gt;
/dev/sdX&lt;br /&gt;
&lt;br /&gt;
که x یک حرف مانند a یا b و یا … می‌باشد، یعنی آدرسی مشابه زیر:&lt;br /&gt;
&lt;br /&gt;
/dev/sda&lt;br /&gt;
&lt;br /&gt;
حال با دستور زیر گراب را بر MBR دیسک مدنظر نصب می‌نماییم:&lt;br /&gt;
&lt;br /&gt;
sudo grub-install /dev/sda&lt;br /&gt;
&lt;br /&gt;
سپس با دستور exit یا فشردن ctrl+d از chroot خارج شوید.&lt;br /&gt;
&lt;br /&gt;
حال نوبت آن است که پارتیشن و شاخه‌های mount شده را umount نماییم، به این منظور دستور زیر را در یک خط وارد و اجرا نمایید:&lt;br /&gt;
&lt;br /&gt;
for i in /dev/pts /dev /proc /sys; do sudo umount /mnt$i; done&lt;br /&gt;
&lt;br /&gt;
در صورتی که پارتیشن boot/ را مجزا ایجاد و mount کرده بودید آن را umount نمایید، سپس mnt/ را umount کنید:&lt;br /&gt;
&lt;br /&gt;
sudo umount /mnt&lt;br /&gt;
&lt;br /&gt;
نهایتا سیستم را reboot نمایید:&lt;br /&gt;
&lt;br /&gt;
sudo shutdown -r now&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=Apt-fast&amp;diff=678</id>
		<title>Apt-fast</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=Apt-fast&amp;diff=678"/>
				<updated>2015-07-02T15:30:08Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;apt-fast یک [[Script|اسکریپت]] است که امکان بارگیری از مخازن [[APT]] را با اتّصال‌های موازی به کاربر می‌دهد.&lt;br /&gt;
&lt;br /&gt;
=ساختار=&lt;br /&gt;
این برنامه دارای دو پرونده است که یکی برنامه‌ی اصلی بوده و دیگری پرونده‌ی پیکربندی آن است. این اسکریپت از دو نرم‌افزار apt-get و [[aria2]] استفاده می کند.apt-get به طور پیش‌گزیده در [[Ubuntu|اوبونتو]] نصب است ، بنابراین نیاز است برنامهٔ aria2 را نصب کنید.&lt;br /&gt;
&lt;br /&gt;
=روش کار=&lt;br /&gt;
این اسکریپت ابتدا پرونده‌ها را توسط aria2 از مخازن بارگیری کرده و آن‌ها را در مسیر &amp;lt;code&amp;gt;/var/cache/apt/archive/&amp;lt;/code&amp;gt; ذخیره می‌کند، سپس فرمان apt-get را اجرا می‌کند. در این حالت با وجود پرونده‌ها در مسیر مورد نظر، دیگر خود apt-get نسبت به بارگیری آن‌ها اقدام نکرده و شروع به نصب بسته‌ها می‌کند.&lt;br /&gt;
&lt;br /&gt;
=ایجاد=&lt;br /&gt;
==برنامه‌ٔ اصلی==&lt;br /&gt;
اسکریپت را به روش زیر بسازید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano apt-fast&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بعد متن زیر را در آن رونوشت کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# apt-fast v1.8&lt;br /&gt;
# Use this just like aptitude or apt-get for faster package downloading.&lt;br /&gt;
#&lt;br /&gt;
# Copyright: 2008-2012 Matt Parnell, http://www.mattparnell.com&lt;br /&gt;
# Improvements, maintenance, revisions - 2012 Dominique Lasserre&lt;br /&gt;
#&lt;br /&gt;
# You may distribute this file under the terms of the GNU General&lt;br /&gt;
# Public License as published by the Free Software Foundation; either&lt;br /&gt;
# version 3 of the License, or (at your option) any later version.&lt;br /&gt;
#&lt;br /&gt;
[ -n &amp;quot;$DEBUG&amp;quot; ] &amp;amp;&amp;amp; set -xv&lt;br /&gt;
&lt;br /&gt;
# Print colored messages.&lt;br /&gt;
# Usage: msg &amp;quot;message text&amp;quot; &amp;quot;message type&amp;quot; &amp;quot;optional: err&amp;quot;&lt;br /&gt;
# Message types are 'normal', 'hint' or 'warning'. Warnings and messages with a&lt;br /&gt;
# third argument are piped to stderr.&lt;br /&gt;
msg(){&lt;br /&gt;
  case &amp;quot;$2&amp;quot; in&lt;br /&gt;
    normal) beginColor=&amp;quot;$cGreen&amp;quot;;;&lt;br /&gt;
    hint) beginColor=&amp;quot;$cBlue&amp;quot;;;&lt;br /&gt;
    warning) beginColor=&amp;quot;$cRed&amp;quot;;;&lt;br /&gt;
  esac&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$3&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$2&amp;quot; != &amp;quot;warning&amp;quot; ]; then&lt;br /&gt;
echo -e &amp;quot;${aptfast_prefix} ${beginColor}$1${endColor}&amp;quot;;&lt;br /&gt;
  else&lt;br /&gt;
echo -e &amp;quot;${aptfast_prefix} ${beginColor}$1${endColor}&amp;quot;; &amp;gt;&amp;amp;2&lt;br /&gt;
  fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Search for known options and decide if root privileges are needed.&lt;br /&gt;
root=1 # default value: we need root privileges&lt;br /&gt;
option=&lt;br /&gt;
for arguments in $@; do&lt;br /&gt;
if [ &amp;quot;$arguments&amp;quot; == &amp;quot;upgrade&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;install&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;dist-upgrade&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;build-dep&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;install&amp;quot;&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;clean&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;autoclean&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;clean&amp;quot;&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;download&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;download&amp;quot;&lt;br /&gt;
    root=0&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;source&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;source&amp;quot;&lt;br /&gt;
    root=0&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;changelog&amp;quot; ]; then&lt;br /&gt;
root=0&lt;br /&gt;
    break&lt;br /&gt;
fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# To handle priority of options correctly (environment over config file vars)&lt;br /&gt;
# we need to preserve all interesting env variables. As this wouldn't be&lt;br /&gt;
# difficult enough we have to preserve complete env vars (especially if value&lt;br /&gt;
# ist set (even empty) or not) when changing context (sudo)...&lt;br /&gt;
# Set a 'random' string to all unset variables.&lt;br /&gt;
TMP_RANDOM=&amp;quot;13979853562951413&amp;quot;&lt;br /&gt;
TMP_LCK_FILE=&amp;quot;${LCK_FILE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DOWNLOADBEFORE=&amp;quot;${DOWNLOADBEFORE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP__APTMGR=&amp;quot;${_APTMGR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_APTCACHE=&amp;quot;${APTCACHE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DLDIR=&amp;quot;${DLDIR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DLLIST=&amp;quot;${DLLIST-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_LISTDIR=&amp;quot;${LISTDIR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP__MAXNUM=&amp;quot;${MAXNUM-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_aptfast_prefix=&amp;quot;${aptfast_prefix-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_APT_FAST_TIMEOUT=&amp;quot;${APT_FAST_TIMEOUT-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Check for proper privileges.&lt;br /&gt;
# Call explicitly with environment variables to get them into root conext.&lt;br /&gt;
if [ &amp;quot;$root&amp;quot; = 1 -a &amp;quot;$UID&amp;quot; != 0 ]; then&lt;br /&gt;
exec sudo DEBUG=&amp;quot;$DEBUG&amp;quot; \&lt;br /&gt;
            LCK_FILE=&amp;quot;$TMP_LCK_FILE&amp;quot; \&lt;br /&gt;
            DOWNLOADBEFORE=&amp;quot;$TMP_DOWNLOADBEFORE&amp;quot; \&lt;br /&gt;
            _APTMGR=&amp;quot;$TMP__APTMGR&amp;quot; \&lt;br /&gt;
            APTCACHE=&amp;quot;$TMP_APTCACHE&amp;quot; \&lt;br /&gt;
            DLDIR=&amp;quot;$TMP_DLDIR&amp;quot; \&lt;br /&gt;
            DLLIST=&amp;quot;$TMP_DLLIST&amp;quot; \&lt;br /&gt;
            LISTDIR=&amp;quot;$TMP_LISTDIR&amp;quot; \&lt;br /&gt;
            _MAXNUM=&amp;quot;$TMP_MAXNUM&amp;quot; \&lt;br /&gt;
            aptfast_prefix=&amp;quot;$TMP_aptfast_prefix&amp;quot; \&lt;br /&gt;
            APT_FAST_TIMEOUT=&amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot; &amp;quot;$0&amp;quot; &amp;quot;$@&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Define lockfile.&lt;br /&gt;
# Use /tmp as directory because everybody (not only root) has to have write&lt;br /&gt;
# permissions.&lt;br /&gt;
# We need lock for non-root commands too, because we only have one download&lt;br /&gt;
# list file.&lt;br /&gt;
LCK_FILE=&amp;quot;/tmp/apt-fast&amp;quot;&lt;br /&gt;
LCK_FD=99&lt;br /&gt;
&lt;br /&gt;
# Set default package manager, APT cache, temporary download dir,&lt;br /&gt;
# temporary download list file, and maximal parallel downloads&lt;br /&gt;
_APTMGR=apt-get&lt;br /&gt;
eval $(apt-config shell APTCACHE Dir::Cache::archives/d)&lt;br /&gt;
# Check if APT config option Dir::Cache::archives::apt-fast-partial is set.&lt;br /&gt;
eval $(apt-config shell apt_fast_partial Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
if [ -z &amp;quot;$apt_fast_partial&amp;quot; ]; then&lt;br /&gt;
eval $(apt-config -o Dir::Cache::archives::apt-fast-partial=apt-fast shell DLDIR Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
else&lt;br /&gt;
eval $(apt-config shell DLDIR Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
fi&lt;br /&gt;
# Currently not needed.&lt;br /&gt;
eval $(apt-config shell LISTDIR Dir::State::lists/d)&lt;br /&gt;
DLLIST=&amp;quot;/tmp/apt-fast.list&amp;quot;&lt;br /&gt;
_MAXNUM=5&lt;br /&gt;
&lt;br /&gt;
# Prefix in front of apt-fast output:&lt;br /&gt;
aptfast_prefix=&lt;br /&gt;
&lt;br /&gt;
# Set color variables.&lt;br /&gt;
cGreen='\e[0;32m'&lt;br /&gt;
cRed='\e[0;31m'&lt;br /&gt;
cBlue='\e[0;34m'&lt;br /&gt;
endColor='\e[0m'&lt;br /&gt;
&lt;br /&gt;
# Set timout value for apt-fast download confirmation dialog.&lt;br /&gt;
# Value is in seconds.&lt;br /&gt;
APT_FAST_TIMEOUT=60&lt;br /&gt;
&lt;br /&gt;
# Download command.&lt;br /&gt;
_DOWNLOADER='aria2c -c -j ${_MAXNUM} -k1M -s16 -x16 -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
&lt;br /&gt;
# Load config file.&lt;br /&gt;
CONFFILE=&amp;quot;/etc/apt-fast.conf&amp;quot;&lt;br /&gt;
if [ -e &amp;quot;$CONFFILE&amp;quot; ]; then&lt;br /&gt;
source &amp;quot;$CONFFILE&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Now overwrite with preserved values if values were set before (compare with&lt;br /&gt;
# 'random' string).&lt;br /&gt;
[ &amp;quot;$TMP_LCK_FILE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || LCK_FILE=&amp;quot;$TMP_LCK_FILE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DOWNLOADBEFORE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DOWNLOADBEFORE=&amp;quot;$TMP_DOWNLOADBEFORE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP__APTMGR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || _APTMGR=&amp;quot;$TMP__APTMGR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_APTCACHE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || APTCACHE=&amp;quot;$TMP_APTCACHE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DLDIR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DLDIR=&amp;quot;$TMP_DLDIR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DLLIST&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DLLIST=&amp;quot;$TMP_DLLIST&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_LISTDIR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || LISTDIR=&amp;quot;$TMP_LISTDIR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP__MAXNUM&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || _MAXNUM=&amp;quot;$TMP__MAXNUM&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_aptfast_prefix&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || aptfast_prefix=&amp;quot;$TMP_aptfast_prefix&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || APT_FAST_TIMEOUT=&amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Disable colors if not executed in terminal.&lt;br /&gt;
if [ ! -t 1 ]; then&lt;br /&gt;
cGreen=&lt;br /&gt;
  cRed=&lt;br /&gt;
  cBlue=&lt;br /&gt;
  endColor=&lt;br /&gt;
  #FIXME: Time not updated.&lt;br /&gt;
  [ -z &amp;quot;$aptfast_prefix&amp;quot; ] &amp;amp;&amp;amp; aptfast_prefix=&amp;quot;[apt-fast $(date +&amp;quot;%T&amp;quot;)]&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
msg_already_running()&lt;br /&gt;
{&lt;br /&gt;
  msg &amp;quot;apt-fast already running!&amp;quot; &amp;quot;warning&amp;quot;&lt;br /&gt;
  msg &amp;quot;Verify that all apt-fast processes are finished then remove $LCK_FILE.lock and try again.&amp;quot; &amp;quot;hint&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Check if a lock file exists.&lt;br /&gt;
if [ -f &amp;quot;$LCK_FILE.lock&amp;quot; ]; then&lt;br /&gt;
msg_already_running&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# create the lock file and lock it, die on failure&lt;br /&gt;
_create_lock()&lt;br /&gt;
{&lt;br /&gt;
    eval &amp;quot;exec $LCK_FD&amp;gt;\&amp;quot;$LCK_FILE.lock\&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    trap &amp;quot;_remove_lock; exit&amp;quot; EXIT&lt;br /&gt;
    trap &amp;quot;_remove_lock; exit 1;&amp;quot; INT KILL TERM&lt;br /&gt;
&lt;br /&gt;
    flock -n $LCK_FD || { msg_already_running; exit 1; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# unlock and remove the lock file&lt;br /&gt;
_remove_lock()&lt;br /&gt;
{&lt;br /&gt;
    flock -u &amp;quot;$LCK_FD&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
    rm -f &amp;quot;$LCK_FILE.lock&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Check if mirrors are available. And if so add all mirrors to download list.&lt;br /&gt;
get_mirrors(){&lt;br /&gt;
  # Check all mirror lists.&lt;br /&gt;
  for mirrorstr in ${MIRRORS[@]}; do&lt;br /&gt;
    # Build mirrors array from comma separated string.&lt;br /&gt;
    mirrors=( $(echo &amp;quot;$mirrorstr&amp;quot; | sed &amp;quot;s/\([^,]\+\)\s*,\s*/\1 /g&amp;quot;) )&lt;br /&gt;
    # This does not the \s*,\s* trick, so we use sed instead to make it more&lt;br /&gt;
    # robust.&lt;br /&gt;
    #mirrors=( ${mirrorstr//,/ } )&lt;br /&gt;
    # Check for all mirrors if URI of $1 is from mirror. If so add all other&lt;br /&gt;
    # mirrors to (resmirror) list and break all loops.&lt;br /&gt;
    for mirror in ${mirrors[@]}; do&lt;br /&gt;
      # Real expension.&lt;br /&gt;
      if [[ &amp;quot;$1&amp;quot; == &amp;quot;$mirror&amp;quot;* ]]; then&lt;br /&gt;
filepath=${1#${mirror}}&lt;br /&gt;
        # Build list for aria download list.&lt;br /&gt;
        list=&amp;quot;${mirrors[@]}&amp;quot;&lt;br /&gt;
        echo -e &amp;quot;${list// /${filepath}\t}$filepath\n&amp;quot;&lt;br /&gt;
        return 0&lt;br /&gt;
      fi&lt;br /&gt;
done&lt;br /&gt;
done&lt;br /&gt;
  # No other mirrors found.&lt;br /&gt;
  echo &amp;quot;$1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get the package URLs.&lt;br /&gt;
get_uris(){&lt;br /&gt;
  # Add header to overwrite file.&lt;br /&gt;
  echo &amp;quot;# apt-fast mirror list: $(date)&amp;quot; &amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  #NOTE: aptitude doesn't have this functionality, so we use apt-get to get&lt;br /&gt;
  # package URIs.&lt;br /&gt;
  for urimd5 in $(apt-get -y --print-uris $@ | egrep &amp;quot;^'(http(s|)|(s|)ftp)://[^']+'.+ MD5Sum:\S+\s*$&amp;quot; |&lt;br /&gt;
      sed &amp;quot;s/^'\(.\+\)'.*MD5Sum:\(\S\+\)\s*$/\1::MD5Sum:\2/&amp;quot;); do&lt;br /&gt;
  #for urimd5 in $(cat foo | egrep &amp;quot;^'(http(s|)|(s|)ftp)://[^']+'.+ MD5Sum:\S+\s*$&amp;quot; |&lt;br /&gt;
  # sed &amp;quot;s/^'\(.\+\)'.*MD5Sum:\(\S\+\)\s*$/\1::MD5Sum:\2/&amp;quot;); do&lt;br /&gt;
    uri=&amp;quot;${urimd5%::MD5Sum:*}&amp;quot;&lt;br /&gt;
    checksum=&amp;quot;${urimd5#*::MD5Sum:}&amp;quot;&lt;br /&gt;
    echo &amp;quot;$(get_mirrors &amp;quot;$uri&amp;quot;)&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    #echo &amp;quot; dir=$DLDIR&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    echo &amp;quot; checksum=md5=$checksum&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    echo &amp;quot; out=$(basename $uri)&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  done&lt;br /&gt;
  #cat &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  #LCK_RM&lt;br /&gt;
  #exit&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Create and insert a PID number to lockfile.&lt;br /&gt;
_create_lock&lt;br /&gt;
&lt;br /&gt;
# Make sure aria2c (in general first parameter from _DOWNLOADER) is available.&lt;br /&gt;
CMD=&amp;quot;$(echo &amp;quot;$_DOWNLOADER&amp;quot; | sed 's/^\s*\([^ ]\+\).*$/\1/')&amp;quot;&lt;br /&gt;
if [ ! $(command -v &amp;quot;$CMD&amp;quot;) ]; then&lt;br /&gt;
msg &amp;quot;Command not found: $CMD&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  msg &amp;quot;You must configure $CONFFILE to use aria2c or another supported download manager&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Make sure package manager is available.&lt;br /&gt;
if [ ! $(command -v &amp;quot;$_APTMGR&amp;quot;) ]; then&lt;br /&gt;
msg &amp;quot;\`$_APTMGR\` command not available.&amp;quot; &amp;quot;warning&amp;quot;&lt;br /&gt;
  msg &amp;quot;You must configure $CONFFILE to use either apt-get or aptitude.&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Run actions.&lt;br /&gt;
if [ &amp;quot;$option&amp;quot; == &amp;quot;install&amp;quot; ]; then&lt;br /&gt;
msg &amp;quot;\n Working... this may take a while.&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  get_uris $@&lt;br /&gt;
&lt;br /&gt;
  # Check if &amp;quot;assume yes&amp;quot; switch is enabled and if yes enable $DOWNLOADBEFORE.&lt;br /&gt;
  #TODO: Get real value over APT items APT::Get::Assume-Yes and&lt;br /&gt;
  # APT::Get::Assume-No .&lt;br /&gt;
  #FIXME: Composed short options e.g. &amp;quot;-yV&amp;quot; are not recognised - we should use&lt;br /&gt;
  # getopts for proper option passing.&lt;br /&gt;
  for option in $@; do&lt;br /&gt;
if [ &amp;quot;$option&amp;quot; == &amp;quot;-y&amp;quot; ] ||&lt;br /&gt;
        [ &amp;quot;$option&amp;quot; == &amp;quot;--yes&amp;quot; ] ||&lt;br /&gt;
        [ &amp;quot;$option&amp;quot; == &amp;quot;--assume-yes&amp;quot; ]; then&lt;br /&gt;
DOWNLOADBEFORE=true&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;--assume-no&amp;quot; ]; then&lt;br /&gt;
DOWNLOADBEFORE=&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
  # Test /tmp/apt-fast.list file exists AND not zero bytes.&lt;br /&gt;
  # Then download all files from the list.&lt;br /&gt;
  if [ $(cat &amp;quot;$DLLIST&amp;quot; | wc -l) -gt 0 ] &amp;amp;&amp;amp; [ ! &amp;quot;$DOWNLOADBEFORE&amp;quot; ]; then&lt;br /&gt;
cat &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    echo -ne &amp;quot;${cRed} If you want to download the packages on your system press Y else n to abort. [Y/n]: ${endColor}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    while ((!updsys)); do&lt;br /&gt;
read -sn1 -t &amp;quot;$APT_FAST_TIMEOUT&amp;quot; answer || { msg &amp;quot;\n Timed out.&amp;quot; &amp;quot;warning&amp;quot;; exit 1; }&lt;br /&gt;
      case &amp;quot;$answer&amp;quot; in&lt;br /&gt;
        [JjYy]) result=1; updsys=1 ;;&lt;br /&gt;
        [Nn]) result=0; updsys=1 ;;&lt;br /&gt;
        &amp;quot;&amp;quot;) result=1; updsys=1 ;;&lt;br /&gt;
        *) updsys=0 ;;&lt;br /&gt;
      esac&lt;br /&gt;
done&lt;br /&gt;
else&lt;br /&gt;
result=1&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
  # Continue if answer was right or DOWNLOADBEFORE is enabled.&lt;br /&gt;
  if ((result)); then&lt;br /&gt;
if [ -s &amp;quot;$DLLIST&amp;quot; ]; then&lt;br /&gt;
      # Test if apt-fast directory is present where we put packages.&lt;br /&gt;
      if [ ! -d &amp;quot;$DLDIR&amp;quot; ]; then&lt;br /&gt;
mkdir -p -- &amp;quot;$DLDIR&amp;quot;&lt;br /&gt;
      fi&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;$DLDIR&amp;quot; &amp;amp;&amp;gt;/dev/null || exit 1&lt;br /&gt;
&lt;br /&gt;
      eval &amp;quot;${_DOWNLOADER}&amp;quot; # execute downloadhelper command&lt;br /&gt;
      if [ $(find &amp;quot;$DLDIR&amp;quot; -printf . | wc -c) -gt 1 ]; then&lt;br /&gt;
        # Move all packages to the apt install directory by force to ensure&lt;br /&gt;
        # already existing debs which may be incomplete are replaced&lt;br /&gt;
        find -type f -name &amp;quot;*.deb&amp;quot; -execdir mv -ft &amp;quot;$APTCACHE&amp;quot; {} \+&lt;br /&gt;
      fi&lt;br /&gt;
cd - &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
    fi&lt;br /&gt;
else&lt;br /&gt;
exit 1&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
  #FIXME: quotes get lost: apt-fast install &amp;quot;foo*&amp;quot; -&amp;gt; apt-get install foo*&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;clean&amp;quot; ]; then&lt;br /&gt;
  #FIXME: quotes get lost (see above)&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@ &amp;amp;&amp;amp; {&lt;br /&gt;
    find &amp;quot;$DLDIR&amp;quot; -maxdepth 1 -type f -delete&lt;br /&gt;
    [ -f &amp;quot;$DLLIST&amp;quot; ] &amp;amp;&amp;amp; rm -f -- &amp;quot;$DLLIST&amp;quot;*&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;download&amp;quot; ]; then&lt;br /&gt;
get_uris $@&lt;br /&gt;
  eval &amp;quot;${_DOWNLOADER}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;source&amp;quot; ]; then&lt;br /&gt;
msg &amp;quot;\n Working... this may take a while.\n&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
  get_uris $@&lt;br /&gt;
  eval &amp;quot;${_DOWNLOADER}&amp;quot;&lt;br /&gt;
  # We use APT manager here to provide more verbose output. This method is&lt;br /&gt;
  # slightly slower then extractiong packages manually after download but also&lt;br /&gt;
  # more hardened (e.g. some options like --compile are available).&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
  # Uncomment following snippet to extract source directly and comment&lt;br /&gt;
  # both lines before.&lt;br /&gt;
  #while read srcfile; do&lt;br /&gt;
  # # extract only .dsc files&lt;br /&gt;
  # echo &amp;quot;$srcfile&amp;quot; | grep -q '\.dsc$' || continue&lt;br /&gt;
  # dpkg-source -x &amp;quot;$(basename &amp;quot;$srcfile&amp;quot;)&amp;quot;&lt;br /&gt;
  #done &amp;lt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Execute package manager directly if unknown options are passed.&lt;br /&gt;
else&lt;br /&gt;
  #FIXME: quotes get lost (see above)&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# After error or all done remove our lockfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
با نگه داشتن دکمه‌های ctrl+x دستور ذخیره‌سازی تغییرات را داده و سپس y را فشرده و دوبار [[Enter Key|کلید ورود]] را بزنید.&lt;br /&gt;
&lt;br /&gt;
==پروندهٔ پیکربندی==&lt;br /&gt;
پروندهٔ پیکربندی را نیز به این صورت ایجاد کنید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano -w apt-fast.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس متن زیر را رونوشت کنید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
###################################################################&lt;br /&gt;
# CONFIGURATION OPTIONS&lt;br /&gt;
###################################################################&lt;br /&gt;
# Every item has a default value besides MIRRORS (which is unset).&lt;br /&gt;
&lt;br /&gt;
# Use aptitude or apt-get?&lt;br /&gt;
# Note that for outputting the package URI list, we always use apt-get&lt;br /&gt;
# ...since aptitude can't do this&lt;br /&gt;
# Optionally add the FULLPATH to apt-get or apt-rpm or aptitude&lt;br /&gt;
# e.g. /usr/bin/aptitude&lt;br /&gt;
#&lt;br /&gt;
# Default: apt-get&lt;br /&gt;
#&lt;br /&gt;
#_APTMGR=apt-get&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Enable DOWNLOADBEFORE to suppress apt-fast confirmation dialog and download&lt;br /&gt;
# packages directly.&lt;br /&gt;
#&lt;br /&gt;
# Default: dialog enabled&lt;br /&gt;
#&lt;br /&gt;
#DOWNLOADBEFORE=true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Choose mirror list to speed up downloads from same archive. To select some&lt;br /&gt;
# mirrors take a look at your distribution's archive mirror lists.&lt;br /&gt;
# Debian: http://www.debian.org/mirror/list&lt;br /&gt;
# Ubuntu: https://launchpad.net/ubuntu/+archivemirrors&lt;br /&gt;
#&lt;br /&gt;
# Examples:&lt;br /&gt;
# To use some German mirrors and official Debian and Ubuntu archives you can use:&lt;br /&gt;
# MIRRORS=( 'http://ftp.debian.org/debian,http://ftp2.de.debian.org/debian,http://ftp.de.debian.org/debian,ftp://ftp.uni-kl.de/debian'&lt;br /&gt;
# 'http://archive.ubuntu.com/ubuntu,http://de.archive.ubuntu.com/ubuntu,http://ftp.halifax.rwth-aachen.de/ubuntu,http://ftp.uni-kl.de/pub/linux/ubuntu,http://mirror.informatik.uni-mannheim.de/pub/linux/distributions/ubuntu/' )&lt;br /&gt;
# To use French Ubuntu mirrors you can use:&lt;br /&gt;
# MIRRORS=( 'http://fr.archive.ubuntu.com/ubuntu,http://bouyguestelecom.ubuntu.lafibre.info/ubuntu,http://mirror.ovh.net/ubuntu,http://ubuntu-archive.mirrors.proxad.net/ubuntu' )&lt;br /&gt;
#&lt;br /&gt;
# Default: disabled&lt;br /&gt;
#&lt;br /&gt;
#MIRRORS=( 'none' )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Maximum number of connections&lt;br /&gt;
# You can use this value in _DOWNLOADER command. Escape with ${}: ${_MAXNUM}&lt;br /&gt;
#&lt;br /&gt;
# Default: 5&lt;br /&gt;
#&lt;br /&gt;
#_MAXNUM=5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Downloadmanager listfile&lt;br /&gt;
# You can use this value in _DOWNLOADER command. Escape with ${}: ${DLLIST}&lt;br /&gt;
#&lt;br /&gt;
# Default: /tmp/apt-fast.list&lt;br /&gt;
#&lt;br /&gt;
#DLLIST=/tmp/apt-fast.list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Download command to use. Temporary download list is designed for aria2. But&lt;br /&gt;
# you can choose another download command or download manager. It has to&lt;br /&gt;
# support following input file syntax (\t is tab character):&lt;br /&gt;
#&lt;br /&gt;
# # Comment&lt;br /&gt;
# MIRROR1\tMIRROR2\tMIRROR3...&lt;br /&gt;
# out=FILENAME1&lt;br /&gt;
# MIRROR1\tMIRROR2\tMIRROR3...&lt;br /&gt;
# out=FILENAME2&lt;br /&gt;
# ...&lt;br /&gt;
#&lt;br /&gt;
# Examples:&lt;br /&gt;
# aria2c with a proxy (set username, proxy, ip and password!)&lt;br /&gt;
# _DOWNLOADER='aria2c -c 20 -j ${_MAXNUM} --http-proxy=http://username:password@proxy_ip:proxy_port -i ${DLLIST}'&lt;br /&gt;
#&lt;br /&gt;
# Default: _DOWNLOADER='aria2c -c -j ${_MAXNUM} -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
#&lt;br /&gt;
#_DOWNLOADER='aria2c -c -j ${_MAXNUM} -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Download temp folder for Downloadmanager&lt;br /&gt;
# example /tmp/apt-fast. Standard is /var/cache/archives/apt-fast&lt;br /&gt;
#&lt;br /&gt;
# Default: /var/cache/apt/archives/apt-fast&lt;br /&gt;
#&lt;br /&gt;
#DLDIR=/var/cache/apt/archives/apt-fast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# APT archives cache directory&lt;br /&gt;
#&lt;br /&gt;
# Default /var/cache/apt/archives&lt;br /&gt;
# (APT configuration items Dir::Cache and Dir::Cache::archives)&lt;br /&gt;
#&lt;br /&gt;
#APTCACHE=/var/cache/apt/archives&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# apt-fast colors&lt;br /&gt;
# Colors are disabled when not using a terminal.&lt;br /&gt;
#&lt;br /&gt;
# Default colors are:&lt;br /&gt;
# cGreen='\e[0;32m'&lt;br /&gt;
# cRed='\e[0;31m'&lt;br /&gt;
# cBlue='\e[0;34m'&lt;br /&gt;
# endColor='\e[0m'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
نهایتا با نگه داشتن دکمه‌های ctrl+x دستور ذخیره‌سازی تغییرات را داده و سپس y را فشرده و دوبار [[Enter Key|کلید ورود]] را بزنید.&lt;br /&gt;
&lt;br /&gt;
برای قابل استفاده کردن آن به صورت سراسری دستورهای زیر را وارد کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo chmod +x apt-fast&lt;br /&gt;
$ sudo mv apt-fast /usr/bin/&lt;br /&gt;
$ sudo mv apt-fast.conf /etc/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
حال می‌توانید از apt-fast در [[CLI|خط فرمان]] استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[رده:نرم‌افزارهای مدیریت بارگیری]]&lt;br /&gt;
[[رده:مدیر بسته]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=Apt-fast&amp;diff=677</id>
		<title>Apt-fast</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=Apt-fast&amp;diff=677"/>
				<updated>2015-07-02T15:24:01Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;apt-fast یک [[Script|اسکریپت]] است که امکان بارگیری از مخازن [[APT]] را با اتّصال‌های موازی به کاربر می‌دهد.&lt;br /&gt;
&lt;br /&gt;
=روش کار=&lt;br /&gt;
این اسکریپت ابتدا پرونده‌ها را توسط aria2 از مخازن بارگیری کرده و آن‌ها را در مسیر &amp;lt;code&amp;gt;/var/cache/apt/archive/&amp;lt;/code&amp;gt; ذخیره می‌کند، سپس فرمان apt-get را اجرا می‌کند. در این حالت با وجود پرونده‌ها در مسیر مورد نظر، دیگر خود apt-get نسبت به بارگیری آن‌ها اقدام نکرده و شروع به نصب بسته‌ها می‌کند.&lt;br /&gt;
&lt;br /&gt;
=ساختار=&lt;br /&gt;
این برنامه دارای دو پرونده است که یکی برنامه‌ی اصلی بوده و دیگری پرونده‌ی پیکربندی آن است. این اسکریپت از دو نرم‌افزار apt-get و [[aria2]] استفاده می کند.apt-get به طور پیش‌گزیده در [[Ubuntu|اوبونتو]] نصب است ، بنابراین نیاز است برنامهٔ aria2 را نصب کنید.&lt;br /&gt;
&lt;br /&gt;
=ایجاد=&lt;br /&gt;
==برنامه‌ٔ اصلی==&lt;br /&gt;
اسکریپت را به روش زیر بسازید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano apt-fast&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بعد متن زیر را در آن رونوشت کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# apt-fast v1.8&lt;br /&gt;
# Use this just like aptitude or apt-get for faster package downloading.&lt;br /&gt;
#&lt;br /&gt;
# Copyright: 2008-2012 Matt Parnell, http://www.mattparnell.com&lt;br /&gt;
# Improvements, maintenance, revisions - 2012 Dominique Lasserre&lt;br /&gt;
#&lt;br /&gt;
# You may distribute this file under the terms of the GNU General&lt;br /&gt;
# Public License as published by the Free Software Foundation; either&lt;br /&gt;
# version 3 of the License, or (at your option) any later version.&lt;br /&gt;
#&lt;br /&gt;
[ -n &amp;quot;$DEBUG&amp;quot; ] &amp;amp;&amp;amp; set -xv&lt;br /&gt;
&lt;br /&gt;
# Print colored messages.&lt;br /&gt;
# Usage: msg &amp;quot;message text&amp;quot; &amp;quot;message type&amp;quot; &amp;quot;optional: err&amp;quot;&lt;br /&gt;
# Message types are 'normal', 'hint' or 'warning'. Warnings and messages with a&lt;br /&gt;
# third argument are piped to stderr.&lt;br /&gt;
msg(){&lt;br /&gt;
  case &amp;quot;$2&amp;quot; in&lt;br /&gt;
    normal) beginColor=&amp;quot;$cGreen&amp;quot;;;&lt;br /&gt;
    hint) beginColor=&amp;quot;$cBlue&amp;quot;;;&lt;br /&gt;
    warning) beginColor=&amp;quot;$cRed&amp;quot;;;&lt;br /&gt;
  esac&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$3&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$2&amp;quot; != &amp;quot;warning&amp;quot; ]; then&lt;br /&gt;
echo -e &amp;quot;${aptfast_prefix} ${beginColor}$1${endColor}&amp;quot;;&lt;br /&gt;
  else&lt;br /&gt;
echo -e &amp;quot;${aptfast_prefix} ${beginColor}$1${endColor}&amp;quot;; &amp;gt;&amp;amp;2&lt;br /&gt;
  fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Search for known options and decide if root privileges are needed.&lt;br /&gt;
root=1 # default value: we need root privileges&lt;br /&gt;
option=&lt;br /&gt;
for arguments in $@; do&lt;br /&gt;
if [ &amp;quot;$arguments&amp;quot; == &amp;quot;upgrade&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;install&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;dist-upgrade&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;build-dep&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;install&amp;quot;&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;clean&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;autoclean&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;clean&amp;quot;&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;download&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;download&amp;quot;&lt;br /&gt;
    root=0&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;source&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;source&amp;quot;&lt;br /&gt;
    root=0&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;changelog&amp;quot; ]; then&lt;br /&gt;
root=0&lt;br /&gt;
    break&lt;br /&gt;
fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# To handle priority of options correctly (environment over config file vars)&lt;br /&gt;
# we need to preserve all interesting env variables. As this wouldn't be&lt;br /&gt;
# difficult enough we have to preserve complete env vars (especially if value&lt;br /&gt;
# ist set (even empty) or not) when changing context (sudo)...&lt;br /&gt;
# Set a 'random' string to all unset variables.&lt;br /&gt;
TMP_RANDOM=&amp;quot;13979853562951413&amp;quot;&lt;br /&gt;
TMP_LCK_FILE=&amp;quot;${LCK_FILE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DOWNLOADBEFORE=&amp;quot;${DOWNLOADBEFORE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP__APTMGR=&amp;quot;${_APTMGR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_APTCACHE=&amp;quot;${APTCACHE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DLDIR=&amp;quot;${DLDIR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DLLIST=&amp;quot;${DLLIST-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_LISTDIR=&amp;quot;${LISTDIR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP__MAXNUM=&amp;quot;${MAXNUM-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_aptfast_prefix=&amp;quot;${aptfast_prefix-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_APT_FAST_TIMEOUT=&amp;quot;${APT_FAST_TIMEOUT-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Check for proper privileges.&lt;br /&gt;
# Call explicitly with environment variables to get them into root conext.&lt;br /&gt;
if [ &amp;quot;$root&amp;quot; = 1 -a &amp;quot;$UID&amp;quot; != 0 ]; then&lt;br /&gt;
exec sudo DEBUG=&amp;quot;$DEBUG&amp;quot; \&lt;br /&gt;
            LCK_FILE=&amp;quot;$TMP_LCK_FILE&amp;quot; \&lt;br /&gt;
            DOWNLOADBEFORE=&amp;quot;$TMP_DOWNLOADBEFORE&amp;quot; \&lt;br /&gt;
            _APTMGR=&amp;quot;$TMP__APTMGR&amp;quot; \&lt;br /&gt;
            APTCACHE=&amp;quot;$TMP_APTCACHE&amp;quot; \&lt;br /&gt;
            DLDIR=&amp;quot;$TMP_DLDIR&amp;quot; \&lt;br /&gt;
            DLLIST=&amp;quot;$TMP_DLLIST&amp;quot; \&lt;br /&gt;
            LISTDIR=&amp;quot;$TMP_LISTDIR&amp;quot; \&lt;br /&gt;
            _MAXNUM=&amp;quot;$TMP_MAXNUM&amp;quot; \&lt;br /&gt;
            aptfast_prefix=&amp;quot;$TMP_aptfast_prefix&amp;quot; \&lt;br /&gt;
            APT_FAST_TIMEOUT=&amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot; &amp;quot;$0&amp;quot; &amp;quot;$@&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Define lockfile.&lt;br /&gt;
# Use /tmp as directory because everybody (not only root) has to have write&lt;br /&gt;
# permissions.&lt;br /&gt;
# We need lock for non-root commands too, because we only have one download&lt;br /&gt;
# list file.&lt;br /&gt;
LCK_FILE=&amp;quot;/tmp/apt-fast&amp;quot;&lt;br /&gt;
LCK_FD=99&lt;br /&gt;
&lt;br /&gt;
# Set default package manager, APT cache, temporary download dir,&lt;br /&gt;
# temporary download list file, and maximal parallel downloads&lt;br /&gt;
_APTMGR=apt-get&lt;br /&gt;
eval $(apt-config shell APTCACHE Dir::Cache::archives/d)&lt;br /&gt;
# Check if APT config option Dir::Cache::archives::apt-fast-partial is set.&lt;br /&gt;
eval $(apt-config shell apt_fast_partial Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
if [ -z &amp;quot;$apt_fast_partial&amp;quot; ]; then&lt;br /&gt;
eval $(apt-config -o Dir::Cache::archives::apt-fast-partial=apt-fast shell DLDIR Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
else&lt;br /&gt;
eval $(apt-config shell DLDIR Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
fi&lt;br /&gt;
# Currently not needed.&lt;br /&gt;
eval $(apt-config shell LISTDIR Dir::State::lists/d)&lt;br /&gt;
DLLIST=&amp;quot;/tmp/apt-fast.list&amp;quot;&lt;br /&gt;
_MAXNUM=5&lt;br /&gt;
&lt;br /&gt;
# Prefix in front of apt-fast output:&lt;br /&gt;
aptfast_prefix=&lt;br /&gt;
&lt;br /&gt;
# Set color variables.&lt;br /&gt;
cGreen='\e[0;32m'&lt;br /&gt;
cRed='\e[0;31m'&lt;br /&gt;
cBlue='\e[0;34m'&lt;br /&gt;
endColor='\e[0m'&lt;br /&gt;
&lt;br /&gt;
# Set timout value for apt-fast download confirmation dialog.&lt;br /&gt;
# Value is in seconds.&lt;br /&gt;
APT_FAST_TIMEOUT=60&lt;br /&gt;
&lt;br /&gt;
# Download command.&lt;br /&gt;
_DOWNLOADER='aria2c -c -j ${_MAXNUM} -k1M -s16 -x16 -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
&lt;br /&gt;
# Load config file.&lt;br /&gt;
CONFFILE=&amp;quot;/etc/apt-fast.conf&amp;quot;&lt;br /&gt;
if [ -e &amp;quot;$CONFFILE&amp;quot; ]; then&lt;br /&gt;
source &amp;quot;$CONFFILE&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Now overwrite with preserved values if values were set before (compare with&lt;br /&gt;
# 'random' string).&lt;br /&gt;
[ &amp;quot;$TMP_LCK_FILE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || LCK_FILE=&amp;quot;$TMP_LCK_FILE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DOWNLOADBEFORE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DOWNLOADBEFORE=&amp;quot;$TMP_DOWNLOADBEFORE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP__APTMGR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || _APTMGR=&amp;quot;$TMP__APTMGR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_APTCACHE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || APTCACHE=&amp;quot;$TMP_APTCACHE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DLDIR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DLDIR=&amp;quot;$TMP_DLDIR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DLLIST&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DLLIST=&amp;quot;$TMP_DLLIST&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_LISTDIR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || LISTDIR=&amp;quot;$TMP_LISTDIR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP__MAXNUM&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || _MAXNUM=&amp;quot;$TMP__MAXNUM&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_aptfast_prefix&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || aptfast_prefix=&amp;quot;$TMP_aptfast_prefix&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || APT_FAST_TIMEOUT=&amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Disable colors if not executed in terminal.&lt;br /&gt;
if [ ! -t 1 ]; then&lt;br /&gt;
cGreen=&lt;br /&gt;
  cRed=&lt;br /&gt;
  cBlue=&lt;br /&gt;
  endColor=&lt;br /&gt;
  #FIXME: Time not updated.&lt;br /&gt;
  [ -z &amp;quot;$aptfast_prefix&amp;quot; ] &amp;amp;&amp;amp; aptfast_prefix=&amp;quot;[apt-fast $(date +&amp;quot;%T&amp;quot;)]&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
msg_already_running()&lt;br /&gt;
{&lt;br /&gt;
  msg &amp;quot;apt-fast already running!&amp;quot; &amp;quot;warning&amp;quot;&lt;br /&gt;
  msg &amp;quot;Verify that all apt-fast processes are finished then remove $LCK_FILE.lock and try again.&amp;quot; &amp;quot;hint&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Check if a lock file exists.&lt;br /&gt;
if [ -f &amp;quot;$LCK_FILE.lock&amp;quot; ]; then&lt;br /&gt;
msg_already_running&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# create the lock file and lock it, die on failure&lt;br /&gt;
_create_lock()&lt;br /&gt;
{&lt;br /&gt;
    eval &amp;quot;exec $LCK_FD&amp;gt;\&amp;quot;$LCK_FILE.lock\&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    trap &amp;quot;_remove_lock; exit&amp;quot; EXIT&lt;br /&gt;
    trap &amp;quot;_remove_lock; exit 1;&amp;quot; INT KILL TERM&lt;br /&gt;
&lt;br /&gt;
    flock -n $LCK_FD || { msg_already_running; exit 1; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# unlock and remove the lock file&lt;br /&gt;
_remove_lock()&lt;br /&gt;
{&lt;br /&gt;
    flock -u &amp;quot;$LCK_FD&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
    rm -f &amp;quot;$LCK_FILE.lock&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Check if mirrors are available. And if so add all mirrors to download list.&lt;br /&gt;
get_mirrors(){&lt;br /&gt;
  # Check all mirror lists.&lt;br /&gt;
  for mirrorstr in ${MIRRORS[@]}; do&lt;br /&gt;
    # Build mirrors array from comma separated string.&lt;br /&gt;
    mirrors=( $(echo &amp;quot;$mirrorstr&amp;quot; | sed &amp;quot;s/\([^,]\+\)\s*,\s*/\1 /g&amp;quot;) )&lt;br /&gt;
    # This does not the \s*,\s* trick, so we use sed instead to make it more&lt;br /&gt;
    # robust.&lt;br /&gt;
    #mirrors=( ${mirrorstr//,/ } )&lt;br /&gt;
    # Check for all mirrors if URI of $1 is from mirror. If so add all other&lt;br /&gt;
    # mirrors to (resmirror) list and break all loops.&lt;br /&gt;
    for mirror in ${mirrors[@]}; do&lt;br /&gt;
      # Real expension.&lt;br /&gt;
      if [[ &amp;quot;$1&amp;quot; == &amp;quot;$mirror&amp;quot;* ]]; then&lt;br /&gt;
filepath=${1#${mirror}}&lt;br /&gt;
        # Build list for aria download list.&lt;br /&gt;
        list=&amp;quot;${mirrors[@]}&amp;quot;&lt;br /&gt;
        echo -e &amp;quot;${list// /${filepath}\t}$filepath\n&amp;quot;&lt;br /&gt;
        return 0&lt;br /&gt;
      fi&lt;br /&gt;
done&lt;br /&gt;
done&lt;br /&gt;
  # No other mirrors found.&lt;br /&gt;
  echo &amp;quot;$1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get the package URLs.&lt;br /&gt;
get_uris(){&lt;br /&gt;
  # Add header to overwrite file.&lt;br /&gt;
  echo &amp;quot;# apt-fast mirror list: $(date)&amp;quot; &amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  #NOTE: aptitude doesn't have this functionality, so we use apt-get to get&lt;br /&gt;
  # package URIs.&lt;br /&gt;
  for urimd5 in $(apt-get -y --print-uris $@ | egrep &amp;quot;^'(http(s|)|(s|)ftp)://[^']+'.+ MD5Sum:\S+\s*$&amp;quot; |&lt;br /&gt;
      sed &amp;quot;s/^'\(.\+\)'.*MD5Sum:\(\S\+\)\s*$/\1::MD5Sum:\2/&amp;quot;); do&lt;br /&gt;
  #for urimd5 in $(cat foo | egrep &amp;quot;^'(http(s|)|(s|)ftp)://[^']+'.+ MD5Sum:\S+\s*$&amp;quot; |&lt;br /&gt;
  # sed &amp;quot;s/^'\(.\+\)'.*MD5Sum:\(\S\+\)\s*$/\1::MD5Sum:\2/&amp;quot;); do&lt;br /&gt;
    uri=&amp;quot;${urimd5%::MD5Sum:*}&amp;quot;&lt;br /&gt;
    checksum=&amp;quot;${urimd5#*::MD5Sum:}&amp;quot;&lt;br /&gt;
    echo &amp;quot;$(get_mirrors &amp;quot;$uri&amp;quot;)&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    #echo &amp;quot; dir=$DLDIR&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    echo &amp;quot; checksum=md5=$checksum&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    echo &amp;quot; out=$(basename $uri)&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  done&lt;br /&gt;
  #cat &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  #LCK_RM&lt;br /&gt;
  #exit&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Create and insert a PID number to lockfile.&lt;br /&gt;
_create_lock&lt;br /&gt;
&lt;br /&gt;
# Make sure aria2c (in general first parameter from _DOWNLOADER) is available.&lt;br /&gt;
CMD=&amp;quot;$(echo &amp;quot;$_DOWNLOADER&amp;quot; | sed 's/^\s*\([^ ]\+\).*$/\1/')&amp;quot;&lt;br /&gt;
if [ ! $(command -v &amp;quot;$CMD&amp;quot;) ]; then&lt;br /&gt;
msg &amp;quot;Command not found: $CMD&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  msg &amp;quot;You must configure $CONFFILE to use aria2c or another supported download manager&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Make sure package manager is available.&lt;br /&gt;
if [ ! $(command -v &amp;quot;$_APTMGR&amp;quot;) ]; then&lt;br /&gt;
msg &amp;quot;\`$_APTMGR\` command not available.&amp;quot; &amp;quot;warning&amp;quot;&lt;br /&gt;
  msg &amp;quot;You must configure $CONFFILE to use either apt-get or aptitude.&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Run actions.&lt;br /&gt;
if [ &amp;quot;$option&amp;quot; == &amp;quot;install&amp;quot; ]; then&lt;br /&gt;
msg &amp;quot;\n Working... this may take a while.&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  get_uris $@&lt;br /&gt;
&lt;br /&gt;
  # Check if &amp;quot;assume yes&amp;quot; switch is enabled and if yes enable $DOWNLOADBEFORE.&lt;br /&gt;
  #TODO: Get real value over APT items APT::Get::Assume-Yes and&lt;br /&gt;
  # APT::Get::Assume-No .&lt;br /&gt;
  #FIXME: Composed short options e.g. &amp;quot;-yV&amp;quot; are not recognised - we should use&lt;br /&gt;
  # getopts for proper option passing.&lt;br /&gt;
  for option in $@; do&lt;br /&gt;
if [ &amp;quot;$option&amp;quot; == &amp;quot;-y&amp;quot; ] ||&lt;br /&gt;
        [ &amp;quot;$option&amp;quot; == &amp;quot;--yes&amp;quot; ] ||&lt;br /&gt;
        [ &amp;quot;$option&amp;quot; == &amp;quot;--assume-yes&amp;quot; ]; then&lt;br /&gt;
DOWNLOADBEFORE=true&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;--assume-no&amp;quot; ]; then&lt;br /&gt;
DOWNLOADBEFORE=&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
  # Test /tmp/apt-fast.list file exists AND not zero bytes.&lt;br /&gt;
  # Then download all files from the list.&lt;br /&gt;
  if [ $(cat &amp;quot;$DLLIST&amp;quot; | wc -l) -gt 0 ] &amp;amp;&amp;amp; [ ! &amp;quot;$DOWNLOADBEFORE&amp;quot; ]; then&lt;br /&gt;
cat &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    echo -ne &amp;quot;${cRed} If you want to download the packages on your system press Y else n to abort. [Y/n]: ${endColor}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    while ((!updsys)); do&lt;br /&gt;
read -sn1 -t &amp;quot;$APT_FAST_TIMEOUT&amp;quot; answer || { msg &amp;quot;\n Timed out.&amp;quot; &amp;quot;warning&amp;quot;; exit 1; }&lt;br /&gt;
      case &amp;quot;$answer&amp;quot; in&lt;br /&gt;
        [JjYy]) result=1; updsys=1 ;;&lt;br /&gt;
        [Nn]) result=0; updsys=1 ;;&lt;br /&gt;
        &amp;quot;&amp;quot;) result=1; updsys=1 ;;&lt;br /&gt;
        *) updsys=0 ;;&lt;br /&gt;
      esac&lt;br /&gt;
done&lt;br /&gt;
else&lt;br /&gt;
result=1&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
  # Continue if answer was right or DOWNLOADBEFORE is enabled.&lt;br /&gt;
  if ((result)); then&lt;br /&gt;
if [ -s &amp;quot;$DLLIST&amp;quot; ]; then&lt;br /&gt;
      # Test if apt-fast directory is present where we put packages.&lt;br /&gt;
      if [ ! -d &amp;quot;$DLDIR&amp;quot; ]; then&lt;br /&gt;
mkdir -p -- &amp;quot;$DLDIR&amp;quot;&lt;br /&gt;
      fi&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;$DLDIR&amp;quot; &amp;amp;&amp;gt;/dev/null || exit 1&lt;br /&gt;
&lt;br /&gt;
      eval &amp;quot;${_DOWNLOADER}&amp;quot; # execute downloadhelper command&lt;br /&gt;
      if [ $(find &amp;quot;$DLDIR&amp;quot; -printf . | wc -c) -gt 1 ]; then&lt;br /&gt;
        # Move all packages to the apt install directory by force to ensure&lt;br /&gt;
        # already existing debs which may be incomplete are replaced&lt;br /&gt;
        find -type f -name &amp;quot;*.deb&amp;quot; -execdir mv -ft &amp;quot;$APTCACHE&amp;quot; {} \+&lt;br /&gt;
      fi&lt;br /&gt;
cd - &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
    fi&lt;br /&gt;
else&lt;br /&gt;
exit 1&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
  #FIXME: quotes get lost: apt-fast install &amp;quot;foo*&amp;quot; -&amp;gt; apt-get install foo*&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;clean&amp;quot; ]; then&lt;br /&gt;
  #FIXME: quotes get lost (see above)&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@ &amp;amp;&amp;amp; {&lt;br /&gt;
    find &amp;quot;$DLDIR&amp;quot; -maxdepth 1 -type f -delete&lt;br /&gt;
    [ -f &amp;quot;$DLLIST&amp;quot; ] &amp;amp;&amp;amp; rm -f -- &amp;quot;$DLLIST&amp;quot;*&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;download&amp;quot; ]; then&lt;br /&gt;
get_uris $@&lt;br /&gt;
  eval &amp;quot;${_DOWNLOADER}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;source&amp;quot; ]; then&lt;br /&gt;
msg &amp;quot;\n Working... this may take a while.\n&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
  get_uris $@&lt;br /&gt;
  eval &amp;quot;${_DOWNLOADER}&amp;quot;&lt;br /&gt;
  # We use APT manager here to provide more verbose output. This method is&lt;br /&gt;
  # slightly slower then extractiong packages manually after download but also&lt;br /&gt;
  # more hardened (e.g. some options like --compile are available).&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
  # Uncomment following snippet to extract source directly and comment&lt;br /&gt;
  # both lines before.&lt;br /&gt;
  #while read srcfile; do&lt;br /&gt;
  # # extract only .dsc files&lt;br /&gt;
  # echo &amp;quot;$srcfile&amp;quot; | grep -q '\.dsc$' || continue&lt;br /&gt;
  # dpkg-source -x &amp;quot;$(basename &amp;quot;$srcfile&amp;quot;)&amp;quot;&lt;br /&gt;
  #done &amp;lt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Execute package manager directly if unknown options are passed.&lt;br /&gt;
else&lt;br /&gt;
  #FIXME: quotes get lost (see above)&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# After error or all done remove our lockfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
با نگه داشتن دکمه‌های ctrl+x دستور ذخیره‌سازی تغییرات را داده و سپس y را فشرده و دوبار [[Enter Key|کلید ورود]] را بزنید.&lt;br /&gt;
&lt;br /&gt;
==پروندهٔ پیکربندی==&lt;br /&gt;
پروندهٔ پیکربندی را نیز به این صورت ایجاد کنید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano -w apt-fast.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس متن زیر را رونوشت کنید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
###################################################################&lt;br /&gt;
# CONFIGURATION OPTIONS&lt;br /&gt;
###################################################################&lt;br /&gt;
# Every item has a default value besides MIRRORS (which is unset).&lt;br /&gt;
&lt;br /&gt;
# Use aptitude or apt-get?&lt;br /&gt;
# Note that for outputting the package URI list, we always use apt-get&lt;br /&gt;
# ...since aptitude can't do this&lt;br /&gt;
# Optionally add the FULLPATH to apt-get or apt-rpm or aptitude&lt;br /&gt;
# e.g. /usr/bin/aptitude&lt;br /&gt;
#&lt;br /&gt;
# Default: apt-get&lt;br /&gt;
#&lt;br /&gt;
#_APTMGR=apt-get&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Enable DOWNLOADBEFORE to suppress apt-fast confirmation dialog and download&lt;br /&gt;
# packages directly.&lt;br /&gt;
#&lt;br /&gt;
# Default: dialog enabled&lt;br /&gt;
#&lt;br /&gt;
#DOWNLOADBEFORE=true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Choose mirror list to speed up downloads from same archive. To select some&lt;br /&gt;
# mirrors take a look at your distribution's archive mirror lists.&lt;br /&gt;
# Debian: http://www.debian.org/mirror/list&lt;br /&gt;
# Ubuntu: https://launchpad.net/ubuntu/+archivemirrors&lt;br /&gt;
#&lt;br /&gt;
# Examples:&lt;br /&gt;
# To use some German mirrors and official Debian and Ubuntu archives you can use:&lt;br /&gt;
# MIRRORS=( 'http://ftp.debian.org/debian,http://ftp2.de.debian.org/debian,http://ftp.de.debian.org/debian,ftp://ftp.uni-kl.de/debian'&lt;br /&gt;
# 'http://archive.ubuntu.com/ubuntu,http://de.archive.ubuntu.com/ubuntu,http://ftp.halifax.rwth-aachen.de/ubuntu,http://ftp.uni-kl.de/pub/linux/ubuntu,http://mirror.informatik.uni-mannheim.de/pub/linux/distributions/ubuntu/' )&lt;br /&gt;
# To use French Ubuntu mirrors you can use:&lt;br /&gt;
# MIRRORS=( 'http://fr.archive.ubuntu.com/ubuntu,http://bouyguestelecom.ubuntu.lafibre.info/ubuntu,http://mirror.ovh.net/ubuntu,http://ubuntu-archive.mirrors.proxad.net/ubuntu' )&lt;br /&gt;
#&lt;br /&gt;
# Default: disabled&lt;br /&gt;
#&lt;br /&gt;
#MIRRORS=( 'none' )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Maximum number of connections&lt;br /&gt;
# You can use this value in _DOWNLOADER command. Escape with ${}: ${_MAXNUM}&lt;br /&gt;
#&lt;br /&gt;
# Default: 5&lt;br /&gt;
#&lt;br /&gt;
#_MAXNUM=5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Downloadmanager listfile&lt;br /&gt;
# You can use this value in _DOWNLOADER command. Escape with ${}: ${DLLIST}&lt;br /&gt;
#&lt;br /&gt;
# Default: /tmp/apt-fast.list&lt;br /&gt;
#&lt;br /&gt;
#DLLIST=/tmp/apt-fast.list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Download command to use. Temporary download list is designed for aria2. But&lt;br /&gt;
# you can choose another download command or download manager. It has to&lt;br /&gt;
# support following input file syntax (\t is tab character):&lt;br /&gt;
#&lt;br /&gt;
# # Comment&lt;br /&gt;
# MIRROR1\tMIRROR2\tMIRROR3...&lt;br /&gt;
# out=FILENAME1&lt;br /&gt;
# MIRROR1\tMIRROR2\tMIRROR3...&lt;br /&gt;
# out=FILENAME2&lt;br /&gt;
# ...&lt;br /&gt;
#&lt;br /&gt;
# Examples:&lt;br /&gt;
# aria2c with a proxy (set username, proxy, ip and password!)&lt;br /&gt;
# _DOWNLOADER='aria2c -c 20 -j ${_MAXNUM} --http-proxy=http://username:password@proxy_ip:proxy_port -i ${DLLIST}'&lt;br /&gt;
#&lt;br /&gt;
# Default: _DOWNLOADER='aria2c -c -j ${_MAXNUM} -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
#&lt;br /&gt;
#_DOWNLOADER='aria2c -c -j ${_MAXNUM} -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Download temp folder for Downloadmanager&lt;br /&gt;
# example /tmp/apt-fast. Standard is /var/cache/archives/apt-fast&lt;br /&gt;
#&lt;br /&gt;
# Default: /var/cache/apt/archives/apt-fast&lt;br /&gt;
#&lt;br /&gt;
#DLDIR=/var/cache/apt/archives/apt-fast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# APT archives cache directory&lt;br /&gt;
#&lt;br /&gt;
# Default /var/cache/apt/archives&lt;br /&gt;
# (APT configuration items Dir::Cache and Dir::Cache::archives)&lt;br /&gt;
#&lt;br /&gt;
#APTCACHE=/var/cache/apt/archives&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# apt-fast colors&lt;br /&gt;
# Colors are disabled when not using a terminal.&lt;br /&gt;
#&lt;br /&gt;
# Default colors are:&lt;br /&gt;
# cGreen='\e[0;32m'&lt;br /&gt;
# cRed='\e[0;31m'&lt;br /&gt;
# cBlue='\e[0;34m'&lt;br /&gt;
# endColor='\e[0m'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
نهایتا با نگه داشتن دکمه‌های ctrl+x دستور ذخیره‌سازی تغییرات را داده و سپس y را فشرده و دوبار [[Enter Key|کلید ورود]] را بزنید.&lt;br /&gt;
&lt;br /&gt;
برای قابل استفاده کردن آن به صورت سراسری دستورهای زیر را وارد کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo chmod +x apt-fast&lt;br /&gt;
$ sudo mv apt-fast /usr/bin/&lt;br /&gt;
$ sudo mv apt-fast.conf /etc/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
حال می‌توانید از apt-fast در [[CLI|خط فرمان]] استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[رده:نرم‌افزارهای مدیریت بارگیری]]&lt;br /&gt;
[[رده:مدیر بسته]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=Lm-sensors&amp;diff=676</id>
		<title>Lm-sensors</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=Lm-sensors&amp;diff=676"/>
				<updated>2015-07-02T14:52:48Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;نرم‌افزار lm-sensors مخفّف Linux Monitoring Sensors است که مجموعه‌ای از ابزارهای [[Free Software|نرم‌افزار آزاد]] را برای بررسی دمای قطعات و سرعت فن فراهم می‌کند.&lt;br /&gt;
&lt;br /&gt;
=نصب=&lt;br /&gt;
برای نصب، ابتدا دستور زیر را در [[Terminal|پایانه]] زده یا بسته‌ی &amp;lt;code&amp;gt;lm-sensors&amp;lt;/code&amp;gt; را از [[USC|مرکز نرم‌افزاری اوبونتو]] نصب کنید:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo apt-get install lm-sensors&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=پیکربندی=&lt;br /&gt;
پس از اتمام نصب دستور زیر را اجرا کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo sensors-detect&amp;lt;/pre&amp;gt;&lt;br /&gt;
پیش‌نهاد می‌شود در پاسخ به تمامی پرسش‌ها، کلید y را بزنید&lt;br /&gt;
&lt;br /&gt;
=استفاده=&lt;br /&gt;
پس از پیکر بندی، رایانه را راه‌اندازی مجدّد کرده و برای دیدن خروجی این نرم‌افزار، در [[Terminal|پایانه]] عبارت &amp;lt;code&amp;gt;sensors&amp;lt;/code&amp;gt; را وارد کنید و [[Enter Key|کلید ورود]] را بزنید.&lt;br /&gt;
&lt;br /&gt;
[[رده:سخت‌افزار]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D9%86%D9%88%D9%86%DB%8C%DA%A9%D8%A7%D9%84&amp;diff=666</id>
		<title>کنونیکال</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%A9%D9%86%D9%88%D9%86%DB%8C%DA%A9%D8%A7%D9%84&amp;diff=666"/>
				<updated>2015-06-30T18:15:20Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''کنونیکال''' (به انگلیسی Canonical) یک شرکت تجاری و مهم‌ترین حامی [[Ubuntu|اوبونتو]] است که به صورت غیرانحصاری، [[Support|پشتیبانی]] تجاری را برای این توزیع ارائه می‌دهد.&lt;br /&gt;
&lt;br /&gt;
[[رده:شرکت‌ها]]&lt;br /&gt;
[[رده:تعاریف]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%B1%D8%A7%D8%A8%D8%B7_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%DB%8C_%DA%AF%D8%B1%D8%A7%D9%81%DB%8C%DA%A9%DB%8C&amp;diff=665</id>
		<title>رابط کاربری گرافیکی</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%B1%D8%A7%D8%A8%D8%B7_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%DB%8C_%DA%AF%D8%B1%D8%A7%D9%81%DB%8C%DA%A9%DB%8C&amp;diff=665"/>
				<updated>2015-06-30T17:31:02Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: صفحه‌ای تازه حاوی «مخفف graphical user interface میباشد. نوعی رابط است که به کاربران اجازه میدهد تا از طریق...» ایجاد کرد&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;مخفف graphical user interface میباشد. نوعی رابط است که به کاربران اجازه میدهد تا از طریق آیکنهای گرافیکی و نمایشگرهای بصری با وسایل الکترونیکی تعامل کنند و از اینرو متضاد [[CLI|رابط مبتنی بر متن]] است. هدف یک رابط گرافیکی، رهایی کاربر از یادگیری زبانهای دستوری پیچیده است. از سویی دیگر بسیاری از کاربران تشخیص میدهند که میتوانند خیلی موثرتر با رابط متنی کار کنند.&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%B3%DB%8C%D9%86%D9%85%D9%88%D9%86&amp;diff=664</id>
		<title>سینمون</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%B3%DB%8C%D9%86%D9%85%D9%88%D9%86&amp;diff=664"/>
				<updated>2015-06-30T16:57:18Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[پرونده:cinnamon22.jpg|400px|thumb|left|نگارش ۲.۲ پوسته‌ی سینمون]]&lt;br /&gt;
'''سینمون''' یا سینامون (در انگلیسی Cinnamon به معنای دارچین) [[Shell (DE)|پوسته‌ای]] برای [[DE|میزکار]] [[Gnome|گنوم]] در است که در ابتدا [[Fork|انشعابی]] از [[Gnome Shell|گنوم‌شل]] بود. این پوسته با استفاده از پلاگین‌های متنوّع، ظاهری شبیه به گنوم ۲ پیدا کرده تا کاربردی کلاسیک (نوار اصلی در بالا) را در عین حفظ زیبایی‌های گنوم ۳ و امکانات آن حفظ کند. این پوسته نخستین بار برای استفاده در [[Distro|توزیع]] گنو/لینوکس [[Linux Mint|لینوکس مینت]] توسعه داده شد.&lt;br /&gt;
&lt;br /&gt;
=نصب=&lt;br /&gt;
برای نصب این پوسته کافی است این دستور را اجرا کرده یا از [[USC|مرکز نرم‌افزاری اوبونتو]] بسته‌ی cinnamon را نصب کنید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install cinnamon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=اجرا=&lt;br /&gt;
در هنگام ورود به سیستم، از فهرست‌ها مرتبط در [[DM|مدیر نمایش]]، این محیط کار را انتخاب کنید.&lt;br /&gt;
&lt;br /&gt;
[[رده:میزکارها و پوسته‌ها]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=Lm-sensors&amp;diff=663</id>
		<title>Lm-sensors</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=Lm-sensors&amp;diff=663"/>
				<updated>2015-06-30T16:45:28Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: صفحه‌ای تازه حاوی «مخفف Linux monitoring sensors میباشد که یک نرم‌افزار کاربردی آزاد و متن‌باز است که ابز...» ایجاد کرد&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;مخفف Linux monitoring sensors میباشد که یک نرم‌افزار کاربردی آزاد و متن‌باز است که ابزارها و درایورهایی را برای کنترل دما و ولتاژ و سرعت فن فراهم میکند.&lt;br /&gt;
&lt;br /&gt;
برای نصب، ابتدا دستور زیر را در ترمینال ثبت کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install lm-sensors&amp;lt;/pre&amp;gt;&lt;br /&gt;
پس از اتمام نصب دستور زیر را اجرا کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo sensors-detect&amp;lt;/pre&amp;gt;&lt;br /&gt;
در طی مراحل، سوالات زیادی پرسیده میشود که همه را با y پاسخ بدهید سپس یکبار سیستم را ری‌استارت کنید حال در ترمینال بنویسید sensors و نتیجه را بررسی کنید.&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=662</id>
		<title>بایگانی بستهٔ شخصی</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=662"/>
				<updated>2015-06-30T15:50:23Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;مخفف ‪ میباشد و آن personal package archive‬امکانی است که [https://launchpad.net/ lanchpad‬] در اختیار توسعه دهندگان قرار می دهد تا بتوانند بسته های نرم‬ ‫افزار خود را در اختیار کاربران قرار دهند. به این ترتیب شما با اضافه کردن مخزن  ‪ ppa‬ به فهرست مخازن ‫سیستم خود، با ثبت یک دستور در خط فرمان یا با استفاده از مدیر بسته های نرم افزاری سیستم می توانید آخرین‬ ‫نگارش برنامه ها را نصب کنید.‬ ‫‪&lt;br /&gt;
&lt;br /&gt;
'''به یاد داشته باشید که همه‌ی بسته‌های موجود در PPA از سوی اوبونتو تایید شده نیستند بنابراین قبل از استفاده از آنها، مطمئن‬ ‫شوید.‬'''&lt;br /&gt;
&lt;br /&gt;
حال باید به [https://launchpad.net/ lanchpad‬] بروید و نام برنامه‌ی مورد نظر را جست‌وجو کنید.  ppa acyl را  جست‌وجو کنید, پس از یافتن لینک کافیست بر گزینه‌ی Technical details about this PPA کلیک کنید تا جزئیات کامل  PPA  نمایش داده شود. محتوای جزئیات را کپی و توسط یک ویرایشگر فایل، قسمت کپی شده را در آخر فایل sources.list درج کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo  gedit /etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
محتوای جزئیات PPA noobslab icons به شرح زیر است :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اکنون قسمت YOUR_UBUNTU_VERSION_HERE را باید به نام استعاری ورژن اوبونتوی خود تغییر بدهید. برای مثال اگر از اوبونتو 12.04 استفاده می کنید باید بنویسید : precise &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ppa.launchpad.net/noobslab/icons/ubuntu precise main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu precise main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
تغییرات اعمال شده را ذخیره و دستور زیر را در ترمینال وارد کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و حال که لیست مخازن سیستم به‌روز شده است می توانید بسته‌ی مورد نظر خود را نصب کنید, انتهای لینک ppa بسته های قابل نصب، ذکر شده و کافیست بدینگونه عمل کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install acyl-icon-set&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=661</id>
		<title>بایگانی بستهٔ شخصی</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=661"/>
				<updated>2015-06-30T15:49:57Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;مخفف ‪ میباشد و آن personal package archive‬امکانی است که [https://launchpad.net/ lanchpad‬] در اختیار توسعه دهندگان قرار می دهد تا بتوانند بسته های نرم‬ ‫افزار خود را در اختیار کاربران قرار دهند. به این ترتیب شما با اضافه کردن مخزن  ‪ ppa‬ به فهرست مخازن ‫سیستم خود، با ثبت یک دستور در خط فرمان یا با استفاده از مدیر بسته های نرم افزاری سیستم می توانید آخرین‬ ‫نگارش برنامه ها را نصب کنید.‬ ‫‪&lt;br /&gt;
&lt;br /&gt;
'''به یاد داشته باشید که همه‌ی بسته‌های موجود در PPA از سوی اوبونتو تایید شده نیستند بنابراین قبل از استفاده از آنها، مطمئن‬ ‫شوید.‬'''&lt;br /&gt;
&lt;br /&gt;
حال باید به [https://launchpad.net/ lanchpad‬] بروید و نام برنامه‌ی مورد نظر را جست‌وجو کنید.  ppa acyl را  جست‌وجو کنید, پس از یافتن لینک کافیست بر گزینه‌ی Technical details about this PPA کلیک کنید تا جزئیات کامل  PPA  نمایش داده شود. محتوای جزئیات را کپی و توسط یک ویرایشگر فایل، قسمت کپی شده را در آخر فایل sources.list درج کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo  gedit /etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
یا&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vim /etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
محتوای جزئیات PPA noobslab icons به شرح زیر است :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اکنون قسمت YOUR_UBUNTU_VERSION_HERE را باید به نام استعاری ورژن اوبونتوی خود تغییر بدهید. برای مثال اگر از اوبونتو 12.04 استفاده می کنید باید بنویسید : precise &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ppa.launchpad.net/noobslab/icons/ubuntu precise main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu precise main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
تغییرات اعمال شده را ذخیره و دستور زیر را در ترمینال وارد کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و حال که لیست مخازن سیستم به‌روز شده است می توانید بسته‌ی مورد نظر خود را نصب کنید, انتهای لینک ppa بسته های قابل نصب، ذکر شده و کافیست بدینگونه عمل کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install acyl-icon-set&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=660</id>
		<title>بایگانی بستهٔ شخصی</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=660"/>
				<updated>2015-06-30T15:31:33Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;مخفف ‪ میباشد و آن personal package archive‬امکانی است که [https://launchpad.net/ lanchpad‬] در اختیار توسعه دهندگان قرار می دهد تا بتوانند بسته های نرم‬ ‫افزار خود را در اختیار کاربران قرار دهند. به این ترتیب شما با اضافه کردن مخزن  ‪ ppa‬ به فهرست مخازن ‫سیستم خود، با ثبت یک دستور در خط فرمان یا با استفاده از مدیر بسته های نرم افزاری سیستم می توانید آخرین‬ ‫نگارش برنامه ها را نصب کنید.‬ ‫‪&lt;br /&gt;
&lt;br /&gt;
'''به یاد داشته باشید که همه‌ی بسته‌های موجود در PPA از سوی اوبونتو تایید شده نیستند بنابراین قبل از استفاده از آنها، مطمئن‬ ‫شوید.‬'''&lt;br /&gt;
&lt;br /&gt;
حال باید به [https://launchpad.net/ lanchpad‬] بروید و نام برنامه‌ی مورد نظر را جست‌وجو کنید.  ppa acyl را  جست‌وجو کنید, پس از یافتن لینک کافیست بر گزینه‌ی Technical details about this PPA کلیک کنید تا جزئیات کامل  PPA  نمایش داده شود. محتوای جزئیات را کپی و توسط یک ویرایشگر فایل، قسمت کپی شده را در آخر فایل sources.list درج کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo  gedit /etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
یا&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vim /etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
محتوای جزئیات PPA noobslab icons به شرح زیر است :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اکن.ن قسمت YOUR_UBUNTU_VERSION_HERE را باید به نام سیستم عامل خود تغییر بدهید. برای مثال اگر از اوبونتو 12.04 استفاده می کنید باید بنویسید : precise &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ppa.launchpad.net/noobslab/icons/ubuntu precise main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu precise main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
تغییرات اعمال شده را ذخیره و دستور زیر را در ترمینال وارد کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و حال که لیست مخازن سیستم به‌روز شده است می توانید بسته‌ی مورد نظر خود را نصب کنید, انتهای لینک ppa بسته های قابل نصب ذکر شده و کافیست از روش زیر استفاده کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install acyl-icon-set&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=659</id>
		<title>بایگانی بستهٔ شخصی</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=659"/>
				<updated>2015-06-30T15:14:48Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;مخفف ‪ میباشد و آن personal package archive‬امکانی است که ‪ lanchpad‬ در اختیار توسعه دهندگان قرار می دهد تا بتوانند بسته های نرم‬ ‫افزار خود را در اختیار کاربران قرار دهند. به این ترتیب شما با اضافه کردن مخزن  ‪ ppa‬ به فهرست مخازن ‫سیستم خود، با ثبت یک دستور در خط فرمان یا با استفاده از مدیر بسته های نرم افزاری سیستم می توانید آخرین‬ ‫نگارش برنامه ها را نصب کنید.‬ ‫‪&lt;br /&gt;
&lt;br /&gt;
'''به یاد داشته باشید که همه‌ی بسته‌های موجود در PPA از سوی اوبونتو تایید شده نیستند بنابراین قبل از استفاده از آنها، مطمئن‬ ‫شوید.‬'''&lt;br /&gt;
&lt;br /&gt;
حال باید به سایت launchpad.net بروید و نام برنامه‌ی مورد نظر را جست‌وجو کنید.  ppa acyl را  جست‌وجو کنید, پس از یافتن لینک کافیست بر گزینه‌ی Technical details about this PPA کلیک کنید تا جزئیات کامل  PPA  نمایش داده شود. محتوای جزئیات را کپی و توسط یک ویرایشگر فایل، قسمت کپی شده را در آخر فایل sources.list درج کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo  gedit /etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
یا&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vim /etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
محتوای جزئیات PPA noobslab icons به شرح زیر است :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اکن.ن قسمت YOUR_UBUNTU_VERSION_HERE را باید به نام سیستم عامل خود تغییر بدهید. برای مثال اگر از اوبونتو 12.04 استفاده می کنید باید بنویسید : precise &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ppa.launchpad.net/noobslab/icons/ubuntu precise main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu precise main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
تغییرات اعمال شده را ذخیره و دستور زیر را در ترمینال وارد کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و حال که لیست مخازن سیستم به‌روز شده است می توانید بسته‌ی مورد نظر خود را نصب کنید, انتهای لینک ppa بسته های قابل نصب از طریق ppa ذکر شده و کافیست از روش زیر استفاده کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install acyl-icon-set&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%AF%D9%88%D9%84%D8%AF%D9%86_%D8%AF%DB%8C%DA%A9%D8%AA&amp;diff=658</id>
		<title>گولدن دیکت</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%AF%D9%88%D9%84%D8%AF%D9%86_%D8%AF%DB%8C%DA%A9%D8%AA&amp;diff=658"/>
				<updated>2015-06-30T14:49:38Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''نرم‌افزار دیکشنری گولدن دیکت''' یک دیکشنری دسکتاپ با قابلیت ترجمه کلمه انتخاب شده، اتصال به ویکیپدیا و منابع آنلاین و استفاده از فایل‌های bgl بابیلون است که از فرمتهای زیر پشتیبانی میکند :&lt;br /&gt;
&amp;lt;pre&amp;gt;Babylon .BGL files &lt;br /&gt;
StarDict .ifo/.dict./.idx/.syn dictionaries &lt;br /&gt;
Dictd .index/.dict(.dz) dictionary files &lt;br /&gt;
ABBYY Lingvo .dsl source files &lt;br /&gt;
ABBYY Lingvo .lsa/.dat audio archives&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= نصب =&lt;br /&gt;
* نرم‌افزار goldendict را از مخازن نصب می‌کنیم:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo apt-get install goldendict&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= اجرا =&lt;br /&gt;
* گولدن دیکت را از [[Dash|دش]] اجرا می‌کنیم.&lt;br /&gt;
[[پرونده:dash-goldendict.png|320px|دش - گولدن دیکت]]&lt;br /&gt;
&lt;br /&gt;
* برای اجرای خودکار گولدن دیکت در شروع نشست می‌توان از این روش استفاده کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo cp /usr/share/applications/goldendict.desktop ~/.config/autostart/&lt;br /&gt;
$ sudo chown $USER:$USER ~/.config/autostart/goldendict.desktop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال می‌توانید [[glossary|پرونده‌های واژه‌نامه و تلفّظ]] مورد نظر خود را به گولدن دیکت بیفزایید .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[رده:آموزش‌ها]]&lt;br /&gt;
[[رده:دیکشنری]]&lt;br /&gt;
[[رده:فارسی]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%AF%D9%88%D9%84%D8%AF%D9%86_%D8%AF%DB%8C%DA%A9%D8%AA&amp;diff=657</id>
		<title>گولدن دیکت</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%AF%D9%88%D9%84%D8%AF%D9%86_%D8%AF%DB%8C%DA%A9%D8%AA&amp;diff=657"/>
				<updated>2015-06-30T14:46:02Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''نرم‌افزار دیکشنری گولدن دیکت''' یک دیکشنری دسکتاپ با قابلیت ترجمه کلمه انتخاب شده، اتصال به ویکیپدیا و منابع آنلاین و استفاده از فایل‌های bgl بابیلون است که از فرمتهای زیر پشتیبانی میکند :&lt;br /&gt;
&amp;lt;pre&amp;gt;Babylon .BGL files &lt;br /&gt;
StarDict .ifo/.dict./.idx/.syn dictionaries &lt;br /&gt;
Dictd .index/.dict(.dz) dictionary files &lt;br /&gt;
ABBYY Lingvo .dsl source files &lt;br /&gt;
ABBYY Lingvo .lsa/.dat audio archives&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= نصب =&lt;br /&gt;
* نرم‌افزار goldendict را از مخازن نصب می‌کنیم:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo apt-get install goldendict&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= اجرا =&lt;br /&gt;
* گولدن دیکت را از [[Dash|دش]] اجرا می‌کنیم.&lt;br /&gt;
[[پرونده:dash-goldendict.png|320px|دش - گولدن دیکت]]&lt;br /&gt;
&lt;br /&gt;
* برای اجرای خودکار گولدن دیکت در شروع نشست می‌توان از این روش استفاده کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo cp /usr/share/applications/goldendict.desktop ~/.config/autostart/&lt;br /&gt;
$ sudo chown $USER:$USER ~/.config/autostart/goldendict.desktop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال می‌توانید پرونده‌های واژه‌نامه و تلفّظ مورد نظر خود را به گولدن دیکت بیفزایید .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[رده:آموزش‌ها]]&lt;br /&gt;
[[رده:دیکشنری]]&lt;br /&gt;
[[رده:فارسی]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=656</id>
		<title>بایگانی بستهٔ شخصی</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=656"/>
				<updated>2015-06-30T14:29:30Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;مخفف ‪ میباشد و آن personal package archive‬امکانی است که ‪ lanchpad‬ در اختیار توسعه دهندگان قرار می دهد تا بتوانند بسته های نرم‬ ‫افزار خود را در اختیار کاربران قرار دهند. به این ترتیب شما با اضافه کردن مخزن  ‪ ppa‬ به فهرست مخازن ‫سیستم خود، با ثبت یک دستور در خط فرمان یا با استفاده از مدیر بسته های نرم افزاری سیستم می توانید آخرین‬ ‫نگارش برنامه ها را نصب کنید.‬ ‫‪&lt;br /&gt;
&lt;br /&gt;
'''به یاد داشته باشید که همه بسته های موجود در ‪  ppa‬از طرف اوبونتو تایید شده نیستند بنابراین قبل از استفاده از آنها، مطمئن‬ ‫شوید.‬'''&lt;br /&gt;
&lt;br /&gt;
حال باید به سایت launchpad.net بروید و نام برنامه‌ی مورد نظر را جست‌وجو کنید. در قسمت جست و جو ppa smplayer را وارد کنید, در صورتی که یک PPA در یک سایت دیدید همانند ppa:noobslab/icons می‌توانید به سادگی از روی کلمات استفاده شده در آن، لینک اصلی PPA را در سایت launchpad پیدا کنید. پساز یافتن لینک PPA کافیست بر گزینه‌ی Technical details about this PPA کلیک کنید تا جزییات کامل  PPA  نمایش داده شود. محتوای جزییات را کپی کنید و با یک ویرایشگر فایل sources.list را اجرا کنید و قسمت کپی شده را در آخر فایل sources.list درج کنید &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo  gedit /etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vim /etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
محتوای جزییات PPA noobslab icons به شرح زیر است :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حالا قسمت YOUR_UBUNTU_VERSION_HERE را باید به نام سیستم عامل خود تغییر بدهید. برای مثال اگر از اوبونتو 12.04 استفاده می کنید باید بنویسید : precise &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ppa.launchpad.net/noobslab/icons/ubuntu raring main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu raring main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
تغییرات اعمال شده را ذخیره و دستور زیر را در ترمینال وارد کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و حال که لیست مخازن سیستم به‌روز شده است می توانید بسته‌ی مورد نظر خود را نصب کنید, انتهای لینک ppa بسته های قابل نصب از طریق این ppa را نوشته و کافیست از روش زیر استفاده کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install acyl-icon-set&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=655</id>
		<title>بایگانی بستهٔ شخصی</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=655"/>
				<updated>2015-06-30T14:21:35Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;مخفف ‪ میباشد و آن personal package archive‬امکانی است که ‪ lanchpad‬ در اختیار توسعه دهندگان قرار می دهد تا بتوانند بسته های نرم‬ ‫افزار خود را مانند بسته های اوبونتو در اختیار کاربران قرار دهند. به این ترتیب کاربران با اضافه کردن منبع ‪ ppa‬ به فهرست منابع‬ ‫سیستم خود، با ثبت یک دستور در خط فرمان یا با استفاده از مدیر بسته های نرم افزاری سیستم به راحتی می توانند آخرین‬ ‫نگارش برنامه ها را نصب کنند.‬ ‫‪&lt;br /&gt;
'''به یاد داشته باشید که همه بسته های موجود در ‪  ppa‬از طرف اوبونتو تایید شده نیستند بنابراین قبل از استفاده از آنها، مطمئن‬ ‫شوید.‬'''&lt;br /&gt;
&lt;br /&gt;
حال باید به سایت launchpad.net بروید و نام برنامه‌ی مورد نظر رو جست‌وجو کنید. برای مثال در قسمت جست و جو ppa smplayer رو وارد کنید, در صورتی که یک PPA در یک سایت دیدین همانند ppa:noobslab/icons می تونین به سادگی از روی کلمات استفاده شده در اون لینک اصلی PPA رو در سایت launchpad پیدا کنین و برای مثال ppa:noobslab/icons یک PPA است و کافیست کلمات noobslab icon رو در launchpad جست‌وجو کنید تا لینک اصلی این PPA را پیدا کنید.&lt;br /&gt;
&lt;br /&gt;
بعد از اینکه لینک اون PPA را پیدا کردید کافیست بر گزینه‌ی Technical details about this PPA کلیک کنید تا جزییات کامل  PPA  نمایش داده شود. محتوای جزییات را کپی کنید و با یک ویرایشگر فایل sources.list را اجرا کنید و قسمت کپی شده را در آخر فایل sources.list درج کنید &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo  gedit /etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vim /etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
محتوای جزییات PPA noobslab icons به شرح زیر است :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حالا قسمت YOUR_UBUNTU_VERSION_HERE را باید به نام سیستم عامل خود تغییر بدهید. برای مثال اگر از اوبونتو 12.04 استفاده می کنید باید بنویسید : precise و اگر از اوبونتو 13.04 استفاده می کنید باید بنویسید : raring&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ppa.launchpad.net/noobslab/icons/ubuntu raring main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu raring main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
تغییرات اعمال شده را ذخیره کنید و دستور زیر را در ترمینال وارد کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;lt;sudo apt-get update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و حال می توانید بسته‌ی مورد نظر خود را نصب کنید ,  در آخر لینک ppa بسته های قابل نصب از طریق این ppa را نوشته و کافیست از روش زیر استفاده کنید :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install acyl-icon-set&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=654</id>
		<title>بایگانی بستهٔ شخصی</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87%D9%94_%D8%B4%D8%AE%D8%B5%DB%8C&amp;diff=654"/>
				<updated>2015-06-30T14:11:22Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: صفحه‌ای تازه حاوی «مخفف ‪ میباشد و آن personal package archive‬امکانی است که ‪ lanchpad‬ در اختیار توسعه دهند...» ایجاد کرد&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;مخفف ‪ میباشد و آن personal package archive‬امکانی است که ‪ lanchpad‬ در اختیار توسعه دهندگان قرار می دهد تا بتوانند بسته های نرم‬ ‫افزار خود را مانند بسته های اوبونتو در اختیار کاربران قرار دهند. به این ترتیب کاربران با اضافه کردن منبع ‪ ppa‬ به فهرست منابع‬ ‫سیستم خود، با ثبت یک دستور در خط فرمان یا با استفاده از مدیر بسته های نرم افزاری سیستم به راحتی می توانند آخرین‬ ‫نگارش برنامه ها را نصب کنند.‬ ‫‪&lt;br /&gt;
'''به یاد داشته باشید که همه بسته های موجود در ‪  ppa‬از طرف اوبونتو تایید شده نیستند بنابراین قبل از استفاده از آنها، مطمئن‬ ‫شوید.‬'''&lt;br /&gt;
&lt;br /&gt;
حال باید به سایت launchpad.net بروید و نام برنامه‌ی مورد نظر رو جست‌وجو کنید. برای مثال در قسمت جست و جو ppa smplayer رو وارد کنید, در صورتی که یک PPA در یک سایت دیدین همانند ppa:noobslab/icons می تونین به سادگی از روی کلمات استفاده شده در اون لینک اصلی PPA رو در سایت launchpad پیدا کنین و برای مثال ppa:noobslab/icons یک PPA است و کافیست کلمات noobslab icon رو در launchpad جست‌وجو کنید تا لینک اصلی این PPA رو پیدا کنید.&lt;br /&gt;
&lt;br /&gt;
بعد از اینکه لینک اون PPA را پیدا کردید کافیست بر گزینه‌ی Technical details about this PPA کلیک کنید تا جزییات کامل  PPA  نمایش داده شود. محتوای جزییات را کپی کنید و با یک ویرایشگر فایل sources.list را اجرا کنید و قسمت کپی شده را در آخر فایل sources.list درج کنید &lt;br /&gt;
&lt;br /&gt;
sudo  gedit /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
یا&lt;br /&gt;
&lt;br /&gt;
sudo vim /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
محتوای جزییات PPA noobslab icons به شرح زیر است :&lt;br /&gt;
&lt;br /&gt;
deb http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu YOUR_UBUNTU_VERSION_HERE main&lt;br /&gt;
&lt;br /&gt;
حالا قسمت YOUR_UBUNTU_VERSION_HERE را باید به نام سیستم عامل خود تغییر بدهید. برای مثال اگر از اوبونتو 12.04 استفاده می کنید باید بنویسید : precise و اگر از اوبونتو 13.04 استفاده می کنید باید بنویسید : raring&lt;br /&gt;
&lt;br /&gt;
deb http://ppa.launchpad.net/noobslab/icons/ubuntu raring main&lt;br /&gt;
&lt;br /&gt;
deb-src http://ppa.launchpad.net/noobslab/icons/ubuntu raring main&lt;br /&gt;
تغییرات اعمال شده را ذخیره کنید و دستور زیر را در ترمینال وارد کنید :&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
و حال می توانید بسته‌ی مورد نظر خود را نصب کنید ,  در آخر لینک ppa بسته های قابل نصب از طریق این ppa را نوشته و کافیست از روش زیر استفاده کنید :&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install acyl-icon-set&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%AF%D9%88%D9%84%D8%AF%D9%86_%D8%AF%DB%8C%DA%A9%D8%AA&amp;diff=652</id>
		<title>گولدن دیکت</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%AF%D9%88%D9%84%D8%AF%D9%86_%D8%AF%DB%8C%DA%A9%D8%AA&amp;diff=652"/>
				<updated>2015-06-30T13:25:27Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: Narayana صفحهٔ Glodendict را به Goldendict منتقل کرد&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''نرم‌افزار دیکشنری گولدن دیکت''' یک دیکشنری دسکتاپ با قابلیت ترجمه کلمه انتخاب شده، اتصال به ویکیپدیا و منابع آنلاین و استفاده از فایل‌های bgl بابیلون است.&lt;br /&gt;
&lt;br /&gt;
= نصب =&lt;br /&gt;
* نرم‌افزار goldendict را از مخازن نصب می‌کنیم:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo apt-get install goldendict&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= اجرا =&lt;br /&gt;
* گولدن دیکت را از [[Dash|دش]] اجرا می‌کنیم.&lt;br /&gt;
[[پرونده:dash-goldendict.png|320px|دش - گولدن دیکت]]&lt;br /&gt;
&lt;br /&gt;
* برای اجرای خودکار گولدن دیکت در شروع نشست می‌توان از این روش استفاده کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo cp /usr/share/applications/goldendict.desktop ~/.config/autostart/&lt;br /&gt;
$ sudo chown $USER:$USER ~/.config/autostart/goldendict.desktop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال می‌توانید پرونده‌های واژه‌نامه و تلفّظ مورد نظر خود را به گولدن دیکت بیفزایید .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[رده:آموزش‌ها]]&lt;br /&gt;
[[رده:دیکشنری]]&lt;br /&gt;
[[رده:فارسی]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=%DA%AF%D9%88%D9%84%D8%AF%D9%86_%D8%AF%DB%8C%DA%A9%D8%AA&amp;diff=648</id>
		<title>گولدن دیکت</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=%DA%AF%D9%88%D9%84%D8%AF%D9%86_%D8%AF%DB%8C%DA%A9%D8%AA&amp;diff=648"/>
				<updated>2015-06-30T13:02:03Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''نرم‌افزار دیکشنری گولدن دیکت''' یک دیکشنری دسکتاپ با قابلیت ترجمه کلمه انتخاب شده، اتصال به ویکیپدیا و منابع آنلاین و استفاده از [[glossary|فایل‌های bgl بابیلون]] است.&lt;br /&gt;
&lt;br /&gt;
= نصب =&lt;br /&gt;
* نرم‌افزار goldendict را از مخازن نصب می‌کنیم:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo apt-get install goldendict&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= اجرا =&lt;br /&gt;
* گولدن دیکت را از [[Dash|دش]] اجرا می‌کنیم.&lt;br /&gt;
[[پرونده:dash-goldendict.png|320px|دش - گولدن دیکت]]&lt;br /&gt;
&lt;br /&gt;
* برای اجرای خودکار گولدن دیکت در شروع نشست می‌توان از این روش استفاده کرد:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo cp /usr/share/applications/goldendict.desktop ~/.config/autostart/&lt;br /&gt;
$ sudo chown $USER:$USER ~/.config/autostart/goldendict.desktop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حال می‌توانید [[glossary|پرونده‌های واژه‌نامه و تلفّظ]] مورد نظر خود را به گولدن دیکت بیفزایید .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[رده:آموزش‌ها]]&lt;br /&gt;
[[رده:دیکشنری]]&lt;br /&gt;
[[رده:فارسی]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=Apt-fast&amp;diff=647</id>
		<title>Apt-fast</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=Apt-fast&amp;diff=647"/>
				<updated>2015-06-30T12:56:42Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;apt-fast یک [[Script|اسکریپت]] است که امکان بارگیری از مخازن [[APT]] را با اتّصال‌های موازی به کاربر می‌دهد و یکی از تفاوتهایش با apt-get اینست که ابتدا فایلها را دانلود میکند سپس با معرفی آنها به شما ، با تایید شما آنها را نصب میکند ولی در apt-get ابتدا فایلهای مورد نظر به شما معرفی میشوند سپس با تایید شما آنها را دانلود و نصب میکند .&lt;br /&gt;
&lt;br /&gt;
=ساختار=&lt;br /&gt;
این برنامه دارای دو پرونده است که یکی برنامه‌ی اصلی بوده و دیگری پرونده‌ی پیکربندی آن است. این اسکریپت از دو نرم‌افزار apt-get و [[aria2]] استفاده می کند.apt-get به طور پیش‌گزیده در [[Ubuntu|اوبونتو]] نصب است ، بنابراین فقط برنامه aria2 را نصب کنید.&lt;br /&gt;
&lt;br /&gt;
=ایجاد=&lt;br /&gt;
==برنامه‌ٔ اصلی==&lt;br /&gt;
اسکریپت را به روش زیر بسازید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano apt-fast&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بعد متن زیر را در آن رونوشت کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# apt-fast v1.8&lt;br /&gt;
# Use this just like aptitude or apt-get for faster package downloading.&lt;br /&gt;
#&lt;br /&gt;
# Copyright: 2008-2012 Matt Parnell, http://www.mattparnell.com&lt;br /&gt;
# Improvements, maintenance, revisions - 2012 Dominique Lasserre&lt;br /&gt;
#&lt;br /&gt;
# You may distribute this file under the terms of the GNU General&lt;br /&gt;
# Public License as published by the Free Software Foundation; either&lt;br /&gt;
# version 3 of the License, or (at your option) any later version.&lt;br /&gt;
#&lt;br /&gt;
[ -n &amp;quot;$DEBUG&amp;quot; ] &amp;amp;&amp;amp; set -xv&lt;br /&gt;
&lt;br /&gt;
# Print colored messages.&lt;br /&gt;
# Usage: msg &amp;quot;message text&amp;quot; &amp;quot;message type&amp;quot; &amp;quot;optional: err&amp;quot;&lt;br /&gt;
# Message types are 'normal', 'hint' or 'warning'. Warnings and messages with a&lt;br /&gt;
# third argument are piped to stderr.&lt;br /&gt;
msg(){&lt;br /&gt;
  case &amp;quot;$2&amp;quot; in&lt;br /&gt;
    normal) beginColor=&amp;quot;$cGreen&amp;quot;;;&lt;br /&gt;
    hint) beginColor=&amp;quot;$cBlue&amp;quot;;;&lt;br /&gt;
    warning) beginColor=&amp;quot;$cRed&amp;quot;;;&lt;br /&gt;
  esac&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$3&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$2&amp;quot; != &amp;quot;warning&amp;quot; ]; then&lt;br /&gt;
echo -e &amp;quot;${aptfast_prefix} ${beginColor}$1${endColor}&amp;quot;;&lt;br /&gt;
  else&lt;br /&gt;
echo -e &amp;quot;${aptfast_prefix} ${beginColor}$1${endColor}&amp;quot;; &amp;gt;&amp;amp;2&lt;br /&gt;
  fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Search for known options and decide if root privileges are needed.&lt;br /&gt;
root=1 # default value: we need root privileges&lt;br /&gt;
option=&lt;br /&gt;
for arguments in $@; do&lt;br /&gt;
if [ &amp;quot;$arguments&amp;quot; == &amp;quot;upgrade&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;install&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;dist-upgrade&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;build-dep&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;install&amp;quot;&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;clean&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;autoclean&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;clean&amp;quot;&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;download&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;download&amp;quot;&lt;br /&gt;
    root=0&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;source&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;source&amp;quot;&lt;br /&gt;
    root=0&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;changelog&amp;quot; ]; then&lt;br /&gt;
root=0&lt;br /&gt;
    break&lt;br /&gt;
fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# To handle priority of options correctly (environment over config file vars)&lt;br /&gt;
# we need to preserve all interesting env variables. As this wouldn't be&lt;br /&gt;
# difficult enough we have to preserve complete env vars (especially if value&lt;br /&gt;
# ist set (even empty) or not) when changing context (sudo)...&lt;br /&gt;
# Set a 'random' string to all unset variables.&lt;br /&gt;
TMP_RANDOM=&amp;quot;13979853562951413&amp;quot;&lt;br /&gt;
TMP_LCK_FILE=&amp;quot;${LCK_FILE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DOWNLOADBEFORE=&amp;quot;${DOWNLOADBEFORE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP__APTMGR=&amp;quot;${_APTMGR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_APTCACHE=&amp;quot;${APTCACHE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DLDIR=&amp;quot;${DLDIR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DLLIST=&amp;quot;${DLLIST-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_LISTDIR=&amp;quot;${LISTDIR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP__MAXNUM=&amp;quot;${MAXNUM-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_aptfast_prefix=&amp;quot;${aptfast_prefix-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_APT_FAST_TIMEOUT=&amp;quot;${APT_FAST_TIMEOUT-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Check for proper privileges.&lt;br /&gt;
# Call explicitly with environment variables to get them into root conext.&lt;br /&gt;
if [ &amp;quot;$root&amp;quot; = 1 -a &amp;quot;$UID&amp;quot; != 0 ]; then&lt;br /&gt;
exec sudo DEBUG=&amp;quot;$DEBUG&amp;quot; \&lt;br /&gt;
            LCK_FILE=&amp;quot;$TMP_LCK_FILE&amp;quot; \&lt;br /&gt;
            DOWNLOADBEFORE=&amp;quot;$TMP_DOWNLOADBEFORE&amp;quot; \&lt;br /&gt;
            _APTMGR=&amp;quot;$TMP__APTMGR&amp;quot; \&lt;br /&gt;
            APTCACHE=&amp;quot;$TMP_APTCACHE&amp;quot; \&lt;br /&gt;
            DLDIR=&amp;quot;$TMP_DLDIR&amp;quot; \&lt;br /&gt;
            DLLIST=&amp;quot;$TMP_DLLIST&amp;quot; \&lt;br /&gt;
            LISTDIR=&amp;quot;$TMP_LISTDIR&amp;quot; \&lt;br /&gt;
            _MAXNUM=&amp;quot;$TMP_MAXNUM&amp;quot; \&lt;br /&gt;
            aptfast_prefix=&amp;quot;$TMP_aptfast_prefix&amp;quot; \&lt;br /&gt;
            APT_FAST_TIMEOUT=&amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot; &amp;quot;$0&amp;quot; &amp;quot;$@&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Define lockfile.&lt;br /&gt;
# Use /tmp as directory because everybody (not only root) has to have write&lt;br /&gt;
# permissions.&lt;br /&gt;
# We need lock for non-root commands too, because we only have one download&lt;br /&gt;
# list file.&lt;br /&gt;
LCK_FILE=&amp;quot;/tmp/apt-fast&amp;quot;&lt;br /&gt;
LCK_FD=99&lt;br /&gt;
&lt;br /&gt;
# Set default package manager, APT cache, temporary download dir,&lt;br /&gt;
# temporary download list file, and maximal parallel downloads&lt;br /&gt;
_APTMGR=apt-get&lt;br /&gt;
eval $(apt-config shell APTCACHE Dir::Cache::archives/d)&lt;br /&gt;
# Check if APT config option Dir::Cache::archives::apt-fast-partial is set.&lt;br /&gt;
eval $(apt-config shell apt_fast_partial Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
if [ -z &amp;quot;$apt_fast_partial&amp;quot; ]; then&lt;br /&gt;
eval $(apt-config -o Dir::Cache::archives::apt-fast-partial=apt-fast shell DLDIR Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
else&lt;br /&gt;
eval $(apt-config shell DLDIR Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
fi&lt;br /&gt;
# Currently not needed.&lt;br /&gt;
eval $(apt-config shell LISTDIR Dir::State::lists/d)&lt;br /&gt;
DLLIST=&amp;quot;/tmp/apt-fast.list&amp;quot;&lt;br /&gt;
_MAXNUM=5&lt;br /&gt;
&lt;br /&gt;
# Prefix in front of apt-fast output:&lt;br /&gt;
aptfast_prefix=&lt;br /&gt;
&lt;br /&gt;
# Set color variables.&lt;br /&gt;
cGreen='\e[0;32m'&lt;br /&gt;
cRed='\e[0;31m'&lt;br /&gt;
cBlue='\e[0;34m'&lt;br /&gt;
endColor='\e[0m'&lt;br /&gt;
&lt;br /&gt;
# Set timout value for apt-fast download confirmation dialog.&lt;br /&gt;
# Value is in seconds.&lt;br /&gt;
APT_FAST_TIMEOUT=60&lt;br /&gt;
&lt;br /&gt;
# Download command.&lt;br /&gt;
_DOWNLOADER='aria2c -c -j ${_MAXNUM} -k1M -s16 -x16 -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
&lt;br /&gt;
# Load config file.&lt;br /&gt;
CONFFILE=&amp;quot;/etc/apt-fast.conf&amp;quot;&lt;br /&gt;
if [ -e &amp;quot;$CONFFILE&amp;quot; ]; then&lt;br /&gt;
source &amp;quot;$CONFFILE&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Now overwrite with preserved values if values were set before (compare with&lt;br /&gt;
# 'random' string).&lt;br /&gt;
[ &amp;quot;$TMP_LCK_FILE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || LCK_FILE=&amp;quot;$TMP_LCK_FILE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DOWNLOADBEFORE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DOWNLOADBEFORE=&amp;quot;$TMP_DOWNLOADBEFORE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP__APTMGR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || _APTMGR=&amp;quot;$TMP__APTMGR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_APTCACHE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || APTCACHE=&amp;quot;$TMP_APTCACHE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DLDIR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DLDIR=&amp;quot;$TMP_DLDIR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DLLIST&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DLLIST=&amp;quot;$TMP_DLLIST&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_LISTDIR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || LISTDIR=&amp;quot;$TMP_LISTDIR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP__MAXNUM&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || _MAXNUM=&amp;quot;$TMP__MAXNUM&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_aptfast_prefix&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || aptfast_prefix=&amp;quot;$TMP_aptfast_prefix&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || APT_FAST_TIMEOUT=&amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Disable colors if not executed in terminal.&lt;br /&gt;
if [ ! -t 1 ]; then&lt;br /&gt;
cGreen=&lt;br /&gt;
  cRed=&lt;br /&gt;
  cBlue=&lt;br /&gt;
  endColor=&lt;br /&gt;
  #FIXME: Time not updated.&lt;br /&gt;
  [ -z &amp;quot;$aptfast_prefix&amp;quot; ] &amp;amp;&amp;amp; aptfast_prefix=&amp;quot;[apt-fast $(date +&amp;quot;%T&amp;quot;)]&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
msg_already_running()&lt;br /&gt;
{&lt;br /&gt;
  msg &amp;quot;apt-fast already running!&amp;quot; &amp;quot;warning&amp;quot;&lt;br /&gt;
  msg &amp;quot;Verify that all apt-fast processes are finished then remove $LCK_FILE.lock and try again.&amp;quot; &amp;quot;hint&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Check if a lock file exists.&lt;br /&gt;
if [ -f &amp;quot;$LCK_FILE.lock&amp;quot; ]; then&lt;br /&gt;
msg_already_running&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# create the lock file and lock it, die on failure&lt;br /&gt;
_create_lock()&lt;br /&gt;
{&lt;br /&gt;
    eval &amp;quot;exec $LCK_FD&amp;gt;\&amp;quot;$LCK_FILE.lock\&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    trap &amp;quot;_remove_lock; exit&amp;quot; EXIT&lt;br /&gt;
    trap &amp;quot;_remove_lock; exit 1;&amp;quot; INT KILL TERM&lt;br /&gt;
&lt;br /&gt;
    flock -n $LCK_FD || { msg_already_running; exit 1; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# unlock and remove the lock file&lt;br /&gt;
_remove_lock()&lt;br /&gt;
{&lt;br /&gt;
    flock -u &amp;quot;$LCK_FD&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
    rm -f &amp;quot;$LCK_FILE.lock&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Check if mirrors are available. And if so add all mirrors to download list.&lt;br /&gt;
get_mirrors(){&lt;br /&gt;
  # Check all mirror lists.&lt;br /&gt;
  for mirrorstr in ${MIRRORS[@]}; do&lt;br /&gt;
    # Build mirrors array from comma separated string.&lt;br /&gt;
    mirrors=( $(echo &amp;quot;$mirrorstr&amp;quot; | sed &amp;quot;s/\([^,]\+\)\s*,\s*/\1 /g&amp;quot;) )&lt;br /&gt;
    # This does not the \s*,\s* trick, so we use sed instead to make it more&lt;br /&gt;
    # robust.&lt;br /&gt;
    #mirrors=( ${mirrorstr//,/ } )&lt;br /&gt;
    # Check for all mirrors if URI of $1 is from mirror. If so add all other&lt;br /&gt;
    # mirrors to (resmirror) list and break all loops.&lt;br /&gt;
    for mirror in ${mirrors[@]}; do&lt;br /&gt;
      # Real expension.&lt;br /&gt;
      if [[ &amp;quot;$1&amp;quot; == &amp;quot;$mirror&amp;quot;* ]]; then&lt;br /&gt;
filepath=${1#${mirror}}&lt;br /&gt;
        # Build list for aria download list.&lt;br /&gt;
        list=&amp;quot;${mirrors[@]}&amp;quot;&lt;br /&gt;
        echo -e &amp;quot;${list// /${filepath}\t}$filepath\n&amp;quot;&lt;br /&gt;
        return 0&lt;br /&gt;
      fi&lt;br /&gt;
done&lt;br /&gt;
done&lt;br /&gt;
  # No other mirrors found.&lt;br /&gt;
  echo &amp;quot;$1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get the package URLs.&lt;br /&gt;
get_uris(){&lt;br /&gt;
  # Add header to overwrite file.&lt;br /&gt;
  echo &amp;quot;# apt-fast mirror list: $(date)&amp;quot; &amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  #NOTE: aptitude doesn't have this functionality, so we use apt-get to get&lt;br /&gt;
  # package URIs.&lt;br /&gt;
  for urimd5 in $(apt-get -y --print-uris $@ | egrep &amp;quot;^'(http(s|)|(s|)ftp)://[^']+'.+ MD5Sum:\S+\s*$&amp;quot; |&lt;br /&gt;
      sed &amp;quot;s/^'\(.\+\)'.*MD5Sum:\(\S\+\)\s*$/\1::MD5Sum:\2/&amp;quot;); do&lt;br /&gt;
  #for urimd5 in $(cat foo | egrep &amp;quot;^'(http(s|)|(s|)ftp)://[^']+'.+ MD5Sum:\S+\s*$&amp;quot; |&lt;br /&gt;
  # sed &amp;quot;s/^'\(.\+\)'.*MD5Sum:\(\S\+\)\s*$/\1::MD5Sum:\2/&amp;quot;); do&lt;br /&gt;
    uri=&amp;quot;${urimd5%::MD5Sum:*}&amp;quot;&lt;br /&gt;
    checksum=&amp;quot;${urimd5#*::MD5Sum:}&amp;quot;&lt;br /&gt;
    echo &amp;quot;$(get_mirrors &amp;quot;$uri&amp;quot;)&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    #echo &amp;quot; dir=$DLDIR&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    echo &amp;quot; checksum=md5=$checksum&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    echo &amp;quot; out=$(basename $uri)&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  done&lt;br /&gt;
  #cat &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  #LCK_RM&lt;br /&gt;
  #exit&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Create and insert a PID number to lockfile.&lt;br /&gt;
_create_lock&lt;br /&gt;
&lt;br /&gt;
# Make sure aria2c (in general first parameter from _DOWNLOADER) is available.&lt;br /&gt;
CMD=&amp;quot;$(echo &amp;quot;$_DOWNLOADER&amp;quot; | sed 's/^\s*\([^ ]\+\).*$/\1/')&amp;quot;&lt;br /&gt;
if [ ! $(command -v &amp;quot;$CMD&amp;quot;) ]; then&lt;br /&gt;
msg &amp;quot;Command not found: $CMD&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  msg &amp;quot;You must configure $CONFFILE to use aria2c or another supported download manager&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Make sure package manager is available.&lt;br /&gt;
if [ ! $(command -v &amp;quot;$_APTMGR&amp;quot;) ]; then&lt;br /&gt;
msg &amp;quot;\`$_APTMGR\` command not available.&amp;quot; &amp;quot;warning&amp;quot;&lt;br /&gt;
  msg &amp;quot;You must configure $CONFFILE to use either apt-get or aptitude.&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Run actions.&lt;br /&gt;
if [ &amp;quot;$option&amp;quot; == &amp;quot;install&amp;quot; ]; then&lt;br /&gt;
msg &amp;quot;\n Working... this may take a while.&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  get_uris $@&lt;br /&gt;
&lt;br /&gt;
  # Check if &amp;quot;assume yes&amp;quot; switch is enabled and if yes enable $DOWNLOADBEFORE.&lt;br /&gt;
  #TODO: Get real value over APT items APT::Get::Assume-Yes and&lt;br /&gt;
  # APT::Get::Assume-No .&lt;br /&gt;
  #FIXME: Composed short options e.g. &amp;quot;-yV&amp;quot; are not recognised - we should use&lt;br /&gt;
  # getopts for proper option passing.&lt;br /&gt;
  for option in $@; do&lt;br /&gt;
if [ &amp;quot;$option&amp;quot; == &amp;quot;-y&amp;quot; ] ||&lt;br /&gt;
        [ &amp;quot;$option&amp;quot; == &amp;quot;--yes&amp;quot; ] ||&lt;br /&gt;
        [ &amp;quot;$option&amp;quot; == &amp;quot;--assume-yes&amp;quot; ]; then&lt;br /&gt;
DOWNLOADBEFORE=true&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;--assume-no&amp;quot; ]; then&lt;br /&gt;
DOWNLOADBEFORE=&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
  # Test /tmp/apt-fast.list file exists AND not zero bytes.&lt;br /&gt;
  # Then download all files from the list.&lt;br /&gt;
  if [ $(cat &amp;quot;$DLLIST&amp;quot; | wc -l) -gt 0 ] &amp;amp;&amp;amp; [ ! &amp;quot;$DOWNLOADBEFORE&amp;quot; ]; then&lt;br /&gt;
cat &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    echo -ne &amp;quot;${cRed} If you want to download the packages on your system press Y else n to abort. [Y/n]: ${endColor}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    while ((!updsys)); do&lt;br /&gt;
read -sn1 -t &amp;quot;$APT_FAST_TIMEOUT&amp;quot; answer || { msg &amp;quot;\n Timed out.&amp;quot; &amp;quot;warning&amp;quot;; exit 1; }&lt;br /&gt;
      case &amp;quot;$answer&amp;quot; in&lt;br /&gt;
        [JjYy]) result=1; updsys=1 ;;&lt;br /&gt;
        [Nn]) result=0; updsys=1 ;;&lt;br /&gt;
        &amp;quot;&amp;quot;) result=1; updsys=1 ;;&lt;br /&gt;
        *) updsys=0 ;;&lt;br /&gt;
      esac&lt;br /&gt;
done&lt;br /&gt;
else&lt;br /&gt;
result=1&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
  # Continue if answer was right or DOWNLOADBEFORE is enabled.&lt;br /&gt;
  if ((result)); then&lt;br /&gt;
if [ -s &amp;quot;$DLLIST&amp;quot; ]; then&lt;br /&gt;
      # Test if apt-fast directory is present where we put packages.&lt;br /&gt;
      if [ ! -d &amp;quot;$DLDIR&amp;quot; ]; then&lt;br /&gt;
mkdir -p -- &amp;quot;$DLDIR&amp;quot;&lt;br /&gt;
      fi&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;$DLDIR&amp;quot; &amp;amp;&amp;gt;/dev/null || exit 1&lt;br /&gt;
&lt;br /&gt;
      eval &amp;quot;${_DOWNLOADER}&amp;quot; # execute downloadhelper command&lt;br /&gt;
      if [ $(find &amp;quot;$DLDIR&amp;quot; -printf . | wc -c) -gt 1 ]; then&lt;br /&gt;
        # Move all packages to the apt install directory by force to ensure&lt;br /&gt;
        # already existing debs which may be incomplete are replaced&lt;br /&gt;
        find -type f -name &amp;quot;*.deb&amp;quot; -execdir mv -ft &amp;quot;$APTCACHE&amp;quot; {} \+&lt;br /&gt;
      fi&lt;br /&gt;
cd - &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
    fi&lt;br /&gt;
else&lt;br /&gt;
exit 1&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
  #FIXME: quotes get lost: apt-fast install &amp;quot;foo*&amp;quot; -&amp;gt; apt-get install foo*&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;clean&amp;quot; ]; then&lt;br /&gt;
  #FIXME: quotes get lost (see above)&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@ &amp;amp;&amp;amp; {&lt;br /&gt;
    find &amp;quot;$DLDIR&amp;quot; -maxdepth 1 -type f -delete&lt;br /&gt;
    [ -f &amp;quot;$DLLIST&amp;quot; ] &amp;amp;&amp;amp; rm -f -- &amp;quot;$DLLIST&amp;quot;*&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;download&amp;quot; ]; then&lt;br /&gt;
get_uris $@&lt;br /&gt;
  eval &amp;quot;${_DOWNLOADER}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;source&amp;quot; ]; then&lt;br /&gt;
msg &amp;quot;\n Working... this may take a while.\n&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
  get_uris $@&lt;br /&gt;
  eval &amp;quot;${_DOWNLOADER}&amp;quot;&lt;br /&gt;
  # We use APT manager here to provide more verbose output. This method is&lt;br /&gt;
  # slightly slower then extractiong packages manually after download but also&lt;br /&gt;
  # more hardened (e.g. some options like --compile are available).&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
  # Uncomment following snippet to extract source directly and comment&lt;br /&gt;
  # both lines before.&lt;br /&gt;
  #while read srcfile; do&lt;br /&gt;
  # # extract only .dsc files&lt;br /&gt;
  # echo &amp;quot;$srcfile&amp;quot; | grep -q '\.dsc$' || continue&lt;br /&gt;
  # dpkg-source -x &amp;quot;$(basename &amp;quot;$srcfile&amp;quot;)&amp;quot;&lt;br /&gt;
  #done &amp;lt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Execute package manager directly if unknown options are passed.&lt;br /&gt;
else&lt;br /&gt;
  #FIXME: quotes get lost (see above)&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# After error or all done remove our lockfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
با نگه داشتن دکمه‌های ctrl+x دستور ذخیره‌سازی تغییرات را داده و سپس y را فشرده و دوبار [[Enter Key|کلید ورود]] را بزنید.&lt;br /&gt;
&lt;br /&gt;
==پروندهٔ پیکربندی==&lt;br /&gt;
پروندهٔ پیکربندی را نیز به این صورت ایجاد کنید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano -w apt-fast.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس متن زیر را رونوشت کنید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
###################################################################&lt;br /&gt;
# CONFIGURATION OPTIONS&lt;br /&gt;
###################################################################&lt;br /&gt;
# Every item has a default value besides MIRRORS (which is unset).&lt;br /&gt;
&lt;br /&gt;
# Use aptitude or apt-get?&lt;br /&gt;
# Note that for outputting the package URI list, we always use apt-get&lt;br /&gt;
# ...since aptitude can't do this&lt;br /&gt;
# Optionally add the FULLPATH to apt-get or apt-rpm or aptitude&lt;br /&gt;
# e.g. /usr/bin/aptitude&lt;br /&gt;
#&lt;br /&gt;
# Default: apt-get&lt;br /&gt;
#&lt;br /&gt;
#_APTMGR=apt-get&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Enable DOWNLOADBEFORE to suppress apt-fast confirmation dialog and download&lt;br /&gt;
# packages directly.&lt;br /&gt;
#&lt;br /&gt;
# Default: dialog enabled&lt;br /&gt;
#&lt;br /&gt;
#DOWNLOADBEFORE=true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Choose mirror list to speed up downloads from same archive. To select some&lt;br /&gt;
# mirrors take a look at your distribution's archive mirror lists.&lt;br /&gt;
# Debian: http://www.debian.org/mirror/list&lt;br /&gt;
# Ubuntu: https://launchpad.net/ubuntu/+archivemirrors&lt;br /&gt;
#&lt;br /&gt;
# Examples:&lt;br /&gt;
# To use some German mirrors and official Debian and Ubuntu archives you can use:&lt;br /&gt;
# MIRRORS=( 'http://ftp.debian.org/debian,http://ftp2.de.debian.org/debian,http://ftp.de.debian.org/debian,ftp://ftp.uni-kl.de/debian'&lt;br /&gt;
# 'http://archive.ubuntu.com/ubuntu,http://de.archive.ubuntu.com/ubuntu,http://ftp.halifax.rwth-aachen.de/ubuntu,http://ftp.uni-kl.de/pub/linux/ubuntu,http://mirror.informatik.uni-mannheim.de/pub/linux/distributions/ubuntu/' )&lt;br /&gt;
# To use French Ubuntu mirrors you can use:&lt;br /&gt;
# MIRRORS=( 'http://fr.archive.ubuntu.com/ubuntu,http://bouyguestelecom.ubuntu.lafibre.info/ubuntu,http://mirror.ovh.net/ubuntu,http://ubuntu-archive.mirrors.proxad.net/ubuntu' )&lt;br /&gt;
#&lt;br /&gt;
# Default: disabled&lt;br /&gt;
#&lt;br /&gt;
#MIRRORS=( 'none' )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Maximum number of connections&lt;br /&gt;
# You can use this value in _DOWNLOADER command. Escape with ${}: ${_MAXNUM}&lt;br /&gt;
#&lt;br /&gt;
# Default: 5&lt;br /&gt;
#&lt;br /&gt;
#_MAXNUM=5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Downloadmanager listfile&lt;br /&gt;
# You can use this value in _DOWNLOADER command. Escape with ${}: ${DLLIST}&lt;br /&gt;
#&lt;br /&gt;
# Default: /tmp/apt-fast.list&lt;br /&gt;
#&lt;br /&gt;
#DLLIST=/tmp/apt-fast.list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Download command to use. Temporary download list is designed for aria2. But&lt;br /&gt;
# you can choose another download command or download manager. It has to&lt;br /&gt;
# support following input file syntax (\t is tab character):&lt;br /&gt;
#&lt;br /&gt;
# # Comment&lt;br /&gt;
# MIRROR1\tMIRROR2\tMIRROR3...&lt;br /&gt;
# out=FILENAME1&lt;br /&gt;
# MIRROR1\tMIRROR2\tMIRROR3...&lt;br /&gt;
# out=FILENAME2&lt;br /&gt;
# ...&lt;br /&gt;
#&lt;br /&gt;
# Examples:&lt;br /&gt;
# aria2c with a proxy (set username, proxy, ip and password!)&lt;br /&gt;
# _DOWNLOADER='aria2c -c 20 -j ${_MAXNUM} --http-proxy=http://username:password@proxy_ip:proxy_port -i ${DLLIST}'&lt;br /&gt;
#&lt;br /&gt;
# Default: _DOWNLOADER='aria2c -c -j ${_MAXNUM} -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
#&lt;br /&gt;
#_DOWNLOADER='aria2c -c -j ${_MAXNUM} -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Download temp folder for Downloadmanager&lt;br /&gt;
# example /tmp/apt-fast. Standard is /var/cache/archives/apt-fast&lt;br /&gt;
#&lt;br /&gt;
# Default: /var/cache/apt/archives/apt-fast&lt;br /&gt;
#&lt;br /&gt;
#DLDIR=/var/cache/apt/archives/apt-fast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# APT archives cache directory&lt;br /&gt;
#&lt;br /&gt;
# Default /var/cache/apt/archives&lt;br /&gt;
# (APT configuration items Dir::Cache and Dir::Cache::archives)&lt;br /&gt;
#&lt;br /&gt;
#APTCACHE=/var/cache/apt/archives&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# apt-fast colors&lt;br /&gt;
# Colors are disabled when not using a terminal.&lt;br /&gt;
#&lt;br /&gt;
# Default colors are:&lt;br /&gt;
# cGreen='\e[0;32m'&lt;br /&gt;
# cRed='\e[0;31m'&lt;br /&gt;
# cBlue='\e[0;34m'&lt;br /&gt;
# endColor='\e[0m'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
نهایتا با نگه داشتن دکمه‌های ctrl+x دستور ذخیره‌سازی تغییرات را داده و سپس y را فشرده و دوبار [[Enter Key|کلید ورود]] را بزنید.&lt;br /&gt;
&lt;br /&gt;
برای قابل استفاده کردن آن به صورت سراسری دستورهای زیر را وارد کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo chmod +x apt-fast&lt;br /&gt;
$ sudo mv apt-fast /usr/bin/&lt;br /&gt;
$ sudo mv apt-fast.conf /etc/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
حال می‌توانید از apt-fast در [[CLI|خط فرمان]] استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[رده:نرم‌افزارهای مدیریت بارگیری]]&lt;br /&gt;
[[رده:مدیر بسته]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=Apt-fast&amp;diff=646</id>
		<title>Apt-fast</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=Apt-fast&amp;diff=646"/>
				<updated>2015-06-30T12:20:18Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;apt-fast یک [[Script|اسکریپت]] است که امکان بارگیری از مخازن [[APT]] را با اتّصال‌های موازی به کاربر می‌دهد و یکی از تفاوتهایش با apt-get اینست که ابتدا فایلها را دانلود میکند سپس با معرفی آنها به شما ، با تایید شما آنها را نصب میکند ولی در apt-get ابتدا فایهای مورد نظر به شما معرفی میشوند سپس با تایید شما آنها را دانلود و نصب میکند .&lt;br /&gt;
&lt;br /&gt;
=ساختار=&lt;br /&gt;
این برنامه دارای دو پرونده است که یکی برنامه‌ی اصلی بوده و دیگری پرونده‌ی پیکربندی آن است. این اسکریپت از دو نرم‌افزار apt-get و [[aria2]] استفاده می کند.apt-get به طور پیش‌گزیده در [[Ubuntu|اوبونتو]] نصب است ، بنابراین فقط برنامه aria2 را نصب کنید.&lt;br /&gt;
&lt;br /&gt;
=ایجاد=&lt;br /&gt;
==برنامه‌ٔ اصلی==&lt;br /&gt;
اسکریپت را به روش زیر بسازید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano apt-fast&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بعد متن زیر را در آن رونوشت کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# apt-fast v1.8&lt;br /&gt;
# Use this just like aptitude or apt-get for faster package downloading.&lt;br /&gt;
#&lt;br /&gt;
# Copyright: 2008-2012 Matt Parnell, http://www.mattparnell.com&lt;br /&gt;
# Improvements, maintenance, revisions - 2012 Dominique Lasserre&lt;br /&gt;
#&lt;br /&gt;
# You may distribute this file under the terms of the GNU General&lt;br /&gt;
# Public License as published by the Free Software Foundation; either&lt;br /&gt;
# version 3 of the License, or (at your option) any later version.&lt;br /&gt;
#&lt;br /&gt;
[ -n &amp;quot;$DEBUG&amp;quot; ] &amp;amp;&amp;amp; set -xv&lt;br /&gt;
&lt;br /&gt;
# Print colored messages.&lt;br /&gt;
# Usage: msg &amp;quot;message text&amp;quot; &amp;quot;message type&amp;quot; &amp;quot;optional: err&amp;quot;&lt;br /&gt;
# Message types are 'normal', 'hint' or 'warning'. Warnings and messages with a&lt;br /&gt;
# third argument are piped to stderr.&lt;br /&gt;
msg(){&lt;br /&gt;
  case &amp;quot;$2&amp;quot; in&lt;br /&gt;
    normal) beginColor=&amp;quot;$cGreen&amp;quot;;;&lt;br /&gt;
    hint) beginColor=&amp;quot;$cBlue&amp;quot;;;&lt;br /&gt;
    warning) beginColor=&amp;quot;$cRed&amp;quot;;;&lt;br /&gt;
  esac&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$3&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$2&amp;quot; != &amp;quot;warning&amp;quot; ]; then&lt;br /&gt;
echo -e &amp;quot;${aptfast_prefix} ${beginColor}$1${endColor}&amp;quot;;&lt;br /&gt;
  else&lt;br /&gt;
echo -e &amp;quot;${aptfast_prefix} ${beginColor}$1${endColor}&amp;quot;; &amp;gt;&amp;amp;2&lt;br /&gt;
  fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Search for known options and decide if root privileges are needed.&lt;br /&gt;
root=1 # default value: we need root privileges&lt;br /&gt;
option=&lt;br /&gt;
for arguments in $@; do&lt;br /&gt;
if [ &amp;quot;$arguments&amp;quot; == &amp;quot;upgrade&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;install&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;dist-upgrade&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;build-dep&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;install&amp;quot;&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;clean&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;autoclean&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;clean&amp;quot;&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;download&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;download&amp;quot;&lt;br /&gt;
    root=0&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;source&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;source&amp;quot;&lt;br /&gt;
    root=0&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;changelog&amp;quot; ]; then&lt;br /&gt;
root=0&lt;br /&gt;
    break&lt;br /&gt;
fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# To handle priority of options correctly (environment over config file vars)&lt;br /&gt;
# we need to preserve all interesting env variables. As this wouldn't be&lt;br /&gt;
# difficult enough we have to preserve complete env vars (especially if value&lt;br /&gt;
# ist set (even empty) or not) when changing context (sudo)...&lt;br /&gt;
# Set a 'random' string to all unset variables.&lt;br /&gt;
TMP_RANDOM=&amp;quot;13979853562951413&amp;quot;&lt;br /&gt;
TMP_LCK_FILE=&amp;quot;${LCK_FILE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DOWNLOADBEFORE=&amp;quot;${DOWNLOADBEFORE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP__APTMGR=&amp;quot;${_APTMGR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_APTCACHE=&amp;quot;${APTCACHE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DLDIR=&amp;quot;${DLDIR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DLLIST=&amp;quot;${DLLIST-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_LISTDIR=&amp;quot;${LISTDIR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP__MAXNUM=&amp;quot;${MAXNUM-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_aptfast_prefix=&amp;quot;${aptfast_prefix-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_APT_FAST_TIMEOUT=&amp;quot;${APT_FAST_TIMEOUT-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Check for proper privileges.&lt;br /&gt;
# Call explicitly with environment variables to get them into root conext.&lt;br /&gt;
if [ &amp;quot;$root&amp;quot; = 1 -a &amp;quot;$UID&amp;quot; != 0 ]; then&lt;br /&gt;
exec sudo DEBUG=&amp;quot;$DEBUG&amp;quot; \&lt;br /&gt;
            LCK_FILE=&amp;quot;$TMP_LCK_FILE&amp;quot; \&lt;br /&gt;
            DOWNLOADBEFORE=&amp;quot;$TMP_DOWNLOADBEFORE&amp;quot; \&lt;br /&gt;
            _APTMGR=&amp;quot;$TMP__APTMGR&amp;quot; \&lt;br /&gt;
            APTCACHE=&amp;quot;$TMP_APTCACHE&amp;quot; \&lt;br /&gt;
            DLDIR=&amp;quot;$TMP_DLDIR&amp;quot; \&lt;br /&gt;
            DLLIST=&amp;quot;$TMP_DLLIST&amp;quot; \&lt;br /&gt;
            LISTDIR=&amp;quot;$TMP_LISTDIR&amp;quot; \&lt;br /&gt;
            _MAXNUM=&amp;quot;$TMP_MAXNUM&amp;quot; \&lt;br /&gt;
            aptfast_prefix=&amp;quot;$TMP_aptfast_prefix&amp;quot; \&lt;br /&gt;
            APT_FAST_TIMEOUT=&amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot; &amp;quot;$0&amp;quot; &amp;quot;$@&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Define lockfile.&lt;br /&gt;
# Use /tmp as directory because everybody (not only root) has to have write&lt;br /&gt;
# permissions.&lt;br /&gt;
# We need lock for non-root commands too, because we only have one download&lt;br /&gt;
# list file.&lt;br /&gt;
LCK_FILE=&amp;quot;/tmp/apt-fast&amp;quot;&lt;br /&gt;
LCK_FD=99&lt;br /&gt;
&lt;br /&gt;
# Set default package manager, APT cache, temporary download dir,&lt;br /&gt;
# temporary download list file, and maximal parallel downloads&lt;br /&gt;
_APTMGR=apt-get&lt;br /&gt;
eval $(apt-config shell APTCACHE Dir::Cache::archives/d)&lt;br /&gt;
# Check if APT config option Dir::Cache::archives::apt-fast-partial is set.&lt;br /&gt;
eval $(apt-config shell apt_fast_partial Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
if [ -z &amp;quot;$apt_fast_partial&amp;quot; ]; then&lt;br /&gt;
eval $(apt-config -o Dir::Cache::archives::apt-fast-partial=apt-fast shell DLDIR Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
else&lt;br /&gt;
eval $(apt-config shell DLDIR Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
fi&lt;br /&gt;
# Currently not needed.&lt;br /&gt;
eval $(apt-config shell LISTDIR Dir::State::lists/d)&lt;br /&gt;
DLLIST=&amp;quot;/tmp/apt-fast.list&amp;quot;&lt;br /&gt;
_MAXNUM=5&lt;br /&gt;
&lt;br /&gt;
# Prefix in front of apt-fast output:&lt;br /&gt;
aptfast_prefix=&lt;br /&gt;
&lt;br /&gt;
# Set color variables.&lt;br /&gt;
cGreen='\e[0;32m'&lt;br /&gt;
cRed='\e[0;31m'&lt;br /&gt;
cBlue='\e[0;34m'&lt;br /&gt;
endColor='\e[0m'&lt;br /&gt;
&lt;br /&gt;
# Set timout value for apt-fast download confirmation dialog.&lt;br /&gt;
# Value is in seconds.&lt;br /&gt;
APT_FAST_TIMEOUT=60&lt;br /&gt;
&lt;br /&gt;
# Download command.&lt;br /&gt;
_DOWNLOADER='aria2c -c -j ${_MAXNUM} -k1M -s16 -x16 -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
&lt;br /&gt;
# Load config file.&lt;br /&gt;
CONFFILE=&amp;quot;/etc/apt-fast.conf&amp;quot;&lt;br /&gt;
if [ -e &amp;quot;$CONFFILE&amp;quot; ]; then&lt;br /&gt;
source &amp;quot;$CONFFILE&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Now overwrite with preserved values if values were set before (compare with&lt;br /&gt;
# 'random' string).&lt;br /&gt;
[ &amp;quot;$TMP_LCK_FILE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || LCK_FILE=&amp;quot;$TMP_LCK_FILE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DOWNLOADBEFORE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DOWNLOADBEFORE=&amp;quot;$TMP_DOWNLOADBEFORE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP__APTMGR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || _APTMGR=&amp;quot;$TMP__APTMGR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_APTCACHE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || APTCACHE=&amp;quot;$TMP_APTCACHE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DLDIR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DLDIR=&amp;quot;$TMP_DLDIR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DLLIST&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DLLIST=&amp;quot;$TMP_DLLIST&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_LISTDIR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || LISTDIR=&amp;quot;$TMP_LISTDIR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP__MAXNUM&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || _MAXNUM=&amp;quot;$TMP__MAXNUM&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_aptfast_prefix&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || aptfast_prefix=&amp;quot;$TMP_aptfast_prefix&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || APT_FAST_TIMEOUT=&amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Disable colors if not executed in terminal.&lt;br /&gt;
if [ ! -t 1 ]; then&lt;br /&gt;
cGreen=&lt;br /&gt;
  cRed=&lt;br /&gt;
  cBlue=&lt;br /&gt;
  endColor=&lt;br /&gt;
  #FIXME: Time not updated.&lt;br /&gt;
  [ -z &amp;quot;$aptfast_prefix&amp;quot; ] &amp;amp;&amp;amp; aptfast_prefix=&amp;quot;[apt-fast $(date +&amp;quot;%T&amp;quot;)]&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
msg_already_running()&lt;br /&gt;
{&lt;br /&gt;
  msg &amp;quot;apt-fast already running!&amp;quot; &amp;quot;warning&amp;quot;&lt;br /&gt;
  msg &amp;quot;Verify that all apt-fast processes are finished then remove $LCK_FILE.lock and try again.&amp;quot; &amp;quot;hint&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Check if a lock file exists.&lt;br /&gt;
if [ -f &amp;quot;$LCK_FILE.lock&amp;quot; ]; then&lt;br /&gt;
msg_already_running&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# create the lock file and lock it, die on failure&lt;br /&gt;
_create_lock()&lt;br /&gt;
{&lt;br /&gt;
    eval &amp;quot;exec $LCK_FD&amp;gt;\&amp;quot;$LCK_FILE.lock\&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    trap &amp;quot;_remove_lock; exit&amp;quot; EXIT&lt;br /&gt;
    trap &amp;quot;_remove_lock; exit 1;&amp;quot; INT KILL TERM&lt;br /&gt;
&lt;br /&gt;
    flock -n $LCK_FD || { msg_already_running; exit 1; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# unlock and remove the lock file&lt;br /&gt;
_remove_lock()&lt;br /&gt;
{&lt;br /&gt;
    flock -u &amp;quot;$LCK_FD&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
    rm -f &amp;quot;$LCK_FILE.lock&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Check if mirrors are available. And if so add all mirrors to download list.&lt;br /&gt;
get_mirrors(){&lt;br /&gt;
  # Check all mirror lists.&lt;br /&gt;
  for mirrorstr in ${MIRRORS[@]}; do&lt;br /&gt;
    # Build mirrors array from comma separated string.&lt;br /&gt;
    mirrors=( $(echo &amp;quot;$mirrorstr&amp;quot; | sed &amp;quot;s/\([^,]\+\)\s*,\s*/\1 /g&amp;quot;) )&lt;br /&gt;
    # This does not the \s*,\s* trick, so we use sed instead to make it more&lt;br /&gt;
    # robust.&lt;br /&gt;
    #mirrors=( ${mirrorstr//,/ } )&lt;br /&gt;
    # Check for all mirrors if URI of $1 is from mirror. If so add all other&lt;br /&gt;
    # mirrors to (resmirror) list and break all loops.&lt;br /&gt;
    for mirror in ${mirrors[@]}; do&lt;br /&gt;
      # Real expension.&lt;br /&gt;
      if [[ &amp;quot;$1&amp;quot; == &amp;quot;$mirror&amp;quot;* ]]; then&lt;br /&gt;
filepath=${1#${mirror}}&lt;br /&gt;
        # Build list for aria download list.&lt;br /&gt;
        list=&amp;quot;${mirrors[@]}&amp;quot;&lt;br /&gt;
        echo -e &amp;quot;${list// /${filepath}\t}$filepath\n&amp;quot;&lt;br /&gt;
        return 0&lt;br /&gt;
      fi&lt;br /&gt;
done&lt;br /&gt;
done&lt;br /&gt;
  # No other mirrors found.&lt;br /&gt;
  echo &amp;quot;$1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get the package URLs.&lt;br /&gt;
get_uris(){&lt;br /&gt;
  # Add header to overwrite file.&lt;br /&gt;
  echo &amp;quot;# apt-fast mirror list: $(date)&amp;quot; &amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  #NOTE: aptitude doesn't have this functionality, so we use apt-get to get&lt;br /&gt;
  # package URIs.&lt;br /&gt;
  for urimd5 in $(apt-get -y --print-uris $@ | egrep &amp;quot;^'(http(s|)|(s|)ftp)://[^']+'.+ MD5Sum:\S+\s*$&amp;quot; |&lt;br /&gt;
      sed &amp;quot;s/^'\(.\+\)'.*MD5Sum:\(\S\+\)\s*$/\1::MD5Sum:\2/&amp;quot;); do&lt;br /&gt;
  #for urimd5 in $(cat foo | egrep &amp;quot;^'(http(s|)|(s|)ftp)://[^']+'.+ MD5Sum:\S+\s*$&amp;quot; |&lt;br /&gt;
  # sed &amp;quot;s/^'\(.\+\)'.*MD5Sum:\(\S\+\)\s*$/\1::MD5Sum:\2/&amp;quot;); do&lt;br /&gt;
    uri=&amp;quot;${urimd5%::MD5Sum:*}&amp;quot;&lt;br /&gt;
    checksum=&amp;quot;${urimd5#*::MD5Sum:}&amp;quot;&lt;br /&gt;
    echo &amp;quot;$(get_mirrors &amp;quot;$uri&amp;quot;)&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    #echo &amp;quot; dir=$DLDIR&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    echo &amp;quot; checksum=md5=$checksum&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    echo &amp;quot; out=$(basename $uri)&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  done&lt;br /&gt;
  #cat &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  #LCK_RM&lt;br /&gt;
  #exit&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Create and insert a PID number to lockfile.&lt;br /&gt;
_create_lock&lt;br /&gt;
&lt;br /&gt;
# Make sure aria2c (in general first parameter from _DOWNLOADER) is available.&lt;br /&gt;
CMD=&amp;quot;$(echo &amp;quot;$_DOWNLOADER&amp;quot; | sed 's/^\s*\([^ ]\+\).*$/\1/')&amp;quot;&lt;br /&gt;
if [ ! $(command -v &amp;quot;$CMD&amp;quot;) ]; then&lt;br /&gt;
msg &amp;quot;Command not found: $CMD&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  msg &amp;quot;You must configure $CONFFILE to use aria2c or another supported download manager&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Make sure package manager is available.&lt;br /&gt;
if [ ! $(command -v &amp;quot;$_APTMGR&amp;quot;) ]; then&lt;br /&gt;
msg &amp;quot;\`$_APTMGR\` command not available.&amp;quot; &amp;quot;warning&amp;quot;&lt;br /&gt;
  msg &amp;quot;You must configure $CONFFILE to use either apt-get or aptitude.&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Run actions.&lt;br /&gt;
if [ &amp;quot;$option&amp;quot; == &amp;quot;install&amp;quot; ]; then&lt;br /&gt;
msg &amp;quot;\n Working... this may take a while.&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  get_uris $@&lt;br /&gt;
&lt;br /&gt;
  # Check if &amp;quot;assume yes&amp;quot; switch is enabled and if yes enable $DOWNLOADBEFORE.&lt;br /&gt;
  #TODO: Get real value over APT items APT::Get::Assume-Yes and&lt;br /&gt;
  # APT::Get::Assume-No .&lt;br /&gt;
  #FIXME: Composed short options e.g. &amp;quot;-yV&amp;quot; are not recognised - we should use&lt;br /&gt;
  # getopts for proper option passing.&lt;br /&gt;
  for option in $@; do&lt;br /&gt;
if [ &amp;quot;$option&amp;quot; == &amp;quot;-y&amp;quot; ] ||&lt;br /&gt;
        [ &amp;quot;$option&amp;quot; == &amp;quot;--yes&amp;quot; ] ||&lt;br /&gt;
        [ &amp;quot;$option&amp;quot; == &amp;quot;--assume-yes&amp;quot; ]; then&lt;br /&gt;
DOWNLOADBEFORE=true&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;--assume-no&amp;quot; ]; then&lt;br /&gt;
DOWNLOADBEFORE=&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
  # Test /tmp/apt-fast.list file exists AND not zero bytes.&lt;br /&gt;
  # Then download all files from the list.&lt;br /&gt;
  if [ $(cat &amp;quot;$DLLIST&amp;quot; | wc -l) -gt 0 ] &amp;amp;&amp;amp; [ ! &amp;quot;$DOWNLOADBEFORE&amp;quot; ]; then&lt;br /&gt;
cat &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    echo -ne &amp;quot;${cRed} If you want to download the packages on your system press Y else n to abort. [Y/n]: ${endColor}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    while ((!updsys)); do&lt;br /&gt;
read -sn1 -t &amp;quot;$APT_FAST_TIMEOUT&amp;quot; answer || { msg &amp;quot;\n Timed out.&amp;quot; &amp;quot;warning&amp;quot;; exit 1; }&lt;br /&gt;
      case &amp;quot;$answer&amp;quot; in&lt;br /&gt;
        [JjYy]) result=1; updsys=1 ;;&lt;br /&gt;
        [Nn]) result=0; updsys=1 ;;&lt;br /&gt;
        &amp;quot;&amp;quot;) result=1; updsys=1 ;;&lt;br /&gt;
        *) updsys=0 ;;&lt;br /&gt;
      esac&lt;br /&gt;
done&lt;br /&gt;
else&lt;br /&gt;
result=1&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
  # Continue if answer was right or DOWNLOADBEFORE is enabled.&lt;br /&gt;
  if ((result)); then&lt;br /&gt;
if [ -s &amp;quot;$DLLIST&amp;quot; ]; then&lt;br /&gt;
      # Test if apt-fast directory is present where we put packages.&lt;br /&gt;
      if [ ! -d &amp;quot;$DLDIR&amp;quot; ]; then&lt;br /&gt;
mkdir -p -- &amp;quot;$DLDIR&amp;quot;&lt;br /&gt;
      fi&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;$DLDIR&amp;quot; &amp;amp;&amp;gt;/dev/null || exit 1&lt;br /&gt;
&lt;br /&gt;
      eval &amp;quot;${_DOWNLOADER}&amp;quot; # execute downloadhelper command&lt;br /&gt;
      if [ $(find &amp;quot;$DLDIR&amp;quot; -printf . | wc -c) -gt 1 ]; then&lt;br /&gt;
        # Move all packages to the apt install directory by force to ensure&lt;br /&gt;
        # already existing debs which may be incomplete are replaced&lt;br /&gt;
        find -type f -name &amp;quot;*.deb&amp;quot; -execdir mv -ft &amp;quot;$APTCACHE&amp;quot; {} \+&lt;br /&gt;
      fi&lt;br /&gt;
cd - &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
    fi&lt;br /&gt;
else&lt;br /&gt;
exit 1&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
  #FIXME: quotes get lost: apt-fast install &amp;quot;foo*&amp;quot; -&amp;gt; apt-get install foo*&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;clean&amp;quot; ]; then&lt;br /&gt;
  #FIXME: quotes get lost (see above)&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@ &amp;amp;&amp;amp; {&lt;br /&gt;
    find &amp;quot;$DLDIR&amp;quot; -maxdepth 1 -type f -delete&lt;br /&gt;
    [ -f &amp;quot;$DLLIST&amp;quot; ] &amp;amp;&amp;amp; rm -f -- &amp;quot;$DLLIST&amp;quot;*&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;download&amp;quot; ]; then&lt;br /&gt;
get_uris $@&lt;br /&gt;
  eval &amp;quot;${_DOWNLOADER}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;source&amp;quot; ]; then&lt;br /&gt;
msg &amp;quot;\n Working... this may take a while.\n&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
  get_uris $@&lt;br /&gt;
  eval &amp;quot;${_DOWNLOADER}&amp;quot;&lt;br /&gt;
  # We use APT manager here to provide more verbose output. This method is&lt;br /&gt;
  # slightly slower then extractiong packages manually after download but also&lt;br /&gt;
  # more hardened (e.g. some options like --compile are available).&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
  # Uncomment following snippet to extract source directly and comment&lt;br /&gt;
  # both lines before.&lt;br /&gt;
  #while read srcfile; do&lt;br /&gt;
  # # extract only .dsc files&lt;br /&gt;
  # echo &amp;quot;$srcfile&amp;quot; | grep -q '\.dsc$' || continue&lt;br /&gt;
  # dpkg-source -x &amp;quot;$(basename &amp;quot;$srcfile&amp;quot;)&amp;quot;&lt;br /&gt;
  #done &amp;lt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Execute package manager directly if unknown options are passed.&lt;br /&gt;
else&lt;br /&gt;
  #FIXME: quotes get lost (see above)&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# After error or all done remove our lockfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
با نگه داشتن دکمه‌های ctrl+x دستور ذخیره‌سازی تغییرات را داده و سپس y را فشرده و دوبار [[Enter Key|کلید ورود]] را بزنید.&lt;br /&gt;
&lt;br /&gt;
==پروندهٔ پیکربندی==&lt;br /&gt;
پروندهٔ پیکربندی را نیز به این صورت ایجاد کنید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nano -w apt-fast.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس متن زیر را رونوشت کنید:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
###################################################################&lt;br /&gt;
# CONFIGURATION OPTIONS&lt;br /&gt;
###################################################################&lt;br /&gt;
# Every item has a default value besides MIRRORS (which is unset).&lt;br /&gt;
&lt;br /&gt;
# Use aptitude or apt-get?&lt;br /&gt;
# Note that for outputting the package URI list, we always use apt-get&lt;br /&gt;
# ...since aptitude can't do this&lt;br /&gt;
# Optionally add the FULLPATH to apt-get or apt-rpm or aptitude&lt;br /&gt;
# e.g. /usr/bin/aptitude&lt;br /&gt;
#&lt;br /&gt;
# Default: apt-get&lt;br /&gt;
#&lt;br /&gt;
#_APTMGR=apt-get&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Enable DOWNLOADBEFORE to suppress apt-fast confirmation dialog and download&lt;br /&gt;
# packages directly.&lt;br /&gt;
#&lt;br /&gt;
# Default: dialog enabled&lt;br /&gt;
#&lt;br /&gt;
#DOWNLOADBEFORE=true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Choose mirror list to speed up downloads from same archive. To select some&lt;br /&gt;
# mirrors take a look at your distribution's archive mirror lists.&lt;br /&gt;
# Debian: http://www.debian.org/mirror/list&lt;br /&gt;
# Ubuntu: https://launchpad.net/ubuntu/+archivemirrors&lt;br /&gt;
#&lt;br /&gt;
# Examples:&lt;br /&gt;
# To use some German mirrors and official Debian and Ubuntu archives you can use:&lt;br /&gt;
# MIRRORS=( 'http://ftp.debian.org/debian,http://ftp2.de.debian.org/debian,http://ftp.de.debian.org/debian,ftp://ftp.uni-kl.de/debian'&lt;br /&gt;
# 'http://archive.ubuntu.com/ubuntu,http://de.archive.ubuntu.com/ubuntu,http://ftp.halifax.rwth-aachen.de/ubuntu,http://ftp.uni-kl.de/pub/linux/ubuntu,http://mirror.informatik.uni-mannheim.de/pub/linux/distributions/ubuntu/' )&lt;br /&gt;
# To use French Ubuntu mirrors you can use:&lt;br /&gt;
# MIRRORS=( 'http://fr.archive.ubuntu.com/ubuntu,http://bouyguestelecom.ubuntu.lafibre.info/ubuntu,http://mirror.ovh.net/ubuntu,http://ubuntu-archive.mirrors.proxad.net/ubuntu' )&lt;br /&gt;
#&lt;br /&gt;
# Default: disabled&lt;br /&gt;
#&lt;br /&gt;
#MIRRORS=( 'none' )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Maximum number of connections&lt;br /&gt;
# You can use this value in _DOWNLOADER command. Escape with ${}: ${_MAXNUM}&lt;br /&gt;
#&lt;br /&gt;
# Default: 5&lt;br /&gt;
#&lt;br /&gt;
#_MAXNUM=5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Downloadmanager listfile&lt;br /&gt;
# You can use this value in _DOWNLOADER command. Escape with ${}: ${DLLIST}&lt;br /&gt;
#&lt;br /&gt;
# Default: /tmp/apt-fast.list&lt;br /&gt;
#&lt;br /&gt;
#DLLIST=/tmp/apt-fast.list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Download command to use. Temporary download list is designed for aria2. But&lt;br /&gt;
# you can choose another download command or download manager. It has to&lt;br /&gt;
# support following input file syntax (\t is tab character):&lt;br /&gt;
#&lt;br /&gt;
# # Comment&lt;br /&gt;
# MIRROR1\tMIRROR2\tMIRROR3...&lt;br /&gt;
# out=FILENAME1&lt;br /&gt;
# MIRROR1\tMIRROR2\tMIRROR3...&lt;br /&gt;
# out=FILENAME2&lt;br /&gt;
# ...&lt;br /&gt;
#&lt;br /&gt;
# Examples:&lt;br /&gt;
# aria2c with a proxy (set username, proxy, ip and password!)&lt;br /&gt;
# _DOWNLOADER='aria2c -c 20 -j ${_MAXNUM} --http-proxy=http://username:password@proxy_ip:proxy_port -i ${DLLIST}'&lt;br /&gt;
#&lt;br /&gt;
# Default: _DOWNLOADER='aria2c -c -j ${_MAXNUM} -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
#&lt;br /&gt;
#_DOWNLOADER='aria2c -c -j ${_MAXNUM} -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Download temp folder for Downloadmanager&lt;br /&gt;
# example /tmp/apt-fast. Standard is /var/cache/archives/apt-fast&lt;br /&gt;
#&lt;br /&gt;
# Default: /var/cache/apt/archives/apt-fast&lt;br /&gt;
#&lt;br /&gt;
#DLDIR=/var/cache/apt/archives/apt-fast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# APT archives cache directory&lt;br /&gt;
#&lt;br /&gt;
# Default /var/cache/apt/archives&lt;br /&gt;
# (APT configuration items Dir::Cache and Dir::Cache::archives)&lt;br /&gt;
#&lt;br /&gt;
#APTCACHE=/var/cache/apt/archives&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# apt-fast colors&lt;br /&gt;
# Colors are disabled when not using a terminal.&lt;br /&gt;
#&lt;br /&gt;
# Default colors are:&lt;br /&gt;
# cGreen='\e[0;32m'&lt;br /&gt;
# cRed='\e[0;31m'&lt;br /&gt;
# cBlue='\e[0;34m'&lt;br /&gt;
# endColor='\e[0m'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
نهایتا با نگه داشتن دکمه‌های ctrl+x دستور ذخیره‌سازی تغییرات را داده و سپس y را فشرده و دوبار [[Enter Key|کلید ورود]] را بزنید.&lt;br /&gt;
&lt;br /&gt;
برای قابل استفاده کردن آن به صورت سراسری دستورهای زیر را وارد کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo chmod +x apt-fast&lt;br /&gt;
$ sudo mv apt-fast /usr/bin/&lt;br /&gt;
$ sudo mv apt-fast.conf /etc/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
حال می‌توانید از apt-fast در [[CLI|خط فرمان]] استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[رده:نرم‌افزارهای مدیریت بارگیری]]&lt;br /&gt;
[[رده:مدیر بسته]]&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	<entry>
		<id>https://wiki.ubuntu-ir.org/index.php?title=Apt-fast&amp;diff=627</id>
		<title>Apt-fast</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubuntu-ir.org/index.php?title=Apt-fast&amp;diff=627"/>
				<updated>2015-06-29T18:13:54Z</updated>
		
		<summary type="html">&lt;p&gt;Narayana: Narayana صفحهٔ Apt-fast را به رده:Apt-fast منتقل کرد&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
apt-fast برنامه نیست بلکه یک اسکریپت است که دارای دو فایل است و کافی است که آن دو را ایجاد کنید . این اسکریپت از دو برنامه‌ی apt-get و aria2 استفاده می کند برنامه ی apt-get به طور پیشفرض نصب است ، بنابراین فقط برنامه aria2 را نصب کنید . حال اسکریپت را به روش زیر بسازید :&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~&lt;br /&gt;
touch apt-fast&lt;br /&gt;
touch apt-fast.conf&lt;br /&gt;
nano -w apt-fast&amp;lt;/pre&amp;gt;&lt;br /&gt;
بعد کد زیر را کپی کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# apt-fast v1.8&lt;br /&gt;
# Use this just like aptitude or apt-get for faster package downloading.&lt;br /&gt;
#&lt;br /&gt;
# Copyright: 2008-2012 Matt Parnell, http://www.mattparnell.com&lt;br /&gt;
# Improvements, maintenance, revisions - 2012 Dominique Lasserre&lt;br /&gt;
#&lt;br /&gt;
# You may distribute this file under the terms of the GNU General&lt;br /&gt;
# Public License as published by the Free Software Foundation; either&lt;br /&gt;
# version 3 of the License, or (at your option) any later version.&lt;br /&gt;
#&lt;br /&gt;
[ -n &amp;quot;$DEBUG&amp;quot; ] &amp;amp;&amp;amp; set -xv&lt;br /&gt;
&lt;br /&gt;
# Print colored messages.&lt;br /&gt;
# Usage: msg &amp;quot;message text&amp;quot; &amp;quot;message type&amp;quot; &amp;quot;optional: err&amp;quot;&lt;br /&gt;
# Message types are 'normal', 'hint' or 'warning'. Warnings and messages with a&lt;br /&gt;
# third argument are piped to stderr.&lt;br /&gt;
msg(){&lt;br /&gt;
  case &amp;quot;$2&amp;quot; in&lt;br /&gt;
    normal) beginColor=&amp;quot;$cGreen&amp;quot;;;&lt;br /&gt;
    hint) beginColor=&amp;quot;$cBlue&amp;quot;;;&lt;br /&gt;
    warning) beginColor=&amp;quot;$cRed&amp;quot;;;&lt;br /&gt;
  esac&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$3&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$2&amp;quot; != &amp;quot;warning&amp;quot; ]; then&lt;br /&gt;
echo -e &amp;quot;${aptfast_prefix} ${beginColor}$1${endColor}&amp;quot;;&lt;br /&gt;
  else&lt;br /&gt;
echo -e &amp;quot;${aptfast_prefix} ${beginColor}$1${endColor}&amp;quot;; &amp;gt;&amp;amp;2&lt;br /&gt;
  fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Search for known options and decide if root privileges are needed.&lt;br /&gt;
root=1 # default value: we need root privileges&lt;br /&gt;
option=&lt;br /&gt;
for arguments in $@; do&lt;br /&gt;
if [ &amp;quot;$arguments&amp;quot; == &amp;quot;upgrade&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;install&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;dist-upgrade&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;build-dep&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;install&amp;quot;&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;clean&amp;quot; ] ||&lt;br /&gt;
      [ &amp;quot;$arguments&amp;quot; == &amp;quot;autoclean&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;clean&amp;quot;&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;download&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;download&amp;quot;&lt;br /&gt;
    root=0&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;source&amp;quot; ]; then&lt;br /&gt;
option=&amp;quot;source&amp;quot;&lt;br /&gt;
    root=0&lt;br /&gt;
    break&lt;br /&gt;
elif [ &amp;quot;$arguments&amp;quot; == &amp;quot;changelog&amp;quot; ]; then&lt;br /&gt;
root=0&lt;br /&gt;
    break&lt;br /&gt;
fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# To handle priority of options correctly (environment over config file vars)&lt;br /&gt;
# we need to preserve all interesting env variables. As this wouldn't be&lt;br /&gt;
# difficult enough we have to preserve complete env vars (especially if value&lt;br /&gt;
# ist set (even empty) or not) when changing context (sudo)...&lt;br /&gt;
# Set a 'random' string to all unset variables.&lt;br /&gt;
TMP_RANDOM=&amp;quot;13979853562951413&amp;quot;&lt;br /&gt;
TMP_LCK_FILE=&amp;quot;${LCK_FILE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DOWNLOADBEFORE=&amp;quot;${DOWNLOADBEFORE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP__APTMGR=&amp;quot;${_APTMGR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_APTCACHE=&amp;quot;${APTCACHE-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DLDIR=&amp;quot;${DLDIR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_DLLIST=&amp;quot;${DLLIST-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_LISTDIR=&amp;quot;${LISTDIR-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP__MAXNUM=&amp;quot;${MAXNUM-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_aptfast_prefix=&amp;quot;${aptfast_prefix-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
TMP_APT_FAST_TIMEOUT=&amp;quot;${APT_FAST_TIMEOUT-${TMP_RANDOM}}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Check for proper privileges.&lt;br /&gt;
# Call explicitly with environment variables to get them into root conext.&lt;br /&gt;
if [ &amp;quot;$root&amp;quot; = 1 -a &amp;quot;$UID&amp;quot; != 0 ]; then&lt;br /&gt;
exec sudo DEBUG=&amp;quot;$DEBUG&amp;quot; \&lt;br /&gt;
            LCK_FILE=&amp;quot;$TMP_LCK_FILE&amp;quot; \&lt;br /&gt;
            DOWNLOADBEFORE=&amp;quot;$TMP_DOWNLOADBEFORE&amp;quot; \&lt;br /&gt;
            _APTMGR=&amp;quot;$TMP__APTMGR&amp;quot; \&lt;br /&gt;
            APTCACHE=&amp;quot;$TMP_APTCACHE&amp;quot; \&lt;br /&gt;
            DLDIR=&amp;quot;$TMP_DLDIR&amp;quot; \&lt;br /&gt;
            DLLIST=&amp;quot;$TMP_DLLIST&amp;quot; \&lt;br /&gt;
            LISTDIR=&amp;quot;$TMP_LISTDIR&amp;quot; \&lt;br /&gt;
            _MAXNUM=&amp;quot;$TMP_MAXNUM&amp;quot; \&lt;br /&gt;
            aptfast_prefix=&amp;quot;$TMP_aptfast_prefix&amp;quot; \&lt;br /&gt;
            APT_FAST_TIMEOUT=&amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot; &amp;quot;$0&amp;quot; &amp;quot;$@&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Define lockfile.&lt;br /&gt;
# Use /tmp as directory because everybody (not only root) has to have write&lt;br /&gt;
# permissions.&lt;br /&gt;
# We need lock for non-root commands too, because we only have one download&lt;br /&gt;
# list file.&lt;br /&gt;
LCK_FILE=&amp;quot;/tmp/apt-fast&amp;quot;&lt;br /&gt;
LCK_FD=99&lt;br /&gt;
&lt;br /&gt;
# Set default package manager, APT cache, temporary download dir,&lt;br /&gt;
# temporary download list file, and maximal parallel downloads&lt;br /&gt;
_APTMGR=apt-get&lt;br /&gt;
eval $(apt-config shell APTCACHE Dir::Cache::archives/d)&lt;br /&gt;
# Check if APT config option Dir::Cache::archives::apt-fast-partial is set.&lt;br /&gt;
eval $(apt-config shell apt_fast_partial Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
if [ -z &amp;quot;$apt_fast_partial&amp;quot; ]; then&lt;br /&gt;
eval $(apt-config -o Dir::Cache::archives::apt-fast-partial=apt-fast shell DLDIR Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
else&lt;br /&gt;
eval $(apt-config shell DLDIR Dir::Cache::archives::apt-fast-partial/d)&lt;br /&gt;
fi&lt;br /&gt;
# Currently not needed.&lt;br /&gt;
eval $(apt-config shell LISTDIR Dir::State::lists/d)&lt;br /&gt;
DLLIST=&amp;quot;/tmp/apt-fast.list&amp;quot;&lt;br /&gt;
_MAXNUM=5&lt;br /&gt;
&lt;br /&gt;
# Prefix in front of apt-fast output:&lt;br /&gt;
aptfast_prefix=&lt;br /&gt;
&lt;br /&gt;
# Set color variables.&lt;br /&gt;
cGreen='\e[0;32m'&lt;br /&gt;
cRed='\e[0;31m'&lt;br /&gt;
cBlue='\e[0;34m'&lt;br /&gt;
endColor='\e[0m'&lt;br /&gt;
&lt;br /&gt;
# Set timout value for apt-fast download confirmation dialog.&lt;br /&gt;
# Value is in seconds.&lt;br /&gt;
APT_FAST_TIMEOUT=60&lt;br /&gt;
&lt;br /&gt;
# Download command.&lt;br /&gt;
_DOWNLOADER='aria2c -c -j ${_MAXNUM} -k1M -s16 -x16 -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
&lt;br /&gt;
# Load config file.&lt;br /&gt;
CONFFILE=&amp;quot;/etc/apt-fast.conf&amp;quot;&lt;br /&gt;
if [ -e &amp;quot;$CONFFILE&amp;quot; ]; then&lt;br /&gt;
source &amp;quot;$CONFFILE&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Now overwrite with preserved values if values were set before (compare with&lt;br /&gt;
# 'random' string).&lt;br /&gt;
[ &amp;quot;$TMP_LCK_FILE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || LCK_FILE=&amp;quot;$TMP_LCK_FILE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DOWNLOADBEFORE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DOWNLOADBEFORE=&amp;quot;$TMP_DOWNLOADBEFORE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP__APTMGR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || _APTMGR=&amp;quot;$TMP__APTMGR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_APTCACHE&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || APTCACHE=&amp;quot;$TMP_APTCACHE&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DLDIR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DLDIR=&amp;quot;$TMP_DLDIR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_DLLIST&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || DLLIST=&amp;quot;$TMP_DLLIST&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_LISTDIR&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || LISTDIR=&amp;quot;$TMP_LISTDIR&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP__MAXNUM&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || _MAXNUM=&amp;quot;$TMP__MAXNUM&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_aptfast_prefix&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || aptfast_prefix=&amp;quot;$TMP_aptfast_prefix&amp;quot;&lt;br /&gt;
[ &amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot; = &amp;quot;$TMP_RANDOM&amp;quot; ] || APT_FAST_TIMEOUT=&amp;quot;$TMP_APT_FAST_TIMEOUT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Disable colors if not executed in terminal.&lt;br /&gt;
if [ ! -t 1 ]; then&lt;br /&gt;
cGreen=&lt;br /&gt;
  cRed=&lt;br /&gt;
  cBlue=&lt;br /&gt;
  endColor=&lt;br /&gt;
  #FIXME: Time not updated.&lt;br /&gt;
  [ -z &amp;quot;$aptfast_prefix&amp;quot; ] &amp;amp;&amp;amp; aptfast_prefix=&amp;quot;[apt-fast $(date +&amp;quot;%T&amp;quot;)]&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
msg_already_running()&lt;br /&gt;
{&lt;br /&gt;
  msg &amp;quot;apt-fast already running!&amp;quot; &amp;quot;warning&amp;quot;&lt;br /&gt;
  msg &amp;quot;Verify that all apt-fast processes are finished then remove $LCK_FILE.lock and try again.&amp;quot; &amp;quot;hint&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Check if a lock file exists.&lt;br /&gt;
if [ -f &amp;quot;$LCK_FILE.lock&amp;quot; ]; then&lt;br /&gt;
msg_already_running&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# create the lock file and lock it, die on failure&lt;br /&gt;
_create_lock()&lt;br /&gt;
{&lt;br /&gt;
    eval &amp;quot;exec $LCK_FD&amp;gt;\&amp;quot;$LCK_FILE.lock\&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    trap &amp;quot;_remove_lock; exit&amp;quot; EXIT&lt;br /&gt;
    trap &amp;quot;_remove_lock; exit 1;&amp;quot; INT KILL TERM&lt;br /&gt;
&lt;br /&gt;
    flock -n $LCK_FD || { msg_already_running; exit 1; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# unlock and remove the lock file&lt;br /&gt;
_remove_lock()&lt;br /&gt;
{&lt;br /&gt;
    flock -u &amp;quot;$LCK_FD&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
    rm -f &amp;quot;$LCK_FILE.lock&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Check if mirrors are available. And if so add all mirrors to download list.&lt;br /&gt;
get_mirrors(){&lt;br /&gt;
  # Check all mirror lists.&lt;br /&gt;
  for mirrorstr in ${MIRRORS[@]}; do&lt;br /&gt;
    # Build mirrors array from comma separated string.&lt;br /&gt;
    mirrors=( $(echo &amp;quot;$mirrorstr&amp;quot; | sed &amp;quot;s/\([^,]\+\)\s*,\s*/\1 /g&amp;quot;) )&lt;br /&gt;
    # This does not the \s*,\s* trick, so we use sed instead to make it more&lt;br /&gt;
    # robust.&lt;br /&gt;
    #mirrors=( ${mirrorstr//,/ } )&lt;br /&gt;
    # Check for all mirrors if URI of $1 is from mirror. If so add all other&lt;br /&gt;
    # mirrors to (resmirror) list and break all loops.&lt;br /&gt;
    for mirror in ${mirrors[@]}; do&lt;br /&gt;
      # Real expension.&lt;br /&gt;
      if [[ &amp;quot;$1&amp;quot; == &amp;quot;$mirror&amp;quot;* ]]; then&lt;br /&gt;
filepath=${1#${mirror}}&lt;br /&gt;
        # Build list for aria download list.&lt;br /&gt;
        list=&amp;quot;${mirrors[@]}&amp;quot;&lt;br /&gt;
        echo -e &amp;quot;${list// /${filepath}\t}$filepath\n&amp;quot;&lt;br /&gt;
        return 0&lt;br /&gt;
      fi&lt;br /&gt;
done&lt;br /&gt;
done&lt;br /&gt;
  # No other mirrors found.&lt;br /&gt;
  echo &amp;quot;$1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get the package URLs.&lt;br /&gt;
get_uris(){&lt;br /&gt;
  # Add header to overwrite file.&lt;br /&gt;
  echo &amp;quot;# apt-fast mirror list: $(date)&amp;quot; &amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  #NOTE: aptitude doesn't have this functionality, so we use apt-get to get&lt;br /&gt;
  # package URIs.&lt;br /&gt;
  for urimd5 in $(apt-get -y --print-uris $@ | egrep &amp;quot;^'(http(s|)|(s|)ftp)://[^']+'.+ MD5Sum:\S+\s*$&amp;quot; |&lt;br /&gt;
      sed &amp;quot;s/^'\(.\+\)'.*MD5Sum:\(\S\+\)\s*$/\1::MD5Sum:\2/&amp;quot;); do&lt;br /&gt;
  #for urimd5 in $(cat foo | egrep &amp;quot;^'(http(s|)|(s|)ftp)://[^']+'.+ MD5Sum:\S+\s*$&amp;quot; |&lt;br /&gt;
  # sed &amp;quot;s/^'\(.\+\)'.*MD5Sum:\(\S\+\)\s*$/\1::MD5Sum:\2/&amp;quot;); do&lt;br /&gt;
    uri=&amp;quot;${urimd5%::MD5Sum:*}&amp;quot;&lt;br /&gt;
    checksum=&amp;quot;${urimd5#*::MD5Sum:}&amp;quot;&lt;br /&gt;
    echo &amp;quot;$(get_mirrors &amp;quot;$uri&amp;quot;)&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    #echo &amp;quot; dir=$DLDIR&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    echo &amp;quot; checksum=md5=$checksum&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
    echo &amp;quot; out=$(basename $uri)&amp;quot; &amp;gt;&amp;gt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  done&lt;br /&gt;
  #cat &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
  #LCK_RM&lt;br /&gt;
  #exit&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Create and insert a PID number to lockfile.&lt;br /&gt;
_create_lock&lt;br /&gt;
&lt;br /&gt;
# Make sure aria2c (in general first parameter from _DOWNLOADER) is available.&lt;br /&gt;
CMD=&amp;quot;$(echo &amp;quot;$_DOWNLOADER&amp;quot; | sed 's/^\s*\([^ ]\+\).*$/\1/')&amp;quot;&lt;br /&gt;
if [ ! $(command -v &amp;quot;$CMD&amp;quot;) ]; then&lt;br /&gt;
msg &amp;quot;Command not found: $CMD&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  msg &amp;quot;You must configure $CONFFILE to use aria2c or another supported download manager&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Make sure package manager is available.&lt;br /&gt;
if [ ! $(command -v &amp;quot;$_APTMGR&amp;quot;) ]; then&lt;br /&gt;
msg &amp;quot;\`$_APTMGR\` command not available.&amp;quot; &amp;quot;warning&amp;quot;&lt;br /&gt;
  msg &amp;quot;You must configure $CONFFILE to use either apt-get or aptitude.&amp;quot; &amp;quot;normal&amp;quot; &amp;quot;err&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Run actions.&lt;br /&gt;
if [ &amp;quot;$option&amp;quot; == &amp;quot;install&amp;quot; ]; then&lt;br /&gt;
msg &amp;quot;\n Working... this may take a while.&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  get_uris $@&lt;br /&gt;
&lt;br /&gt;
  # Check if &amp;quot;assume yes&amp;quot; switch is enabled and if yes enable $DOWNLOADBEFORE.&lt;br /&gt;
  #TODO: Get real value over APT items APT::Get::Assume-Yes and&lt;br /&gt;
  # APT::Get::Assume-No .&lt;br /&gt;
  #FIXME: Composed short options e.g. &amp;quot;-yV&amp;quot; are not recognised - we should use&lt;br /&gt;
  # getopts for proper option passing.&lt;br /&gt;
  for option in $@; do&lt;br /&gt;
if [ &amp;quot;$option&amp;quot; == &amp;quot;-y&amp;quot; ] ||&lt;br /&gt;
        [ &amp;quot;$option&amp;quot; == &amp;quot;--yes&amp;quot; ] ||&lt;br /&gt;
        [ &amp;quot;$option&amp;quot; == &amp;quot;--assume-yes&amp;quot; ]; then&lt;br /&gt;
DOWNLOADBEFORE=true&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;--assume-no&amp;quot; ]; then&lt;br /&gt;
DOWNLOADBEFORE=&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
  # Test /tmp/apt-fast.list file exists AND not zero bytes.&lt;br /&gt;
  # Then download all files from the list.&lt;br /&gt;
  if [ $(cat &amp;quot;$DLLIST&amp;quot; | wc -l) -gt 0 ] &amp;amp;&amp;amp; [ ! &amp;quot;$DOWNLOADBEFORE&amp;quot; ]; then&lt;br /&gt;
cat &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    echo -ne &amp;quot;${cRed} If you want to download the packages on your system press Y else n to abort. [Y/n]: ${endColor}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    while ((!updsys)); do&lt;br /&gt;
read -sn1 -t &amp;quot;$APT_FAST_TIMEOUT&amp;quot; answer || { msg &amp;quot;\n Timed out.&amp;quot; &amp;quot;warning&amp;quot;; exit 1; }&lt;br /&gt;
      case &amp;quot;$answer&amp;quot; in&lt;br /&gt;
        [JjYy]) result=1; updsys=1 ;;&lt;br /&gt;
        [Nn]) result=0; updsys=1 ;;&lt;br /&gt;
        &amp;quot;&amp;quot;) result=1; updsys=1 ;;&lt;br /&gt;
        *) updsys=0 ;;&lt;br /&gt;
      esac&lt;br /&gt;
done&lt;br /&gt;
else&lt;br /&gt;
result=1&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
  # Continue if answer was right or DOWNLOADBEFORE is enabled.&lt;br /&gt;
  if ((result)); then&lt;br /&gt;
if [ -s &amp;quot;$DLLIST&amp;quot; ]; then&lt;br /&gt;
      # Test if apt-fast directory is present where we put packages.&lt;br /&gt;
      if [ ! -d &amp;quot;$DLDIR&amp;quot; ]; then&lt;br /&gt;
mkdir -p -- &amp;quot;$DLDIR&amp;quot;&lt;br /&gt;
      fi&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;$DLDIR&amp;quot; &amp;amp;&amp;gt;/dev/null || exit 1&lt;br /&gt;
&lt;br /&gt;
      eval &amp;quot;${_DOWNLOADER}&amp;quot; # execute downloadhelper command&lt;br /&gt;
      if [ $(find &amp;quot;$DLDIR&amp;quot; -printf . | wc -c) -gt 1 ]; then&lt;br /&gt;
        # Move all packages to the apt install directory by force to ensure&lt;br /&gt;
        # already existing debs which may be incomplete are replaced&lt;br /&gt;
        find -type f -name &amp;quot;*.deb&amp;quot; -execdir mv -ft &amp;quot;$APTCACHE&amp;quot; {} \+&lt;br /&gt;
      fi&lt;br /&gt;
cd - &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
    fi&lt;br /&gt;
else&lt;br /&gt;
exit 1&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
  #FIXME: quotes get lost: apt-fast install &amp;quot;foo*&amp;quot; -&amp;gt; apt-get install foo*&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;clean&amp;quot; ]; then&lt;br /&gt;
  #FIXME: quotes get lost (see above)&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@ &amp;amp;&amp;amp; {&lt;br /&gt;
    find &amp;quot;$DLDIR&amp;quot; -maxdepth 1 -type f -delete&lt;br /&gt;
    [ -f &amp;quot;$DLLIST&amp;quot; ] &amp;amp;&amp;amp; rm -f -- &amp;quot;$DLLIST&amp;quot;*&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;download&amp;quot; ]; then&lt;br /&gt;
get_uris $@&lt;br /&gt;
  eval &amp;quot;${_DOWNLOADER}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
elif [ &amp;quot;$option&amp;quot; == &amp;quot;source&amp;quot; ]; then&lt;br /&gt;
msg &amp;quot;\n Working... this may take a while.\n&amp;quot; &amp;quot;normal&amp;quot;&lt;br /&gt;
  get_uris $@&lt;br /&gt;
  eval &amp;quot;${_DOWNLOADER}&amp;quot;&lt;br /&gt;
  # We use APT manager here to provide more verbose output. This method is&lt;br /&gt;
  # slightly slower then extractiong packages manually after download but also&lt;br /&gt;
  # more hardened (e.g. some options like --compile are available).&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
  # Uncomment following snippet to extract source directly and comment&lt;br /&gt;
  # both lines before.&lt;br /&gt;
  #while read srcfile; do&lt;br /&gt;
  # # extract only .dsc files&lt;br /&gt;
  # echo &amp;quot;$srcfile&amp;quot; | grep -q '\.dsc$' || continue&lt;br /&gt;
  # dpkg-source -x &amp;quot;$(basename &amp;quot;$srcfile&amp;quot;)&amp;quot;&lt;br /&gt;
  #done &amp;lt; &amp;quot;$DLLIST&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Execute package manager directly if unknown options are passed.&lt;br /&gt;
else&lt;br /&gt;
  #FIXME: quotes get lost (see above)&lt;br /&gt;
  &amp;quot;${_APTMGR}&amp;quot; $@&lt;br /&gt;
&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# After error or all done remove our lockfile&amp;lt;/pre&amp;gt;&lt;br /&gt;
با نگه داشتن دکمه‌های ctrl+x دستور ذخیره‌سازی تغییرات را داده و سپس y را فشرده و دوبار Enter کنید . حال کد زیر را ثبت کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;nano -w apt-fast.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
سپس کد زیر را کپی کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;###################################################################&lt;br /&gt;
# CONFIGURATION OPTIONS&lt;br /&gt;
###################################################################&lt;br /&gt;
# Every item has a default value besides MIRRORS (which is unset).&lt;br /&gt;
&lt;br /&gt;
# Use aptitude or apt-get?&lt;br /&gt;
# Note that for outputting the package URI list, we always use apt-get&lt;br /&gt;
# ...since aptitude can't do this&lt;br /&gt;
# Optionally add the FULLPATH to apt-get or apt-rpm or aptitude&lt;br /&gt;
# e.g. /usr/bin/aptitude&lt;br /&gt;
#&lt;br /&gt;
# Default: apt-get&lt;br /&gt;
#&lt;br /&gt;
#_APTMGR=apt-get&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Enable DOWNLOADBEFORE to suppress apt-fast confirmation dialog and download&lt;br /&gt;
# packages directly.&lt;br /&gt;
#&lt;br /&gt;
# Default: dialog enabled&lt;br /&gt;
#&lt;br /&gt;
#DOWNLOADBEFORE=true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Choose mirror list to speed up downloads from same archive. To select some&lt;br /&gt;
# mirrors take a look at your distribution's archive mirror lists.&lt;br /&gt;
# Debian: http://www.debian.org/mirror/list&lt;br /&gt;
# Ubuntu: https://launchpad.net/ubuntu/+archivemirrors&lt;br /&gt;
#&lt;br /&gt;
# Examples:&lt;br /&gt;
# To use some German mirrors and official Debian and Ubuntu archives you can use:&lt;br /&gt;
# MIRRORS=( 'http://ftp.debian.org/debian,http://ftp2.de.debian.org/debian,http://ftp.de.debian.org/debian,ftp://ftp.uni-kl.de/debian'&lt;br /&gt;
# 'http://archive.ubuntu.com/ubuntu,http://de.archive.ubuntu.com/ubuntu,http://ftp.halifax.rwth-aachen.de/ubuntu,http://ftp.uni-kl.de/pub/linux/ubuntu,http://mirror.informatik.uni-mannheim.de/pub/linux/distributions/ubuntu/' )&lt;br /&gt;
# To use French Ubuntu mirrors you can use:&lt;br /&gt;
# MIRRORS=( 'http://fr.archive.ubuntu.com/ubuntu,http://bouyguestelecom.ubuntu.lafibre.info/ubuntu,http://mirror.ovh.net/ubuntu,http://ubuntu-archive.mirrors.proxad.net/ubuntu' )&lt;br /&gt;
#&lt;br /&gt;
# Default: disabled&lt;br /&gt;
#&lt;br /&gt;
#MIRRORS=( 'none' )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Maximum number of connections&lt;br /&gt;
# You can use this value in _DOWNLOADER command. Escape with ${}: ${_MAXNUM}&lt;br /&gt;
#&lt;br /&gt;
# Default: 5&lt;br /&gt;
#&lt;br /&gt;
#_MAXNUM=5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Downloadmanager listfile&lt;br /&gt;
# You can use this value in _DOWNLOADER command. Escape with ${}: ${DLLIST}&lt;br /&gt;
#&lt;br /&gt;
# Default: /tmp/apt-fast.list&lt;br /&gt;
#&lt;br /&gt;
#DLLIST=/tmp/apt-fast.list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Download command to use. Temporary download list is designed for aria2. But&lt;br /&gt;
# you can choose another download command or download manager. It has to&lt;br /&gt;
# support following input file syntax (\t is tab character):&lt;br /&gt;
#&lt;br /&gt;
# # Comment&lt;br /&gt;
# MIRROR1\tMIRROR2\tMIRROR3...&lt;br /&gt;
# out=FILENAME1&lt;br /&gt;
# MIRROR1\tMIRROR2\tMIRROR3...&lt;br /&gt;
# out=FILENAME2&lt;br /&gt;
# ...&lt;br /&gt;
#&lt;br /&gt;
# Examples:&lt;br /&gt;
# aria2c with a proxy (set username, proxy, ip and password!)&lt;br /&gt;
# _DOWNLOADER='aria2c -c 20 -j ${_MAXNUM} --http-proxy=http://username:password@proxy_ip:proxy_port -i ${DLLIST}'&lt;br /&gt;
#&lt;br /&gt;
# Default: _DOWNLOADER='aria2c -c -j ${_MAXNUM} -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
#&lt;br /&gt;
#_DOWNLOADER='aria2c -c -j ${_MAXNUM} -i ${DLLIST} --connect-timeout=600 --timeout=600 -m0'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Download temp folder for Downloadmanager&lt;br /&gt;
# example /tmp/apt-fast. Standard is /var/cache/archives/apt-fast&lt;br /&gt;
#&lt;br /&gt;
# Default: /var/cache/apt/archives/apt-fast&lt;br /&gt;
#&lt;br /&gt;
#DLDIR=/var/cache/apt/archives/apt-fast&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# APT archives cache directory&lt;br /&gt;
#&lt;br /&gt;
# Default /var/cache/apt/archives&lt;br /&gt;
# (APT configuration items Dir::Cache and Dir::Cache::archives)&lt;br /&gt;
#&lt;br /&gt;
#APTCACHE=/var/cache/apt/archives&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# apt-fast colors&lt;br /&gt;
# Colors are disabled when not using a terminal.&lt;br /&gt;
#&lt;br /&gt;
# Default colors are:&lt;br /&gt;
# cGreen='\e[0;32m'&lt;br /&gt;
# cRed='\e[0;31m'&lt;br /&gt;
# cBlue='\e[0;34m'&lt;br /&gt;
# endColor='\e[0m'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
نهایتا با نگه داشتن دکمه‌های ctrl+x دستور ذخیره‌سازی تغییرات را داده و سپس y را فشرده و دوبار Enter کنید . دستورهای زیر را نیز ثبت کنید :&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod +x apt-fast&lt;br /&gt;
sudo mv apt-fast /usr/bin/&lt;br /&gt;
sudo mv apt-fast.conf /etc/&amp;lt;/pre&amp;gt;&lt;br /&gt;
حال می‌توانید از apt-fast استفاده کنید .&lt;/div&gt;</summary>
		<author><name>Narayana</name></author>	</entry>

	</feed>