отклоните диспетчер пакетов: жемчуг, предупреждающий: Установка локали перестала работать

Вы не настроили (или попытались использовать), Прокси HTTP, ни туннель ssh. Вместо этого Вы использовали перенаправление портов по ssh.

Порты Forwarding TCP не работают на HTTP. Посещение URL HTTP использует домен URL в двух различных точках. 1 - чтобы найти, что IP-адрес отправляет сообщения в. 2 - для заголовок Хоста в сообщении HTTP. Это позволяет одному IP-адресу служить веб-сайтам для нескольких доменов.

Таким образом, когда Вы посещаете http://localhost:9999/, сообщение HTTP включает строку заголовка Host: localhost:9999. Веб-сервер GNU не служит названному веб-сайту localhost:9999, и запрещает доступа (403).

(Эти 403 легальны спецификацией. В теории, 403 является немного недобрым, и необходимо предпочесть 400 с сообщением. Лично я использовал 403 на моем тривиальном сайте DynDNS. Не для безопасности согласно спецификации, но потому что ЗАПРЕЩЕННЫЙ такой хороший сильный сигнал для поиска и устранения неисправностей. Надо надеяться, это даже достаточно сильно для отклонения впечатления, что мой веб-сервер прервал их (в случае устаревшего кэш DNS, например)).

Удобный подход должен использовать опцию "динамического перенаправления портов" SSH -D, который настраивает прокси SOCKS. К сожалению, wget не имеет опции для прокси SOCKS (curl делает хотя).

5
28.02.2015, 18:01
2 ответа

Если нет расширения в имени файла:

for i in secondfolder/IM_* ; do mv "$i" "${i%_[0-9]*}_$[10#${i##*_}+2048]" ; done
-121--133496-

Здесь основной способ сделать что-то подобное с помощью сценария оболочки и awk.

Этот пример сценария является достаточно явным для вашего конкретного случая, его использование второго поля в имени файла является допустимым целым числом. И надеется, что в именах файлов нет случайных подчеркиваний. Более общий сценарий подтверждает, что поле 2 является просто числами, и делает разделитель полей параметром. Также предполагается, что расширение файла отсутствует (например, .img или .png)

#!/bin/sh
WORKDIR=/(Directory where the files to be renamed are)
NUM2ADD=2048
cd $WORKDIR
echo "Old File    New File"
ls IM_* | while read i
do
   newfile=`echo $i | awk -F_ -v incby=$NUM2ADD '{t=$2 + incby;printf "IM_%s",t;}'`
   echo   $i    $newfile
   # after a dry run to test, replace 'echo' with 'mv' onces your sure of the result. 
done

Поскольку наличие расширения файла достаточно вероятно, можно изменить строку awk на:

newfile=`echo $i | awk -F[_.] -v incby=$NUM2ADD '{t=$2 + incby; printf "IM_%s.%s",t,$3;}'` 

Это сохраняет расширение файла и использует _ подчеркивания и точку в качестве разделителей полей.

-121--133498-

При экспорте LC_ALL=C я фактически избавился от предупреждения.

Это скорее обходной путь (так как LC_ALL также категорически не рекомендуется), но я предполагаю, что причина такого поведения заключается в предположениях nix о языковых стандартах в системе, которые не применяются к openSUSE.

4
27.01.2020, 20:38

По-видимому, в nix существует проблема. Существует проблема на github с предлагаемым обходным решением путем установки переменной LOCALE_ARCHIVE.

Если у вас уже установлен nix, просто сделайте:

  1. nix-env -i glibc-locales
  2. И в профиле bash:

    export LOCALE_ARCHIVE="$(nix-env --installed --no-name --out-path --query glibc-locales)/lib/locale/locale-archive"

2
27.01.2020, 20:38

Теги

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