From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 21 Oct 2002 17:48:28 +0400 From: Alexey Tourbin To: devel@altlinux.ru Message-ID: <20021021134828.GA9252@ungrund> References: <20021021055409.GA22724@homestead.turbinal.org> <20021021091336.GC31502@basalt.office.altlinux.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20021021091336.GC31502@basalt.office.altlinux.ru> Subject: [devel] Re: perl-5.8.0-alt0.4 Sender: devel-admin@altlinux.ru Errors-To: devel-admin@altlinux.ru X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: devel@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: On Mon, Oct 21, 2002 at 01:13:36PM +0400, Dmitry V. Levin wrote: > > - make use of site/vendor distinction; additional perl packages > > provided by %vendor must install in %vendor_privlib > > (typical invocation: "perl Makefile.PL INSTALLDIRS=vendor"); > > local installations must install in %site_privlib > > Можно об этом поподробнее? В новых версиях перла существует 3 группы каталогов для установки модулей (см. ExtUtils::MakeMaker(3), INSTALL): perl, vendor, и site (раньше существовали только perl и site). - в каталоги группы perl устанавливаются bundled модули; - в каталоги группы vendor устанавилваются модули, собранные вендором (в рамках дистрибутива); - каталоги группы site используются для локальных установок. Таким образом, теперь мы можем предоставить пользователям полноценную возможность самостоятельно устанавливать дополнительные модули (например, с помощью CPAN interactive shell) в /usr/local, не нарушая при этом целостность дистрибутива (/usr/lib). У меня есть два вопроса: 1) может ли пакет создавать какие-либо каталоги в /usr/local? 2) что правильнее: /usr/local/perl5 или /usr/local/lib/perl5? Цитирую INSTALL: =item Directories for vendor-supplied add-on files Lastly, if you are building a binary distribution of perl for distribution, Configure can optionally set up the following directories for you to use to distribute add-on modules. Configure variable Default value $vendorprefix (none) (The next ones are set only if vendorprefix is set.) $vendorbin $vendorprefix/bin $vendorscript $vendorprefix/bin $vendorlib $vendorprefix/lib/perl5/vendor_perl/$version $vendorarch $vendorprefix/lib/perl5/vendor_perl/$version/$archname $vendorman1 $vendorprefix/man/man1 $vendorman3 $vendorprefix/man/man3 $vendorhtml1 (none) $vendorhtml3 (none) These are normally empty, but may be set as needed. For example, a vendor might choose the following settings: $prefix /usr $siteprefix /usr/local $vendorprefix /usr This would have the effect of setting the following: $bin /usr/bin $scriptdir /usr/bin $privlib /usr/lib/perl5/$version $archlib /usr/lib/perl5/$version/$archname $man1dir /usr/man/man1 $man3dir /usr/man/man3 $sitebin /usr/local/bin $sitescript /usr/local/bin $sitelib /usr/local/lib/perl5/site_perl/$version $sitearch /usr/local/lib/perl5/site_perl/$version/$archname $siteman1 /usr/local/man/man1 $siteman3 /usr/local/man/man3 $vendorbin /usr/bin $vendorscript /usr/bin $vendorlib /usr/lib/perl5/vendor_perl/$version $vendorarch /usr/lib/perl5/vendor_perl/$version/$archname $vendorman1 /usr/man/man1 $vendorman3 /usr/man/man3 Note how in this example, the vendor-supplied directories are in the /usr hierarchy, while the directories reserved for the end-user are in the /usr/local hierarchy. The entire installed library hierarchy is installed in locations with version numbers, keeping the installations of different versions distinct. However, later installations of Perl can still be configured to search the installed libraries corresponding to compatible earlier versions. See L<"Coexistence with earlier versions of perl5"> below for more details on how Perl can be made to search older version directories. Of course you may use these directories however you see fit. For example, you may wish to use $siteprefix for site-specific files that are stored locally on your own disk and use $vendorprefix for site-specific files that are stored elsewhere on your organization's network. One way to do that would be something like sh Configure -Dsiteprefix=/usr/local -Dvendorprefix=/usr/share/perl =