Calculate Forum

Работа через прокси

Представляю отредактированное частичное решение проблемы работы через прокси-сервер, так как цельной информации нигде не нашел. Начальные условия: есть комп с дистрибутивом CDLX v.11.15, доступ в Интернет, а значит и к источникам ПО для дистрибутива возможен только через http-прокси-сервер. На сегодняшний день проблемы, возникающие при обновлении и установке программ практически полностью решены. Есть ньюансы, но процесс не стоит на месте и с помощью сообщества надеюсь создать цельное руководство для пользователей, оказавшихся в моей ситуации.
Если кратко, то для обновления системы и программного обеспечения изначально нужно обновить portrage и overlay. Без необходимых настроек команда ‘eix-sync’ просто не срабатывает, что естественно. Единой для приложений точки, где можно прописать прокси-сервер я не нашел, прокси необходимо прописывать в нескольких местах чуть ли не для каждого приложения. В поисках решения я нашел два способа, о которых последовательно расскажу. Самый правильный первый. Все закачки при установке (обновлении) программного обеспечения проводятся программой ‘wget’, посему в обоих случаях надо прописывать http-прокси в конфигурационном файле wget - ‘wgetrc’.

Формат записи: http_proxy = PROXY:PORT.

Теперь, что касается первого способа: прописываем прокси в переменную среды, для чего необходимо создать в папке ‘/etc/env.d/’ файл ‘99local’ и добавить туда определение переменной:

echo "http_proxy = PROXY:PORT" >> /etc/env.d/99local

(источник - http://www.calculate-linux.ru/main/ru/environment_variables). После этого переменная прописывается автоматически в ‘/etc/profile’, становится видна в переменных окружения и можно выйти в интернет приложениям, которые настроены для работы с системным прокси (на моем дистре так настроен chromium). Без прописывания системного прокси тот же ‘chromium’ можно пробовать запускать вот с такими костылями:

chromium --proxy-server=PROXY:PORT

Ряд программ имеют возможности в настройках для прописывания в них прокси-сервера. Это надо делать в свойствах или параметрах программного обеспечения.
Лирическое отступление. При установке дистрибутива система в дополнительных параметрах предлагает прописать прокси-сервер, что не дает ровно никаких результатов. В этой связи у меня версия - возможно результатом данной прописки является создание указанного выше файла, но у меня он не создается. Если это так, то в системе присутствует БАГ.
Дальше следуем инструкциям, найденным тут: http://www.calculate-linux.ru/blogs/ru/319/show. Конкретно, используем рекомендации для прокси, а если быть совсем конкретным, то делаем вот что:

//правим конфикурационном файле layman парамтр прокси
//или прописываем его туда при помощи команды
echo "proxy : http://PROXY:PORT" >>/etc/layman/layman.cfg
//тут я точно не понял, где и что мы прописываем, но сделал это
git config --global http.proxy PROXY:PORT
//правим необходимые конфигурационные файлы, с тем, чтобы обращение
//к репозитариям шло по http-протоколу
sed -ri 's|(url = )git://|\1http://|' /var/lib/layman/calculate/.git/config
sed -ri 's|(url = )git://|\1http://|' /usr/portage/.git/config

Хочу сказать сразу, что сделано должно быть ровно то, что написано. В противном случае ничего работать не будет. После всех манипуляций желательно перезагрузиться. Вот собственно говоря и все. После этого команда ‘eix-sync’ должна заработать, как и установка всех необходимых пакетов.

Второй способ без использования ‘eix-sync’:
Для обновления портраджей использовал команду ‘emerge-webrsync’. Далее, с незначительными изменениями использовал рекомендации http://www.calculate-linux.org/boards/22/topics/1446.

//удалил старый оверлей
rm -rf /var/lib/layman/calculate 
//скачал новый с использованием wget в текущую директорию
wget "http://git.calculate.ru/?p=calculate/overlay.git;a=snapshot;h=HEAD;sf=tgz" -O overlay.HEAD.tar.gz
//распаковываем в папку откуда мы удалили старый оверлей
tar -xzf overlay.HEAD.tar.gz -C /var/lib/layman
//переименовываем распакованную папку (название папки может отличаться)
mv /var/lib/layman/overlay-HEAD-d7f364e /var/lib/layman/calculate
//обновляем оверлей
eix-update

//после проведенных манипуляций можно запустить обновление дистрибутива
emerge -uD world
//или поиск и установку необходимого программного обеспечения
eix tcpdump
emerge -bk tcpdump

Надо отметить, что в обоих случаях бинарники не ставятся, так как установщик собирается их скачивать по ftp-протоколу, который мне недоступен.

Вообщем-то вот такие бубнотанцы, что несколько удручает. По сравнению с ‘opensuse’, например. Там надо прокси прописать в ЯСТ только один раз и все начинает работать от обновления до программного обеспечения. А тут для каждого ПО прокси надо прописывать отдельно, причем надо конкретно знать что прописывать, а внятного цельного руководства нет. Сам дистрибутив, особенно подборка и настройка ПО по умолчанию, мне понравился и есть желание дальше его пробовать с перспективой на него перейти. Поддержать, пока морально, отечественного производителя.
В этой связи у меня ряд следующих вопросов, которые также не нашел в документации. Самый главный - как можно поменять источник (репозиторий) программного обеспечения, а то при установке у меня система почему-то начинает ломиться на казахские сервера? Второе - если ПО не ставится с выдачей кучи ошибок, на что обращать особое внимание? Третье, что за ерунда у меня выдается при установке программ?

!!! Error fetching binhost package info from 'http://mirror.cnet.kz/calculate/CLDX/grp/i686'
!!! [Errno url error] invalid proxy for http: 'PROXY:PORT'

С чем это связано и как от этого избавиться?
Вообщем как обычно жду мнения уважаемого сообщества, обязуюсь по мере решения проблем написать цельное руководство по данному вопросу для благодарных потомков :-))).

