Jails: nginx aus den Ports kompiliert nicht

m4rkus

Well-Known Member
Hallo,

bis ich ein sauberes Konzept für selbst gebaute Pakete habe, wollte ich innerhalb der Jails selbst über Ports arbeiten.

Der Versuch www/nginx zu kompillieren schlägt allerdings fehl
Code:
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

Ich dachte portmaster löst alle Abhängigkeiten auf? Liegt es daran, dass ich innerhalb der Jail bin und eine von ezjail angelegte make.conf verwende?

Gruß
Markus
 
Es könnte sein, dass da irgendwie widersprüchliche Optionen gesetzt sind. Schau dir mal mit make config die Einstellungen an.
 
Also die make.conf der Jail hab ich selbst nicht geändert und wurde von ezjail so angelegt (denke ich).
Portstree habe ich über ein nullfs-Mount unter /usr/ports/ eingehangen (vom Hostsystem aus)
Code:
root@rp1:~ # cat /etc/make.conf
WRKDIRPREFIX=  /var/ports
DISTDIR=  /var/ports/distfiles
PACKAGES=  /var/ports/packages
INDEXDIR=  /var/ports

Gruß
Markus
 
Das meine ich nicht. Die Konfiguration zum Port.

cd .../ports/www/nginx
make config
 
Ich hab jetzt testweise mal ein zweites Jail erstellt und dort anstelle des Nullfs-Mounts den Portstree mittels portsnap separat installiert.

Jetzt geht die Kompillation durch...

Kann ich das Ganze noch irgendwie anders teste? Ich würde gerne EINEN portstree auf dem Host haben.
Gruß
Markus
 
Ich schau mal, aber ich dachte die oben genannte make.conf aus dem Jail entspricht vollständig dem von dir geschriebenen.
Ezjail hat die make.conf so erstellt.

Edit:
Ich habe jetzt noch mal alles nachgeschaut und versucht dein Vorgehen durchzuführen.
Dabei kommt der Fehler immer noch.

Stand jetzt:
Neues Jail mit eigenem Portstree und leerer make.conf -> portmaster www/nginx funktioniert (pcre wird automatisch installiert...)
Jail mit ro-Portstree (nullfs Mount) und make.conf von ezjail / foxit -> portmaster www/nginx funktioniert nicht mit Hinweis auf pcre nicht vorhanden...

Gruß
Markus
 
Zuletzt bearbeitet:
Ich habe mir den Port mal angesehen, ich kann mir vorstellen, dass das passiert, wenn man mit MODESECURITY und ohne HTTP_REWRITE baut.
 
Also ich hab gerade nochmal ein neues Jail gebaut und quasi nur OK gedrückt bei der Abfrage der Optionen...

Code:
===>    Verifying for libpcre.so in /usr/ports/devel/pcre
    => No directory for libpcre.so.  Skipping..
