.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "FAKECHROOT 1" .TH FAKECHROOT 1 "16 Mar 2019" "fakechroot" " " .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" fakechroot \- ایجاد یک محیط chroot ساختگی .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBfakechroot\fR [\fB\-s\fR|\fB\-\-use\-system\-libs\fR] [\fB\-l\fR|\fB\-\-lib\fR\ \fIlibrary\fR] [\fB\-d\fR|\fB\-\-elfloader\fR\ \fIldso\fR] [\fB\-e\fR|\fB\-\-environment\fR\ \fItype\fR] [\fB\-c\fR|\fB\-\-config\-dir\fR\ \fIdirectory\fR] [\fB\-b\fR|\fB\-\-bindir\fR\ \fIdirectory\fR] [\fB\-\-\fR] [\fIcommand\fR] .PP \&\fBfakechroot\fR \&\fB\-h\fR|\fB\-\-help\fR .PP \&\fBfakechroot\fR \&\fB\-v\fR|\fB\-\-version\fR .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور fakechroot فرمانی را در محیطی اجرا می‌کند که در آن امکان استفاده از دستور \fBchroot\fR\|(8) بدون داشتن امتیازات ریشه (root) فراهم شده است. این ابزار برای این سودمند است که به کاربران اجازه دهد محیط chrooted اختصاصی خود را بسازند و بسته‌های دیگر را بدون نیاز به دسترسی‌های ریشه نصب کنند. .PP ابزار fakechroot برخی از توابع کتابخانه C (\fBchroot\fR\|(2)، \fBopen\fR\|(2) و غیره) را با توابعی جایگزین می‌کند که اثر فراخوانی شدن با امتیازات ریشه را شبیه‌سازی می‌نمایند. .PP این توابع پوششی (wrapper) به عنوان یک کتابخانه مشترک \fIlibfakechroot.so\fR ارائه می‌شوند که از طریق سازوکار \f(CW\*(C`LD_PRELOAD\*(C'\fR بارگذار پویای سیستم (dynamic loader) بارگذاری می‌گردد (به \fBld.so\fR\|(8) نگاه کنید). .PP در یک chroot ساختگی، می‌توانید به عنوان مثال با دستور \fBdebootstrap\fR\|(8) سیستم پایه دبیان را نصب کنید. در چنین محیطی می‌توانید دستورهایی مانند \fBapt\-get\fR\|(8) را برای نصب بسته‌های دیگر اجرا کنید. شما نیازی به دسترسی‌های ویژه ندارید و می‌توانید آن را در حساب کاربری معمولی اجرا نمایید. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP "\fB\-b\fR|\fB\-\-bindir\fR \fIdirectory\fR" 4 .IX Item "-b|--bindir directory" مشخص کردن دایرکتوری حاوی فایل‌های اجرایی جایگزین ارائه‌شده همراه با fakechroot. این پرونده‌ها اسکریپت‌هایی با پسوند \f(CW\*(C`.fakechroot\*(C'\fR هستند. به صورت پیش‌فرض آنها در دایرکتوری‌های \&\f(CW\*(C`bin\*(C'\fR و \f(CW\*(C`sbin\*(C'\fR در پیشوند نصب fakechroot توزیع می‌شوند، اما گاهی یک مکان ثابت در زمان ساخت امکان‌پذیر نیست. .IP "\fB\-c\fR|\fB\-\-config\-dir\fR \fIdirectory\fR" 4 .IX Item "-c|--config-dir directory" مشخص کردن دایرکتوری حاوی پیکربندی‌های اضافی برای fakechroot. دایرکتوری‌های پیش‌فرض \f(CW\*(C`$HOME/.fakechroot\*(C'\fR و \f(CW\*(C`/etc/fakechroot\*(C'\fR هستند. .IP "\fB\-d\fR \fIldso\fR|\fB\-\-elfloader\fR \fIldso\fR" 4 .IX Item "-d ldso|--elfloader ldso" مشخص کردن پیونددهنده پویای (dynamic linker) جایگزین. این بارگذار پویا مستقیماً فراخوانی خواهد شد. .IP "\fB\-e\fR|\fB\-\-environment\fR \fItype\fR" 4 .IX Item "-e|--environment type" بارگذاری پیکربندی اضافی به همراه محیط. این فایل پیکربندی یک اسکریپت شل است که پیش از فراخوانی \fIcommand\fR اجرا می‌شود. این اسکریپت می‌تواند متغیرهای محیطی اضافی تنظیم کند؛ به عنوان مثال: \&\f(CW\*(C`FAKECHROOT_EXCLUDE_PATH\*(C'\fR، \f(CW\*(C`FAKECHROOT_CMD_SUBST\*(C'\fR یا \f(CW\*(C`LD_LIBRARY_PATH\*(C'\fR. .Sp نوع محیط بر اساس نام دستور پس از حذف پسوند اختیاری حدس زده می‌شود (برای نمونه اجرای \fIgettext.sh\fR فایل محیطی \f(CW\*(C`gettext\*(C'\fR را بارگذاری می‌کند). اگر آرگومان \fIcommand\fR برابر \fBfakeroot\fR\|(1) باشد، این آرگومان نادیده گرفته شده و آرگومان بعدی به عنوان نوع محیط در نظر گرفته می‌شود. .Sp نام فایل پیکربندی \fI\fItype\fI.env\fR است و در دایرکتوری‌های \&\fI\f(CI$HOME\fI/.fakechroot\fR و \fI/etc/fakechroot\fR جستجو می‌شود. .Sp نوع محیط پیش‌فرض \fBdefault\fR است و نام فایل پیکربندی آن \&\f(CW\*(C`default.env\*(C'\fR می‌باشد. .Sp محیط ویژه \fBnone\fR به این معنی است که اصلاً هیچ تنظیمات محیطی بارگذاری نمی‌شود. .IP "\fB\-l\fR \fIlibrary\fR|\fB\-\-lib\fR \fIlibrary\fR" 4 .IX Item "-l library|--lib library" مشخص کردن کتابخانه پوششی (wrapper) جایگزین. پیش‌فرض \fIlibfakechroot.so\fR است. .IP "\fB\-h\fR|\fB\-\-help\fR" 4 .IX Item "-h|--help" نمایش راهنما. .IP "\fB\-s\fR|\fB\-\-use\-system\-libs\fR" 4 .IX Item "-s|--use-system-libs" استفاده از کتابخانه‌های سیستم قبل از کتابخانه‌های chroot. این گزینه می‌تواند راه‌حلی باشد اگر پیونددهنده پویای سیستم نتواند \fIlibc.so\fR را از chroot ساختگی بارگذاری کند. .Sp اگر خطاهای زیر را مشاهده کردید، این تنظیم را امتحان کنید: .Sp .Vb 4 \& $ fakechroot /usr/sbin/chroot /tmp/sarge /bin/true \& /bin/true: relocation error: /srv/sarge/lib/tls/libc.so.6: symbol _dl \& _starting_up, version GLIBC_PRIVATE not defined in file ld\-linux.so.2 \& with link time reference \& \& $ fakechroot /usr/sbin/chroot /tmp/centos4 /bin/true \& Segmentation fault .Ve .IP "\fB\-v\fR|\fB\-\-version\fR" 4 .IX Item "-v|--version" نمایش نگارش. .IP "[\fB\-\-\fR] \fIcommand\fR" 4 .IX Item "[--] command" هر دستوری که می‌خواهید به عنوان fakechroot اجرا شود. اگر دستور شامل گزینه‌های دیگری است که ممکن است با تجزیه گزینه‌های fakechroot تداخل داشته باشد، از '\fB\-\-\fR' استفاده کنید. .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" یک نشست نمونه با fakechroot: .PP .Vb 2 \& $ id \& uid=1000(dexter) gid=1000(dexter) groups=1000(dexter) \& \& $ fakechroot fakeroot debootstrap sid /tmp/sid \& I: Retrieving Release \& I: Retrieving Release.gpg \& I: Checking Release signature \& ... \& I: Base system installed successfully. \& \& $ fakechroot fakeroot chroot /tmp/sid apt\-get install \-q hello \& Reading package lists... \& Building dependency tree... \& Reading state information... \& The following NEW packages will be installed: \& hello \& 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. \& Need to get 57.4 kB of archives. \& After this operation, 558 kB of additional disk space will be used. \& Get:1 http://ftp.us.debian.org/debian/ sid/main hello amd64 2.8\-4 [57.4 kB] \& Fetched 57.4 kB in 0s (127 kB/s) \& Selecting previously unselected package hello. \& (Reading database ... 24594 files and directories currently installed.) \& Unpacking hello (from .../archives/hello_2.8\-4_amd64.deb) ... \& Processing triggers for man\-db ... \& Processing triggers for install\-info ... \& Setting up hello (2.8\-4) ... \& \& $ fakechroot chroot /tmp/sid hello \& Hello, world! .Ve .SH "فیک‌روت (FAKEROOT)" .IX Header "FAKEROOT" ابزار \&\fBfakeroot\fR\|(1) یک ابزار مکمل است که محیط root را شبیه‌سازی می‌کند. fakeroot و fakechroot ممکن است توابع کتابخانه C یکسانی را پوشش دهند، به عنوان مثال تابع \fBmknod\fR\|(2). بسیار مهم است که محیط ساختگی را با ترتیب مناسب آغاز کنید. fakeroot باید در داخل fakechroot اجرا شود: .PP .Vb 1 \& $ fakechroot fakeroot chroot /tmp/sid /bin/mknod /tmp/device c 1 2 .Ve .SH "جنبه‌های امنیتی (SECURITY ASPECTS)" .IX Header "SECURITY ASPECTS" برنامه fakechroot یک برنامه معمولی و غیر setuid است. این ابزار امتیازات کاربر را افزایش نمی‌دهد. .PP نباید از fakechroot به عنوان ابزاری برای ارتقای امنیت سیستم مانند جداسازی و قرنطینه‌سازی (sandboxing) برنامه‌ها استفاده شود. فرار از یک محیط chroot ساختگی بسیار آسان است. .PP دستور fakechroot نباید با امتیازات واقعی ریشه اجرا شود. این کار ممکن است امنیت سیستم را کاهش دهد زیرا fakechroot نگارش‌های اختصاصی از توابع اصلی را با رفتارهایی وابسته به متغیرهای محیطی فراهم می‌کند. .SH "فایل‌ها (FILES)" .IX Header "FILES" .IP "\fIlibfakechroot.so\fR" 4 .IX Item "libfakechroot.so" کتابخانه مشترک حاوی توابع پوششی (wrapper). .SH "محیط (ENVIRONMENT)" .IX Header "ENVIRONMENT" .IP "\fB\s-1FAKECHROOT\s0\fR" 4 .IX Item "FAKECHROOT" مقدار آن برای محیط chroot ساختگی برابر true است. .IP "\fB\s-1FAKECHROOT_AF_UNIX_PATH\s0\fR" 4 .IX Item "FAKECHROOT_AF_UNIX_PATH" دایرکتوری ریشه برای سوکت‌های یونیکس. مقدار پیش‌فرض آن مشابه \&\f(CW\*(C`FAKECHROOT_BASE\*(C'\fR است و در صورتی که \f(CW\*(C`FAKECHROOT_BASE\*(C'\fR خیلی طولانی باشد و مسیر سوکت یونیکس از محدودیت \fB108\fR بایت فراتر رود، می‌تواند جداگانه تنظیم شود. .IP "\fB\s-1FAKECHROOT_BASE\s0\fR" 4 .IX Item "FAKECHROOT_BASE" دایرکتوری ریشه محیط chroot ساختگی. .IP "\fB\s-1FAKECHROOT_CMD_SUBST\s0\fR" 4 .IX Item "FAKECHROOT_CMD_SUBST" فهرستی از جایگزینی‌های دستور. اگر برنامه‌ای تلاش کند یکی از دستورهای مشخص‌شده را اجرا کند (مسیر نسبت به chroot، نقطه پایانی حذف می‌شود)، دستور جایگزین به جای آن اجرا خواهد شد (مسیر دستور جایگزین chrooted نیست). .Sp دستور جایگزین متغیرهای \f(CW\*(C`FAKECHROOT_*\*(C'\fR را به ارث می‌برد، به جز متغیر اصلی \&\f(CW\*(C`FAKECHROOT_BASE\*(C'\fR که به عنوان \f(CW\*(C`FAKECHROOT_BASE_ORIG\*(C'\fR ذخیره می‌شود. این بدان معناست که دستور جایگزین‌شده در خارج از محیط fakechroot اجرا می‌شود. همچنین نام دستور اصلی به عنوان \f(CW\*(C`FAKECHROOT_CMD_ORIG\*(C'\fR ذخیره می‌گردد. .Sp به عنوان مثال: .Sp .Vb 1 \& export FAKECHROOT_CMD_SUBST=/usr/bin/mkfifo=/bin/true .Ve .Sp دستور \f(CW\*(C`/bin/true\*(C'\fR را به جای \f(CW\*(C`/usr/bin/mkfifo\*(C'\fR قرار می‌دهد و نصب بسته دودویی sysvinit را ممکن می‌سازد. .Sp می‌توانید به تعداد دلخواه دستورهای جایگزین را با جداکننده دو نقطه \f(CW\*(C`:\*(C'\fR مشخص کنید. .Sp پیشنهاد می‌شود حداقل موارد زیر جایگزین شوند: .RS 4 .IP "\(bu" 2 \&\f(CW\*(C`/bin/mount=/bin/true\*(C'\fR .IP "\(bu" 2 \&\f(CW\*(C`/sbin/insserv=/bin/true\*(C'\fR .IP "\(bu" 2 \&\f(CW\*(C`/sbin/ldconfig=/bin/true\*(C'\fR .IP "\(bu" 2 \&\f(CW\*(C`/usr/bin/env=/usr/bin/env.fakechroot\*(C'\fR .IP "\(bu" 2 \&\f(CW\*(C`/usr/bin/ischroot=/bin/true\*(C'\fR .IP "\(bu" 2 \&\f(CW\*(C`/usr/bin/ldd=/usr/bin/ldd.fakechroot\*(C'\fR .IP "\(bu" 2 \&\f(CW\*(C`/usr/bin/mkfifo=/bin/true\*(C'\fR .RE .RS 4 .Sp تا ابزار \fBdebootstrap\fR\|(8) به درستی کار کند. .Sp برای جلوگیری از بروز حلقه‌های تکرار، جایگزینی دستور فقط در صورتی انجام می‌شود که متغیر \&\f(CW\*(C`FAKECHROOT_CMD_ORIG\*(C'\fR در حال حاضر تنظیم نشده باشد. .RE .IP "\fB\s-1FAKECHROOT_DEBUG\s0\fR" 4 .IX Item "FAKECHROOT_DEBUG" در صورت تنظیم بودن این متغیر، کتابخانه fakechroot اطلاعات اشکال‌زدایی را تخلیه می‌کند. .IP "\fB\s-1FAKECHROOT_DETECT\s0\fR" 4 .IX Item "FAKECHROOT_DETECT" اگر این متغیر تنظیم شده باشد، رشته \f(CW\*(C`fakechroot \f(CIversion\f(CW\*(C'\fR در خروجی استاندارد چاپ شده و فرآیند جاری با وضعیت دریافت شده از این متغیر خاتمه می‌یابد. این می‌تواند روشی برای بررسی بارگذاری صحیح fakechroot باشد. .Sp .Vb 1 \& $ case "\`FAKECHROOT_DETECT=1 /bin/echo\`" in fakechroot*) echo LOADED;; esac .Ve .IP "\fB\s-1FAKECHROOT_ELFLOADER\s0\fR" 4 .IX Item "FAKECHROOT_ELFLOADER" مسیری به یک پیونددهنده پویای دیگر (مثلاً \fI/lib/ld\-linux.so.2\fR برای معماری i386، یا \fI/lib64/ld\-linux\-x86\-64.so.2\fR برای معماری x86_64). .Sp این پیونددهنده پویا مستقیماً فراخوانی خواهد شد. پیونددهنده پویا اجازه تغییر \f(CW\*(C`argv[0]\*(C'\fR به جز نام فایل اجرایی را نمی‌دهد، بنابراین برخی برنامه‌ها به درستی کار نخواهند کرد، مانند \fBbusybox\fR\|(1). .IP "\fB\s-1FAKECHROOT_EXCLUDE_PATH\s0\fR" 4 .IX Item "FAKECHROOT_EXCLUDE_PATH" فهرستی از دایرکتوری‌ها که از شمول chroot خارج می‌شوند. عناصر فهرست با دو نقطه (:) از هم جدا می‌شوند. .Sp دایرکتوری‌های \fI/dev\fR، \fI/proc\fR و \fI/sys\fR در صورتی که این متغیر محیطی تنظیم نشده باشد، به صورت پیش‌فرض مستثنی هستند. .Sp این فهرست باید حداکثر شامل ۱۰۰ عنصر باشد. .IP "\fB\s-1FAKECHROOT_EXTRA_LIBRARY_PATH\s0\fR" 4 .IX Item "FAKECHROOT_EXTRA_LIBRARY_PATH" فهرستی از دایرکتوری‌های اضافی در محیط chroot ساختگی که به متغیر \&\f(CW\*(C`LD_LIBRARY_PATH\*(C'\fR افزوده می‌شوند. این دایرکتوری‌ها ممکن است توسط برخی دستورهای مهم که از کتابخانه‌های واقع در \fIrunpath\fR استفاده می‌کنند به کار روند. در این حالت پیونددهنده پویا نمی‌تواند بدون این مسیرهای اضافی کتابخانه، دایرکتوری درست را در محیط chroot ساختگی پیدا کند. .Sp مقدار پیش‌فرض \f(CW\*(C`/lib/systemd:/usr/lib/man\-db\*(C'\fR برای دستورهای \fBsystemctl\fR\|(1) و \&\fBman\fR\|(1) است. .IP "\fB\s-1FAKECHROOT_VERSION\s0\fR" 4 .IX Item "FAKECHROOT_VERSION" شماره نگارش کتابخانه جاری fakechroot. .IP "\fB\s-1LD_LIBRARY_PATH\s0\fR, \fB\s-1LD_PRELOAD\s0\fR" 4 .IX Item "LD_LIBRARY_PATH, LD_PRELOAD" ابزار fakechroot با پوشش‌دهی فراخوانی‌های سیستمی پیاده‌سازی شده است. این کار با تنظیم \f(CW\*(C`LD_PRELOAD=libfakechroot.so\*(C'\fR انجام می‌شود. اگر پیونددهنده پویا نتواند این کتابخانه را پیدا کند، فایل \fI/etc/ld.so.conf\fR یا متغیر \f(CW\*(C`LD_LIBRARY_PATH\*(C'\fR باید اصلاح شوند. .SH "محدودیت‌ها (LIMITATIONS)" .IX Header "LIMITATIONS" .IP "\(bu" 4 پرونده‌های \&\fI/lib/ld\-linux.so.2\fR و \fI/lib64/ld\-linux\-x86\-64.so.2\fR همیشه از محیط واقعی بارگذاری می‌شوند. این مسیر توسط پیونددهنده برای تمامی فایل‌های باینری هاردکد شده است. می‌توانید متغیر محیطی \f(CW\*(C`FAKECHROOT_ELFLOADER\*(C'\fR را تنظیم کرده یا از گزینه \&\f(CW\*(C`\-\-elfloader\*(C'\fR استفاده کنید. .IP "\(bu" 4 هر دستوری که در fakechroot اجرا می‌شود باید به همان نسخه از پیونددهنده پویای محیط واقعی لینک شده باشد. اگر کتابخانه‌های درون chroot سازگار نیستند، سعی کنید از گزینه \f(CW\*(C`\-\-use\-system\-libs\*(C'\fR استفاده نمایید. .IP "\(bu" 4 می‌توانید پیوندهای نمادین (symlinks) به بیرون ایجاد کنید. پیوند نمادین باید قبل از فراخوانی chroot ایجاد شده باشد. این می‌تواند برای دسترسی به دایرکتوری‌های واقعی \fI/proc\fR و \fI/dev\fR مفید باشد. همچنین می‌توانید متغیر محیطی \f(CW\*(C`FAKECHROOT_EXCLUDE_PATH\*(C'\fR را تنظیم کنید: .Sp .Vb 1 \& $ export FAKECHROOT_EXCLUDE_PATH=/tmp:/proc:/dev:/sys:/var/run:/home .Ve .IP "\(bu" 4 برنامه‌های با پیوند ایستا (statically linked) کار نمی‌کنند، به ویژه \fBldconfig\fR\|(8)، بنابراین باید این دستور را با نسخه‌ای ساختگی بپوشانید و متغیر محیطی مناسب \&\f(CW\*(C`FAKECHROOT_CMD_SUBST\*(C'\fR را تنظیم نمایید. .IP "\(bu" 4 دستور \&\fBldd\fR\|(1) نیز کار نمی‌کند. باید از \f(CW\*(C`alias ldd=\*(AqLD_TRACE_LOADED_OBJECTS=1\*(Aq\*(C'\fR استفاده کنید یا به جای آن از یک پوشش (wrapper) بهره ببرید. این پوشش به صورت \fIldd.fakechroot\fR نصب می‌شود و می‌تواند با متغیر محیطی \f(CW\*(C`FAKECHROOT_CMD_SUBST\*(C'\fR به کار رود. .IP "\(bu" 4 برنامه‌های تمام‌صفحه در صورتی که فایل \fI/dev/tty\fR یک دستگاه واقعی نباشد قفل می‌کنند. فایل \fI/dev/tty\fR یا کل دایرکتوری \fI/dev\fR را به نمونه واقعی پیوند دهید یا آن را با متغیر \f(CW\*(C`FAKECHROOT_EXCLUDE_PATH\*(C'\fR از محیط chroot ساختگی خارج کنید. .IP "\(bu" 4 توابع \&\fBlckpwdf\fR\|(3) و \fBulckpwdf\fR\|(3) نادیده گرفته می‌شوند، بنابراین دستور \fBpasswd\fR\|(1) باید کار کند. .IP "\(bu" 4 شناسه کاربر (uid) واقعی شما باید در \fI/etc/passwd\fR وجود داشته باشد. آن را با دستور adduser \-\-uid \fIrealuid\fR \fIrealuser\fR در داخل محیط chroot ساختگی ایجاد کنید. .IP "\(bu" 4 دستور \&\fBdebuild\fR\|(1) متغیرهای محیط را پاک می‌کند. از گزینه \-\-preserve\-env برای جلوگیری از این رفتار استفاده کنید. .IP "\(bu" 4 دستور \&\fBrpmbuild\fR\|(8) از پیاده‌سازی \fBglob\fR\|(3) اختصاصی خود استفاده می‌کند که عملکرد fakechroot را مختل می‌سازد، بنابراین دایرکتوری buildroot باید در داخل و خارج fakechroot یکسان باشد. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBfakeroot\fR\|(1), \fBdebuild\fR\|(1), \fBdebootstrap\fR\|(8), \fBrinse\fR\|(8), .SH "اشکالات (BUGS)" .IX Header "BUGS" اگر با اشکالی مواجه شدید یا تمایل به پیاده‌سازی قابلیت‌های جدید دارید، لطفاً آن را در نشانی زیر گزارش کنید: .SH "نویسندگان (AUTHORS)" .IX Header "AUTHORS" حق نشر (c) 2003\-2017, 2019 Piotr Roszatycki .PP حق نشر (c) 2007 Mark Eichin .PP حق نشر (c) 2006, 2007 Alexander Shishkin .PP حق نشر (c) 2006, 2007 Lionel Tricon .SH "کپی‌رایت و تکثیر (COPYING)" .IX Header "COPYING" ابزار fakechroot تحت مجوز گنو لسر جی‌پی‌ال (\s-1LGPL 2.1\s0 یا بالاتر) توزیع می‌شود.