Очень многие программы понимают env переменную HTTP_PROXY
а Ваша задача как разработчика довести этот метод до ума

по крайней мере CHROMIUM точно не понимает :-((( да и другое ПО тоже, в некоторых правда есть возможность прописать прокси …

Неверно: google-chrome и chromium - как раз-таки первые, кто понимает, устанавливает и правильно работает с этой переменной и в средах Gnome/KDE.

читаем доку про http_proxy, https_proxy, ftp_proxy (мелкими).

ps. Кстати, про пляски с оверлеем - тоже первый раз вижу такое ;). Нужно добивать, чтоб он использовал http_proxy, как заявлено. Как быстрое решение можно тупо прописать прокси в /usr/portage/distfiles/svn-src/.subversion/servers (для git не знаю, не пробывал)

потом добавить echo “*” > /etc/eix-sync.conf
и запускать обновление всего на свете одной командой eix-sync.

У нас на работе тоже прокси стоит. Для использования ее я обычно прописываю в файле /etc/profile следующую строку:

export http_proxy=http://<логин>:<пароль>@<адрес-прокси>:<порт>

Во всех программах (например, в Psi+ и Chromium), у которых есть своя собственная опция задания прокси, никаких прокси после этого прописывать не надо. Для Chromium причем надо прописывать в опциях значка “chromium-browser --no-proxy-server %U”, иначе не заработает.

Надеюсь, эта инфа кому-нибудь поможет.

С обновлением без бубна так и не разобрался, а с CHROMIUM проблему решил. Решение нашел в документации, конкретнее тут - http://www.calculate-linux.ru/main/ru/environment_variables. Суть решения: создал файл ‘99local’ в дирректории ‘/etc/env.d/’ и прописал туда ‘http_proxy=“PROXY:PORT”’.
Интересно конечно, что для того, чтобы заработал браузер надо знать где создать файл и прописать нужным образом туда проки-сервер. После того, как прописал файл обязательно перегрузить систему, тогда http_proxy появится в переменных окружения. Теперь осталось разобраться с обновлениями и установкой программ… И ксати, есть какие-то решения у Петра Свищевского??? :-)))

Может это от настроек самого прокси-сервера зависит, но кроме прописывания /etc/profiles той команды, которую я привел, мне больше ничего не потребовалось особым образом настраивать. eix-sync нормально работает, emerge avuDN world тоже. Разве что в значке Chromium пришлось особым образом прописать ключ "-no-proxy-server", а все остальные программы по умолчанию.

@Aleks: не люблю перезагрузку моей стабильной работей станции :wink:
Обновляем командой env-update. Максимум перезапустить shell или перелогиниться.

@Петр: про -no-proxy-server интересно, но как-то не совсем логично. По документации этот параметер должен “Disables the proxy server. Overrides any environment variables”.

Вроде как с прокси разобрался, работает “eix-sync” и обновления проходят - все свои достижения отредактирую в первом сообщении, дабы благодарные потомки не лазили по всей ветке блога. Правда обновление проводится со скрипом, например тот-же chromium так и не захотел обновляться (после компиляции в течении 5-и часов выдало ошибку), но это тема отдельного разговора. Возник правда один вопрос по прокси при запуске команды “emerge” для обновления (установки) программы. Почему вылазит такое сообщение?

!!! Error fetching binhost package info from 'http://mirror.cnet.kz/calculate/CLDX/grp/i686'
!!! [Errno url error] invalid proxy for http: 'PROXY:PORT'

Причем прокси точно рабочий - система через него обновляется и браузер работает. На что это влияет пока не понял, потому как обновление и установка проходит. Возможно на установку именно бинарных пакетов??? Если есть у кого идеи - буду рад выслушать.

Mastodon Mastodon