===>  Configuring for nginx-1.4.6,1
===>  FreeBSD 10 autotools fix applied to /var/ports/usr/ports/www/nginx/work/nginx-1.4.6/configure
checking for OS
+ FreeBSD 10.0-RELEASE amd64
checking for C compiler ... found
+ using Clang C compiler
checking for --with-ld-opt="-L /usr/local/lib" ... found
checking for gcc builtin atomic operations ... found
checking for C99 variadic macros ... found
checking for gcc variadic macros ... found
checking for unistd.h ... found
checking for inttypes.h ... found
checking for limits.h ... found
checking for sys/filio.h ... found
checking for sys/param.h ... found
checking for sys/mount.h ... found
checking for sys/statvfs.h ... found
checking for crypt.h ... not found
checking for FreeBSD specific features
+ sendfile() found
+ sendfile()'s SF_NODISKIO found
+ POSIX semaphores should work
+ kqueue found
+ kqueue's NOTE_LOWAT found
+ kqueue's EVFILT_TIMER found
+ cpuset_setaffinity() found
checking for poll() ... found
checking for /dev/poll ... not found
checking for crypt() ... not found
checking for crypt() in libcrypt ... found
checking for F_READAHEAD ... found
checking for posix_fadvise() ... found
checking for O_DIRECT ... found
checking for F_NOCACHE ... not found
checking for directio() ... not found
checking for statfs() ... found
checking for statvfs() ... found
checking for dlopen() ... found
checking for sched_yield() ... found
checking for SO_SETFIB ... found
checking for SO_ACCEPTFILTER ... found
checking for TCP_DEFER_ACCEPT ... not found
checking for TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_KEEPCNT ... found
checking for TCP_INFO ... found
checking for accept4() ... found
checking for int size ... 4 bytes
checking for long size ... 8 bytes
checking for long long size ... 8 bytes
checking for void * size ... 8 bytes
checking for uint64_t ... found
checking for sig_atomic_t ... found
checking for sig_atomic_t size ... 8 bytes
checking for socklen_t ... found
checking for in_addr_t ... found
checking for in_port_t ... found
checking for rlim_t ... found
checking for uintptr_t ... uintptr_t found
checking for system byte ordering ... little endian
checking for size_t size ... 8 bytes
checking for off_t size ... 8 bytes
checking for time_t size ... 8 bytes
checking for AF_INET6 ... found
checking for setproctitle() ... found
checking for pread() ... found
checking for pwrite() ... found
checking for sys_nerr ... found
checking for localtime_r() ... found
checking for posix_memalign() ... found
checking for memalign() ... not found
checking for mmap(MAP_ANON|MAP_SHARED) ... found
checking for mmap("/dev/zero", MAP_SHARED) ... found
checking for System V shared memory ... found but is not working
checking for POSIX semaphores ... found
checking for struct msghdr.msg_control ... found
checking for ioctl(FIONBIO) ... found
checking for struct tm.tm_gmtoff ... found
checking for struct dirent.d_namlen ... found
checking for struct dirent.d_type ... found
checking for sysconf(_SC_NPROCESSORS_ONLN) ... found
checking for openat(), fstatat() ... found
checking for getaddrinfo() ... found
checking for PCRE library ... not found
checking for PCRE library in /usr/local/ ... not found
checking for PCRE library in /usr/include/pcre/ ... not found
checking for PCRE library in /usr/pkg/ ... not found
checking for PCRE library in /opt/local/ ... not found

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

===>  Script "configure" failed unexpectedly.
Please report the problem to osa@FreeBSD.org [maintainer] and attach the
"/var/ports/usr/ports/www/nginx/work/nginx-1.4.6/config.log" including the
output of the failure of your make command. Also, it might be a good idea to
provide an overview of all packages installed on your system (e.g. a
/usr/local/sbin/pkg-static info -g -Ea).
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/www/nginx
*** Error code 1

Stop.
make: stopped in /usr/ports/www/nginx
 
OK, der schaut auf jeden Fall ins falsche Verzeichnis. Die Frage ist warum. Die Abhängigkeiten scheinen alle ordentlich mit PORTSDIR definiert. Irgendwie wird also PORTSDIR mit einem falschen Wert überschrieben.
 
Noch jemand eine Idee?

edit: Ich hab jetzt nochmal weitergeschaut und komme immer weniger klar. Ich versuche mich an die Anleitungen zu halten, nur entweder sind meine "Ports" alle kaputt, oder ich einfach unfähig.

Da ich dachte ich baue mal testweise mariadb55-server, weil ich es eh brauche, kommt ein anderer Fehler. "gmake not found".
Sollte der Port das nicht mitbauen? In "meinem" Portstree finde ich es allerdings nicht.
Yamagi hat mal in nem anderen Thread von mir gesagt, dass es unter devel/gmake zu finden ist - da ist es jedoch nicht...

Gruß
Markus
 
Zuletzt bearbeitet:
AAAAHHHH.
Gelöst.

Nachdem ich aus Frust versucht habe dann mal mysql56-server zu bauen und dies durchlief, kam dann beim Versuch zu starten eine weitere Fehlermeldung.
Ein kurzes googlen erbrachte, dass mysql56-server auf perl aufbaut und ggf. dies nicht automatisch mit installiert wird.

Ich habe dann versucht lang/perl-xy zu installieren und "BAM" - kein perl da.

Scheinbar hat mein erstes "portsnap fetch extract" nur die "Hälfte" des Porttrees heruntergeladen - da fehlte so einiges auf dem Host.
Nachdem ich das gesamte Verzeichnis /usr/ports geleert habe, und erneut den Tree heruntergeladen habe ging es dann...

nginx wurde ganz normal gezogen und pcre als Abhängigkeit installiert.

Danke für die Hinweise ich mach dann hier zu :)

Gruß
Markus
 
Zurück
Oben