2012-08-26 2 views
3

데비안 및/또는 레드햇 패키지에 많은 모듈을 사용하는 Perl 응용 프로그램을 만드는 방법을 연구 중입니다. 현재,이 작업을 수행하는 '가장 깨끗한'방법은 가능하면 주어진 배포판에 이미 패키지 된 모듈을 인용하는 것입니다.데비안 및 레드햇 용으로 이미 패키지 된 Perl 모듈 찾기

대안은 내가 찾거나 여기 데비안 패키지 목록을 심문 할 수

그러나 @INC 등으로 문제를 CPAN을 사용하고 아마 중복을하는 것입니다 : http://pkg-perl.alioth.debian.org/cpan2deb/을하지만 난 현재를 찾을 수 없습니다 Redhat/Fedora에 해당합니다. 또한 cpan2deb가 신뢰할 수 있고 최신인지 여부를 알지 못합니다.

이렇게하는 또 다른 방법이 있다면 다른 아이디어도 환영합니다.

답변

1

cpanspec이 있지만 몇 년 동안 만져 본적이 없습니다. 나는 cpan2rpm을 기억하는 것 같지만 나는 그 경험이별로 없다.

+0

고마워요, 한번보세요 ... –

3

데비안 펄 그룹은 데비안 세계에서 가장 좋은 선택입니다. 데비안의 모든 확산 모듈 패키지를 차단할뿐만 아니라 최신으로 유지하려고 노력합니다.

http://qa.debian.org/[email protected]

+0

고마워요! –

1

이 대안 등

나 '

@ INC와 함께 문제를 CPAN을 사용하고 아마 중복을하는 것입니다 :

이 페이지를 참조하십시오 데비안을위한 perl 프로그램 패키지가 많은 의존성을 가지고있다. 편의를 위해 필자는 패키지 모듈을 종속물로 추가하고 설치 후 스크립트에서 실행되는 치트 백도어 CPAN 설치를 선택했습니다. 내 응용 프로그램의 META.yml 사본을 하이브로 만들고 내 의존성을 다시 확인하십시오.

etc/META.yml /usr/share/myapp/etc/ 

3. debian/libmyapp-perl.postinstall 다음 상호 종속성을 확인 :

override_dh_auto_install: 
dh_auto_install; \ 
cp META.yml etc/;\ 

2. debian/libmyapp-perl.install 다음 META.yml 설치 :

1. debian/rules 파일 META.yml의 복사본을 만듭니다

echo "Cross checking with cpan"; 
for m in `perl -Mstrict -MYAML::Syck -e'my $r = YAML::Syck::LoadFile("/usr/share/myapp/etc/META.yml")->{requires}; for (grep {$_ ne "perl"} (sort keys %$r)) {eval "use $_ $r->{$_}"; print "$_\n" if [email protected]}'`; do 
    # would prefer App::cpanminus, but that's not packaged for debian either? 
    PERL_MM_USE_DEFAULT=1 perl -MCPAN -e "install $m"; 
done 

정확하지는 않지만 기능에 대한 빠른 접근 종속적 인 데비안 패키지와 몇 개의 CPAN 모듈을 혼합하여 사용합니다.

+0

안녕하세요, 대단히 감사합니다. 불행하게도, '세계'의 상황에서 우리는 비슷한 생각을하게 될 것입니다 ... –

+0

안녕 휴. 나는 항상 패키지 중 하나가 아닌 모듈의 비율이 있거나 최신 버전이 필요하다는 것을 발견했습니다. 자신의 로컬 패키지를 빌드하고 유지 관리하는 것은 정말 어려운 일일 수 있으며, 실제로는 데비안 저장소를 적절하게 유지 관리해야합니다. – dwarring