Gentoo Archives: gentoo-commits

From: "Sven Vermeulen (swift)" <swift@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/doc/fa/handbook: hb-portage-advanced.xml
Date: Sat, 23 Feb 2013 19:45:04
Message-Id: 20130223194501.B8F792171D@flycatcher.gentoo.org
1 swift 13/02/23 19:45:01
2
3 Added: hb-portage-advanced.xml
4 Log:
5 Fix bug #458714 - Updated FA translations
6
7 Revision Changes Path
8 1.1 xml/htdocs/doc/fa/handbook/hb-portage-advanced.xml
9
10 file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/fa/handbook/hb-portage-advanced.xml?rev=1.1&view=markup
11 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/fa/handbook/hb-portage-advanced.xml?rev=1.1&content-type=text/plain
12
13 Index: hb-portage-advanced.xml
14 ===================================================================
15 <?xml version='1.0' encoding='UTF-8'?>
16 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
17
18 <!-- The content of this document is licensed under the CC-BY-SA license -->
19 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
20
21 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/fa/handbook/hb-portage-advanced.xml,v 1.1 2013/02/23 19:45:01 swift Exp $ -->
22
23 <sections>
24
25 <abstract>
26 همچنانکه زمان به پیش می‌رود، پرتیج کاملتر و رشدیافته‌تر می‌گردد. خصوصیت‌های جدید مرتب در حال افزوده شدن به آن هستند - بسیاری از آنها تنها برای استفاده کاربران پیشرفته‌تر هستند. این بخش وارد جزئیات بیشتر این خصوصیت‌ها می‌شود.
27 </abstract>
28
29 <version>5</version>
30 <date>2012-10-06</date>
31
32 <section>
33 <title>مقدمه</title>
34 <body>
35
36 <p>
37 برای بیشتر کاربران، اطلاعات رسیده تا اینجا برای کار با همه عملگرهای لینوکسشان کافی است. اما پرتیج بیش از این توانمند است; بسیاری از خصوصیت‌های آن برای کاربران پیش رفته است یا تنها در موردهای خاص توانمند هستند. هنوز نمی‌توان از مستندسازی آنها چشم پوشی نمود.
38 </p>
39
40 <p>
41 البته، با بسیاری از انعطاف‌پذیری‌ها فهرست بزرگی از پتانسیل‌های موردی هم می‌آیند. امکان اینکه همه آنها را در اینجا مستند نماییم وجود ندارد. بجای آن، انتظار داریم بروی برخی پی‌آمدهای عمومی که می‌توانید از آنها برای درست نمودن اشکال‌های خود از آنها استفاده نمایید، تمرکز نماییم. اگر نیاز به نکته‌ها و ترفندهای بیشتری دارید، بجای این ممکن است آنها را در <uri link="https://wiki.gentoo.org">ویکی جنتو</uri> بیابید.
42 </p>
43
44 <p>
45 بیشتر، اگر این خصوصیت‌ها در کنکاش در صفحه‌های راهنمای فراهم آورده شده توسط پرتیج یافت نگردیدند:
46 </p>
47
48 <pre caption="Reading up on portage man pages">
49 $ <i>man portage</i>
50 $ <i>man make.conf</i>
51 </pre>
52
53 <p>
54 سرانجام، بدانید این راهنمای خصوصیت‌های پیشرفته‌ائی است که، اگر بدقت کار نکرد، بسختی می‌توان آنها را ایرادیابی و اشکال‌زدائی نمود. اگر می‌خواهید یک ایراد اعلام نمایید یا گزارش یک ایراد بدهید نخست از آن مطمئن شوید.
55 </p>
56
57 </body>
58 </section>
59
60 <section>
61 <title>متغییرهای محیطی بسته‌های پیش‌ساخته</title>
62 <subsection>
63 <title>استفاده کردن از /etc/portage/env</title>
64 <body>
65
66 <p>
67 بشکل پیش فرض، بسته‌های ساخته شده از متغییرهای محیطی تعریف شده در <path>/etc/portage/make.conf</path> استفاده می‌کنند، مانند <c>CFLAGS</c> ، <c>MAKEOPTS</c> و بیشتر. در گاهی زمان‌ها، ممکن است بخواهید برای بسته‌های خاصی متغییرهای متفاوتی فراهم آورید. برای چنین کاری پرتیج از <path>/etc/portage/env</path> و <path>/etc/portage/package.env</path> پشتیبانی می نماید.
68 </p>
69
70 <p>
71 فایل <path>/etc/portage/package.env</path> حاوی فهرستی از بسته‌هائی است که با استفاده از شناساگر متغییرهای تحریف شده باید کار نمایند که بخوبی به پرتیج تغییراتی را که شما می‌خواهید اعلام می‌نماید. نام شناساگر را که خودتان انتخاب می‌نمایید، پرتیج به متغییرهای موجود در <path>/etc/portage/env/&lt;identifier&gt;</path> نگاه می‌نماید.
72 </p>
73
74 </body>
75 </subsection>
76 <subsection>
77 <title>نمونه: استفاده کردن از ایرادیابی برای بسته‌های خاص</title>
78 <body>
79
80 <p>
81 برای نمونه، ما ایرادیابی برای بسته <path>media-video/mplayer</path> را فعال می‌نماییم.
82 </p>
83
84 <p>
85 ابتدا، متغییرهای ایرادیابی در فایلی به نام <path>/etc/portage/env/debug-cflags</path> را تنظیم می‌نماییم. نام فایل کاملا انتخابی است، البته اشتباه در نشانگذاری آن می‌تواند دلیل انحراف واکنش‌های پس از این باشد.
86 </p>
87
88 <pre caption="/etc/portage/env/debug-cflags content">
89 CFLAGS="-O2 -ggdb -pipe"
90 FEATURES="${FEATURES} nostrip"
91 </pre>
92
93 <p>
94 سپس، بسته <path>media-video/mplayer</path> را با استفاده از این مفهوم تگ می‌نماییم:
95 </p>
96
97 <pre caption="/etc/portage/package.env content">
98 media-video/mplayer debug-cflags
99 </pre>
100
101 </body>
102 </subsection>
103 </section>
104
105 <section>
106 <title>چنگک‌زنی در روش امرژ نمودن</title>
107 <subsection>
108 <title>استفاده نمودن از /etc/portage/bashrc و مربوط نمودن فایل‌ها</title>
109 <body>
110
111 <p>
112 هنگامیکه پرتیج با ائی‌بیلدها کار می‌نماید، از یک محیط bash که به آن تابع‌های سازه‌های گوناگون گفته می شود استفاده می‌نماید ( مانند src_prepare, src_configure, pkg_postinst, و دیگر از آن). اما پرتیج همچنین به شما امکان می‌دهد تا محیط bash را برای خودتان برپا نمایید.
113 </p>
114
115 <p>
116 مزیت استفاده نمودن از محیط bash خودتان آن است که هر مرحله‌ائی را که در هنگام امرژ نمودن اجرا می‌گردد را چنگک نمایید. اینکار می‌تواند برای هربار امرژ انجام گردد (در سراسر <path>/etc/portage/bashrc</path> ) یا بوسیله استفاده نمودن از محیط‌های ( در سراسر <path>/etc/portage/env</path> که پیشتر گفته شد).
117 </p>
118
119 <p>
120 برای چنگک‌زنی در جریان عمل، محیط bash می‌تواند به متغییرهای <c>EBUILD_PHASE</c> ، <c>CATEGORY</c> به خوبی متغییرهائی که گسترش‌دهندگان ائی‌بیلدها همیشه استفاده می نمایند (مانند <c>P</c> ، <c>PF</c> ، ...) گوش‌فرا دهد. پس از آن بر اساس این متغییرها، می تواند گام‌های بعدی را اجرا نمایید.
121 </p>
122
123 </body>
124 </subsection>
125 <subsection>
126 <title>نمونه: بروزرسانی پایگاه‌‌داده</title>
127 <body>
128
129 <p>
130 در این نمونه، ما از <path>/etc/portage/bashrc</path> برای فراخوانی برخی فایل‌ برنامه‌های پایگاه‌داده استفاده می‌نماییم تا اطمینان بیابیم که پایگاه‌داده با کمک دستگاه بروزرسانی می‌گردد. برنامه‌های استفاده شده در نمونه در <c>aide</c> هستند (یک ابزار مرتبط ساز ساختار) و <c>updatedb</c> (برای استفاده با <c>locate</c> )، اما این تنها یک نمونه است. به عنوان یک روش گام‌به‌گام استفاده ننمایید ;-)
131 </p>
132
133 <p>
134 برای استفاده از <path>/etc/portage/bashrc</path> برای این مورد، لازم است تا در تابع‌های <c>postrm</c> چنگک نماییم (پس از پاک‌سازی فایل‌ها) و <c>postinst</c> (پس از نصب فایل‌ها)، در هنگامیکه دستگاه فایل تغییر می‌یابد.
135 </p>
136
137 <pre caption="Example /etc/portage/bashrc">
138 if [ "${EBUILD_PHASE}" == "postinst"] || [ "${EBUILD_PHASE}" == "postrm" ];
139 then
140 echo ":: Calling aide --update to update its database";
141 aide --update;
142 echo ":: Calling updatedb to update its database";
143 updatedb;
144 fi
145 </pre>
146
147 </body>
148 </subsection>
149 </section>
150
151 <section>
152 <title>اجرا نمودن کارها پس از --sync</title>
153 <subsection>
154 <title>موقعیت /etc/portage/postsync.d</title>
155 <body>
156
157 <p>
158 تا این هنگام درباره چنگک‌زنی صحبت می‌نمودیم. هرچند، پرتیج تابع مهم دیگری هم دارد: بروز رسانی شاخه پرتیج. در درخواست اجرای کارها پس از بروز رسانی شاخه پرتیج، کدی درون <path>/etc/portage/postsync.d</path> قرار دهید و مطمئن شوید به شکل قابل اجرا برچسب بخورد.
159 </p>
160
161 </body>
162 </subsection>
163 <subsection>
164 <title>نمونه: اجرا نمودن eix-update</title>
165 <body>
166
167 <p>
168 اگر از <c>eix-sync</c> برای بروز رسانی شاخه استفاده ننمایید، هنوز می‌توانید بوسیله قرار دادن یک میانبر در <path>/usr/bin/eix</path> که به آن <path>eix-update</path> گفته می‌شود در <path>/etc/portage/postsync.d</path> پایگاه‌داده را پس از اجرا نمودن <c>emerge --sync</c> (یا <c>emerge-webrsync</c> ) بروز نگاه‌دارید.
169 </p>
170
171 <pre caption="Running eix-update after a sync operation">
172 # <i>ln -s /usr/bin/eix /etc/portage/postsync.d/eix-update</i>
173 </pre>
174
175 <note>
176 اگر از نام دیگری استفاده می‌نمایید، لازم دارید تا بجای آن کدی به نام <c>/usr/bin/eix-update</c> بسازید. باینری <c>eix</c> به آن نگاه می‌نماید تا بیابد کدام تابع را اجرا نماید. اگر میانبری در <c>eix</c> که به آن <c>eix-update</c> گفته می‌شود قرار ندهید، بخوبی اجرا نخواهد گردید.
177 </note>
178
179 </body>
180 </subsection>
181 </section>
182
183 <section>
184 <title>تنظیم‌های برجسته پروفایل</title>
185 <subsection>
186 <title>موقعیت /etc/portage/profile</title>
187 <body>
188
189 <p>
190 بشکل پیش‌فرض، جنتو از تنظیم‌هائی که در <path>/etc/portage/make.profile</path> آمده (که یک میانبر به دایرکتوری پروفایل درست است) استفاده می‌نماید. این پروفایل‌ها همه تنظیم‌های مشخص شده را بخوبی تنظیم‌های جانشین شده از دیگر پروفایل‌ها (در سراسر فایل <path>parent</path> شان) تعریف می‌نماید.
191 </p>
192
193 <p>
194 با استفاده از <path>/etc/portage/profile</path>، می‌توانید تنظیم‌های برجسته مانند <path>packages</path> (چه بسته‌هائی برای بخشی از تنظیم‌های دستگاه مطرح شده)، اجبار برای استفاده از پرچمک‌ها و بیش از آن را انجام دهید.
195 </p>
196
197 </body>
198 </subsection>
199 <subsection>
200 <title>نمونه: افزودن nfs-utils به تنظیم دستگاه</title>
201 <body>
202
203 <p>
204 اگر از فایل‌های سیستمی بر اساس NFS برای بیشتر فایل سیستم‌های بحرانی استفاده می‌نمایید، ممکن است بخواهید <path>net-fs/nfs-utils</path> را حفاظت شده به عنوان یک بسته سیستمی داشته باشید، که سبب می شود پرتیج اگر پاک شد بشدت به شما اخطار دهد.
205 </p>
206
207 <p>
208 برای انجام دادن آن، ما بسته را به <path>/etc/portage/profile/packages</path> ، با توجه به یک <c>*</c> می‌افزاییم:
209 </p>
210
211 <pre caption="/etc/portage/profile/packages content">
212 *net-fs/nfs-utils
213 </pre>
214
215 </body>
216 </subsection>
217 </section>
218
219 <section>
220 <title>بکاربستن وصله‌های غیر استاندارد</title>
221 <subsection>
222 <title>استفاده نمودن از epatch_user</title>
223 <body>
224
225 <p>
226 برای مدیریت چندین ائی‌بیلد در یک روش مشابه، گسترش‌دهندگان ائی‌بیلدها از <e>eclasses</e> (که فهرست مرتبی از کتابخانه‌های شل است) استفاده می‌نمایند که تابع‌های عمومی مورد استفاده را تعریف می‌نماید. یکی از این کلاس‌های الکترونیکی <path>eutils.eclass</path> است که تابع جذابی که <c>epatch_user</c> نامیده می‌شود را ارائه می‌دهد.
227 </p>
228
229 <p>
230 تابع <c>epatch_user</c> هرآنچه از وصله‌های کد منبع را که در دایرکتوری موجود باشد فراهم می‌آورد که در <path>/etc/portage/patches/&lt;category&gt;/&lt;package&gt;[-&lt;version&gt;[-&lt;revision&gt;]]</path> یافت می‌شوند، متاسفانه، همه ائی‌بیلدها بطور خودکار این تابع را فراخوانی نمی‌نمایند بنابر این قرار دادن وصله‌تان در این موقعیت ممکن است همیشه کار نکند.
231 </p>
232
233 <p>
234 خوشبختانه، با اطلاعات فراهم آمده در بالا، می توانید این تابع را بوسیله چنگک‌زنی به آن فراخوانی نمایید، برای نمونه، فاز <c>prepare</c> . تابع می‌تواند به هر تعداد بار که شما دوست داشته باشید فراخوانی گردد - این تنها یک‌بار وصله‌ها را فراهم می‌آورد.
235 </p>
236
237 </body>
238 </subsection>
239 <subsection>
240 <title>نمونه: فراهم آوردن وصله به فایرفاکس</title>
241 <body>
242
243 <p>
244 بسته <path>www-client/firefox</path> یکی از معدود بسته‌هائی است که در حال حاضر <c>epatch_user</c> را از درون ائی‌بیلد فراخوانی می‌نماید، بنابر این لازم نیست تا چیزی را بشکل مشخص برجسته نمایید.
245 </p>
246
247 <p>
248 اگر می‌خواهید فایرفاکس را وصله نمایید (برای نمونه چراکه یک گسترش‌دهنده یک وصله فراهم آورده و از شما خواسته تا آنرا بررسی نمایید تا ایرادی که گزارش نموده‌اید را برطرف نماید)، وصله را در <path>/etc/portage/patches/www-client/firefox</path> قرار دهید (بهترین راه استفاده از نام کامل آن است، شامل نسخه تا وصله با نسخه‌های واپسین درگیر نشود) و فایرفاکس را دوباره سازی نمایید.
249 </p>
250
251 </body>
252 </subsection>
253 </section>
254
255 </sections>