Problem z uruchomieniem make w bazie danych postgresql

0

Pytanie

Uruchamiam to na 64-bitowej powłoce msys2 MINGW65.

Pobiegłem

$source/configure --host=x86_64-w64-mingw32 --prefix=$dist && make

i wszystko do momentu, gdy marka nie będzie działać prawidłowo. Po otrzymaniu problemy z make i próbuje poradzić sobie z tym problemem, ciągle uruchomić make dla ten sam problem poniżej.

Następnie, gdy uruchamiam make w katalogu.

wszystko idzie dobrze, dopóki nie dojdzie do tej części

make[2]: Leaving directory '/c/builds/build/REL_11_8/src/backend/utils'
make -C storage/lmgr lwlocknames.h lwlocknames.c
make[2]: Entering directory '/c/builds/build/REL_11_8/src/backend/storage/lmgr'
'/usr/bin/perl' /c/builds/source/src/backend/storage/lmgr/generate-lwlocknames.pl 
/c/builds/source/src/backend/storage/lmgr/lwlocknames.txt
unable to parse lwlocknames.txt at /c/builds/source/src/backend/storage/lmgr/generate- 
lwlocknames.pl line 36, <$lwlocknames> line 8.
make[2]: *** [Makefile:33: lwlocknames.h] Error 255
make[2]: Leaving directory '/c/builds/build/REL_11_8/src/backend/storage/lmgr'
make[1]: *** [Makefile:137: storage/lmgr/lwlocknames.h] Error 2
make[1]: Leaving directory '/c/builds/build/REL_11_8/src/backend'
make: *** [src/Makefile.global:372: submake-generated-headers] Error 2

W generate-lwlocknames.pl

jest następna linia, która, oczywiście, uruchamia go. Ale nie wiem, dlaczego to działa i jak to naprawić.

Muszę skompilować tę kompilację, aby móc uzyskać pliki DLL, aby rozszerzyć do komputera z systemem Windows, na którym działa postgres.

while (<$lwlocknames>)
{
    chomp;

    # Skip comments
    next if /^#/;
    next if /^\s*$/;

    die "unable to parse lwlocknames.txt"
      unless /^(\w+)\s+(\d+)$/;

    (my $lockname, my $lockidx) = ($1, $2);

    die "lwlocknames.txt not in order"   if $lockidx < $lastlockidx;
    die "lwlocknames.txt has duplicates" if $lockidx == $lastlockidx;

    while ($lastlockidx < $lockidx - 1)
    {
        ++$lastlockidx;
        printf $c "%s   \"<unassigned:%d>\"", $continue, $lastlockidx;
        $continue = ",\n";
    }
    printf $c "%s   \"%s\"", $continue, $lockname;
    $lastlockidx = $lockidx;
    $continue    = ",\n";

    print $h "#define $lockname (&MainLWLockArray[$lockidx].lock)\n";
}
msys2 postgresql postgresql-11
2021-11-23 21:56:54
2
0

Po ponownym uruchomieniu jeszcze kilka razy to zakończył się pomyślnie. W pliki lub metodologię nie wprowadzono żadnych zmian.

2021-11-23 22:40:03

Jeśli problem nie воспроизводима chyba najlepiej po prostu usunąć pytanie.
tdy

Może być. Ale myślę też, że może warto zostawić to jako doświadczenie dla kogoś innego, że jeśli używali tego samego narzędzia, a stanie się coś podobnego. Że odpowiedzią może być po prostu uruchomić go kilka razy. Bo wiem, że czułem się, jakbym był na granicy szaleństwa, siedząc tam i powtarzając to kilka razy. Ponieważ zdarzyło się to nie raz. To się stało, jak to się mówi w mojej odpowiedzi. Kilka razy, bez żadnej różnicy. I w końcu po prostu działa.
kloaf11
0

Wygląda na to, budujesz z pomocą Perl, który pochodzi z MinGW.

Tym nie mniej, dokumentacja PostgreSQL jest dość jasna w tej sprawie:

Do tworzenia PostgreSQL wymagane są następujące dodatkowe produkty. Użyj config.pl plik, aby określić, w jakich katalogach dostępne są biblioteki.

[...]

ActiveState Perl

Do uruchamiania skryptów tworzenia montażu wymagane przez ActiveState Perl. MinGW lub Cygwin Perl nie będą działać. Ja również musi znajdować się na DRODZE. Binarne pliki można pobrać z https://www.activestate.com (Uwaga: wymagana jest wersja 5.8.3 lub nowsza, wystarczy bezpłatnej standardowej dystrybucji).

2021-11-24 06:57:19

Nie czuję, że to ma coś wspólnego. Bo, jak mówi mój własny odpowiedź. Nic nie zmieniając, to w końcu po prostu z powodzeniem zbudował w pełni działający postgres.
kloaf11

Być może nie jest to związane, ale to może być prawda.
Laurenz Albe

No, mówię, co myślę, że to nie tak. Bo ja nie rządził Mingw. Ja wszczynał mingw, który pochodzi z msys2, które różnią się. Ale jest to możliwe. Ale również za pomocą tej powłoki mingw64 z msys2, ona w końcu pracowała bez zmian. Dlatego, jeśli korzystanie z mingw z perl nie działa, to nie powinno to być spowodowane
kloaf11

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................