pkg_create inkl. abhängigkeiten

bsdagent

Auch im #bsdforen.de Chat
hi

ich möchte pakete in openbsd erstellen, bekomme aber mit:

Code:
pkg_create -f /var/db/pkg/jdk-1.5.0p19/+CONTENTS

nur ein paket "jdk-1.5.0p19.tgz". leider find ich in pkg_create keine geeignete option damit auch abhängige pakete automatisch erstellt werden. ;'(

im chat wurde bestätigt das es keine option gibt und somit hab ich mir überlegt, dass es mit einem sh script in zusammenarbeit von pkg_create eine lösung geben könnte.

leider weis ich nicht wie ich das script schreiben soll bzw. wie ich die abhängigkeiten auslese. mit pkg_info hab ich es versucht, doch alle optionen haben mir keine abhängigkeiten zu jdk gegeben.

kann mir bitte jemand helfen.

gruss
bsdagent
 
Hallo!

Vielleicht hilft dir dieses kleine Beispiel:

Code:
mann@tyan:~$ pkg_info -rx p5-DBI
Information for p5-DBI-1.53:

Depends on:
Dependency: perl-threaded-5.8.8
Dependency: p5-Storable-2.15

mann@tyan:~$ pkg_info -Rx p5-DBI
Information for p5-DBI-1.53:

Required by:
mysql-scripts-4.1.22
p5-DBD-mysql41-4.0000

Ciao.
Markus Mann
];-)
 
hi

die optionen "-rx" bzw. nur die option "-x" kennt openbsd/pkg_create nicht, dass ist von freebsd/pkg_create.

wenn ich nur die option "-r" unter openbsd verwende bsp:

Code:
pkg_info -r jdk-1.5.0p19

kommt nur:

Code:
Information for jdk-1.5.0p19

ohne weiteren ausgaben.

gruss
bsdagent
 
hi

ich hab ne lösung gefunden um die abhängigkeiten rauszulesen, bsp. bei jdk-1.5.0:

Code:
cat /var/db/pkg/jdk-1.5.0/+R*

ich weis wie sh script geschrieben werden, doch habe ich keine lösung zu realisierung eines scripts, dass die abhängigkeiten rauslist und mit erstellt durch "pkg_create -f /var/db/pkg/PKG-NAME-VERSION/+CONTENTS"

könnte mir BITTE jemand ein kleines script dafür schreiben, wäre sehr dankbar.

gruss
bsdagent
 
hm.. hab mal ein perl-script überlegt:
Code:
#!/usr/bin/env perl

use strict;

my(%pkgs);
my($first) = $ARGV[0];

sub fetchdeps {
	my($pkg) = shift;
	$pkgs{$pkg}=1;
	my($fname) = "/var/db/pkg/$pkg/+REQUIRING";
	if(-e $fname) {
		open(REQUIRES,'<',$fname);
		while(<REQUIRES>) {
			chomp;
			if(!defined($pkgs{$_})) {
				&fetchdeps($_);
			}
		}
		close(REQUIRES);
	}
}

if($first =~ m/^(.+)$/) {
	print "fetching dependencies for $1...\n";
	&fetchdeps($1);
	my(@deps) = keys(%pkgs);
	print "all dependencies: ",join(", ", @deps),"\n";
	print "building packages...\n";
	foreach(@deps) {
		print "creating $_.....\n";
		`pkg_create -f /var/db/pkg/$_/+CONTENTS`;
		print "done $_.\n";
	}
	print "finished.\n";
} else {
	print qq"Usage:\nmkpkgs.pl pkg\n"
}

auf bald
oenone
 
Zurück
Oben