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/<identifier></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/<category>/<package>[-<version>[-<revision>]]</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> |