Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Установка из исходного файла, код от проги pptp-command 
:(
    Опции темы
Vovan_Danielyan
  Дата 23.1.2009, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 4.8.2007
Где: Усть-Лабинск

Репутация: нет
Всего: 1



Тема видимо уже обсуждалась, и в гугле полно инфы, но для этого случая я не нашел: надо установить не из тарбала и вообще не их пакета, а просто есть файл в котором написан код нужной мне утилиты pptp-command. Весь код не поместился, вот начало:
Код

#!/usr/bin/perl -wT
#this is a combination of jeff's previous pptp scripts
#functions:
# setup - configures tunnel servers and chap-secrets
# start - brings up a tunnel
# stop  - brings down a tunnel
#
# chkconfig: - 90 10
# description: cleanly brings down the tunnel when changing runlevels.
#
### BEGIN INIT INFO
# Provides: pptp
# Required-Start: network
# Required-Stop: network
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Description: PPTP based VPN
### END INIT INFO
# $Id: pptp-command,v 1.12 2001/12/20 13:09:02 jwiedemeier Exp $

#######
# Data
#
# the regexp for the list of characters that are unsafe
# to put inside a system() or ``
# it is built by saying everything but known safe characters
# anyone want to make bets on if this holds true for i18n'ed systems?
my $safe_set  = '-A-Za-z0-9\s\._\/:';
my $unsafe_re = "[^$safe_set]";
my $safe_re   = "[$safe_set]*";

#
# pppdir - the directory containing the ppp config files
#
my $pppdir = $ENV{"PPPDIR"};
die "Stop screwing with me and set PPPDIR to something reasonable\n" if defined $pppdir && $pppdir =~ /$unsafe_re/o;
$pppdir = "/etc/ppp" unless defined $pppdir;

#
# pptpdir - the directory containing the pptp drop-in config files
#
my $pptpdir = $ENV{"PPTPDIR"};
die "Stop screwing with me and set PPTPDIR to something reasonable\n" if defined $pptpdir && $pptpdir =~ /$unsafe_re/o;
$pptpdir = "/etc/pptp.d" unless defined $pptpdir;

#
# chap_secrets - the full path to the the CHAP
#       (Challenge/Handshake Authentication Protocol) secrets file
#
my $chap_secrets = "$pppdir/chap-secrets";
my $pap_secrets = "$pppdir/pap-secrets";

#
# tunnel_dir - the directory containing tunnel config files
#
my $tunnel_dir = "$pppdir/peers";

#
# subsys_dir - the place "rc" looks to see if a servics is started
#              before it runs the K* scripts
my $subsys_dir = "/var/lock/subsys";

#
# The resolv.confs...
#
my $resolv = "/etc/resolv.conf";
my $resolv_pptp = "$resolv.pptp";
my $resolv_real = "$resolv.real";

#
# clean up the path since this is run as root.
$ENV{PATH} = "/bin:/usr/bin:/usr/sbin";
delete $ENV{BASH_ENV};
delete $ENV{IFS};
delete $ENV{ENV};

sub usage() {
        print "usage: $0 [setup|stop|start [tunnel]]\n";
        print "all options must be specified to run non-interactively\n";
        exit 1;
}

#######
#first some support functions that are used everywhere
#
#yesno <prompt>
#
# Ask the user <prompt> and return true for yes, false for no
#
sub yesno($) {
        my $prompt = $_[0];
        while(1) {
                print "\n$prompt [Y/n]:";
                my $choice = <STDIN>;
                chomp $choice;
                return 1 if $choice eq "" || $choice =~ /[Yy]/;
                return 0 if $choice =~ /[Nn]/;
                print "\nI don't understand '$choice', please try again...\n";
        }
}

#QueryUser <prompt> <default>
#
# Ask the user <prompt> and return the answer, <default> if cr
#
sub QueryUser($$) {
        my ($prompt, $default) = @_;

        print "$prompt";
        print " [$default]" if defined $default;
        print ": ";
        my $answer = <STDIN>;
        chomp $answer;
        $answer = $default if $answer eq "" and defined $default;
        return $answer;
}



код вроде бы перловский.

Пробовал я его устанавливать и через консоль с make, однако там мне сказали, что мэйкать в этом файле нечего. У меня установлен geany поэтому полез туда, открыл этот исходник. Сначала скомпилировать не удалось, geany придрался к первой строчке. Не долго думая, я это строчку удалил  (ага, во так вот просто удалилsmile) и скомпилировать удалось, только получился какой-то непонятный файл с именем pptp-commandc безо всякого расширения. Там написаны какие-то три невнятные строчки кода, что с ним делать непонятно и вообще это вероятно не то, что нужно (просто так ведь удаление строчек из кода не проходит smile ).
Короче говоря, вопрос такой: как установить прогу (в частности pptp-command) имея только файл с ее кодом.
Подскажите, пожалуйста, а то уже полтора часа бьюсь, уснуть не могу! smile  smile 

Это сообщение отредактировал(а) bilbobagginz - 23.1.2009, 10:01
PM MAIL   Вверх
bilbobagginz
Дата 23.1.2009, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



есть 2 широких понятия в языках программирования (я.п.) :первые я.п. не нужно компилировать: скрипт выполняется интерпретором данного языка.
проще всего такую программу запускать при запуске интерпретера и как первый аргумент дать имя файла программы.
в UNIX есть конвенция автоматического выбора интерпретера для скриптов:
в первой строке пишется "шебанг" (#!) и путь к файлу интерпретера (#!/usr/bin/perl -wT)
а файл помечается выполняемым (chmod +x).
т.е. для запуска нужно, чтобы PERL был в /usr/bin, и сделать:
Код

chmod +x pptp-command
./pptp-command



удачи


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Vovan_Danielyan
  Дата 23.1.2009, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 4.8.2007
Где: Усть-Лабинск

Репутация: нет
Всего: 1



Ого, круто как! smile 
Не, про парсеры и компиляторы я и до этого знал, но вот шебанги - это классно придумано! Все больше и больше растет уважение к Linux!

Спасибо, bilbobagginz! smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.