Конфигурация каталога Apache при установке nominatim [закрыто]

Perl на самом деле не такой хороший инструмент для этого, потому что вам нужна сторонняя библиотека для генерации случайных номера надежно. Генератор случайных чисел по умолчанию ( rand или что-либо еще, использующее тот же источник, например List :: Util :: shuffle ) не подходит для чего-либо, связанного с безопасностью. Если вы хотите использовать Perl, установите Math :: Random :: Secure (и его зависимости) ( perl -MCPAN -eshell и запустите install Math :: Random :: Безопасность ).

perl -MMath::Random::Secure=rand -l -e '@words = <>; print map $words[rand(@words)], 1..4' words.txt

Вместо этого я предлагаю использовать Python. В наши дни он примерно так же распространен, как Perl, а его стандартная библиотека намного лучше округлена. Да, код длиннее, но короткий код сам по себе не является признаком качества.

python -c 'import random, sys; rng = random.SystemRandom(); words = sys.stdin.readlines(); print " ".join([words[rng.randrange(0, len(words))][:-1] for i in xrange(4)])' 

В более удобочитаемой многострочной форме:

import random, sys
rng = random.SystemRandom()
words = sys.stdin.readlines()
print " ".join([words[rng.randrange(0, len(words))][:-1] for i in xrange(4)])

В качестве альтернативы, если у вас есть не-антикварные GNU coreutils, как в случае с невстроенным Linux и Cygwin, вы можете использовать утилиту shuf . Вам необходимо передать безопасный генератор случайных чисел с опцией - random-source .

shuf --random-source=/dev/urandom -r -n 4 words.txt

2
26.06.2016, 15:55
1 ответ

Как указано в Github , ответ действительно прост:

http: // отсутствовал в определении Nominatim. Он должен был выглядеть так:

@define('CONST_Website_ @define('CONST_Website_BaseURL', 'http://$IP/html/nominatim/')
0
27.01.2020, 22:49

Теги

Похожие вопросы