Блог О пользователеfearuth

Регистрация

*nix

Календарь

<< Март 2009  

Пн Вт Ср Чт Пт Сб Вс
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

На странице

  • 8 марта 2009 | 08:38 С 8 МАРТА!!! 

    Поздравляю наших любимых, желанных и самых ДОРОГИХ девушек с 8 МАРТА!!!
  • Краткое описание 

    Библиотека ncurses (аналог библиотеки crt в Pascal) предназначена для управления вводом выводом на терминал. Она позволяет программисту не беспокоиться об аппаратных различиях терминалов и писать достаточно переносимый код. Файлы библиотеки находятся в папке /usr/include/curses/, дополнительную информацию и примеры можно найти в /usr/share/doc/ncurses-версия_библиотеки и в /usr/share/doc/ncurses-devel-версия_библиотеки.

    (http://alexber220.narod.ru/ncurses/index.htm)


    Ncurses — библиотека (аналог библиотеки crt в Pascal) предназначена для управления вводом/выводом на терминал. Она позволяет программисту не беспокоиться об аппаратных различиях терминалов и писать достаточно портируемый код.

    (http://ru.wikipedia.org/wiki/Ncurses)


    Подготовка

    Поскольку я работаю под разными дистрибутивами, но основным инструментом моей работы является Debian GNU/Linux, то соответственно для него установка необходимого ПО выглядит следующим образом:

    #aptitude install ncurses-base ncurses-bin libncurses5 libncursesw5-dev

    Далее создадим файл с примером test.cpp:

    #include < ncurses.h >//подключаем библиотеку ncurses

    using namespace std;//Используем стандартное пространство имен

    int main(int argc, char argv[])

     initscr(); /* Старт режима curses */
     printw("Hello World !!!"); /* Выводим Hello World */
     refresh(); /* Выводим это на реальный экран */
     getch(); /* Ожидаем пока пользователь нажмёт на кнопку */
     endwin(); /* Конец режима curses */
     return 0;
    }


    После того как файл создан, нам нужно откомпилировать его:
    g++ -o test test.cpp -lncurses

    *** -lncurses означает, что при компиляции происходит линковка с библиотекой libncurses.so, расположенной в /usr/lib/libncurses.so

    Сейчас разберёмся с описанием функций используемых нами в примере:

    initscr() - функция инициализирует экран в режим curses. В некоторых реализациях, она очищает экран, и предоставляет чистый бланк экрана. Для того, чтобы выполнять, какие либо действия с экраном пакет curses должен быть вызван первым. Данный пакет инициализирует систему curses и выделяет память для вашего окна представления (вызываемого stdscr) и некоторых других структур данных. В некоторых экстремальных случаях эта функция может из-за недостатка памяти выделить память под структуры данных библиотеки curses.

    endwin() - данная функция должна быть использована в конце программы для завершения режима curses. В противном случае ваш терминал может вести себя странно после завершения программы. endwin() освобождает память взятую для подсистем curses, структур данных и выводит терминал в нормальный режим. Эта функция должна быть вызвана после того, как Вы завершите режим curses.

    printw() - данная функция располагает текст с 0,0 (0 — строка, 0 — столбец) на мнимом экране.

    refresh() - данная функция используется для того, чтобы отобразить содержимое мнимого экрана на реальный.

    ЗЫ. Вот мой пример с реализацией идеологии С++ =)

    #include < ncurses.h >

    using namespace std;

    class A
    {
     public:
      A();
      ~A();
    };

    int main(int argc, char * argv[])
    {
     A();
     return 0;
    }

    A::A()
    {
     initscr();
     printw("Hellow World");
     refresh();
    }

    A::~A()
    {
     getch();
     endwin();

    }

    Используемый источник: http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/helloworld.html

  • В связи с недостатком времени, количеством людей в команде (2) и недостаточным опытом. Проект МУП загнулся =(. На данном этапе уже были готовы:
    1.Структура БД.
    2.Менеджер установки.
    3.Пара скриптов собирающих clamav, initng.

    Зы. Проект заморожен на неопределённое время.

    Теги: slackware

  • 15 января 2009 | 05:55 Некоторые наброски 

    Пока много времени свободного у меня нет. Но про свою мыслю я не забываю.
    Мысленно уже выбрал язык на котором будет работать МУП. Python! Пойду по пути emerge и Боже упаси создать меня такой же кошмар.

    Вся информация о пакетах и их версиях будет храниться в sqlite3.

    Теги: slackware

  • 10 января 2009 | 01:50 В путь... 

    Основные концепции:

    1.Все пакеты будут представлены в качестве модифицированных SlackBuild оптимизированных под i686. SlackBuild'ы будут поделены на группы и расположены в /usr/SB/. Ничего нового для тех кто пользуется CRUX, Gentoo здесь не будет.

    2.При помощи МУП можно будет синхронизироваться с основным сервером и обновлять SlackBuild'ы.

    3.Установка ПО по умолчанию будет идти вместе с зависимостями и начальной настройкой конфигурационных файлов. (специально для новичков, которым вся мишура и танцы с бубном не нужны)

    4.Для опытных пользователей будет возможно просмотреть ключи используемые по умолчанию при компиляции и изменить их.

    5.Так же будет возможен режим установки ПО без зависимостей и первоначальных настроек.

    6.Будет заимствована фишка от CRUX которая позволяет посмотреть и сравнить версии ПО установленные у вас с теми, что доступны на данный момент в репозитарии.

    7.Возможность подключения сторонних репозитариев. Основанных на модифицированных SlackBuild'ах.

    В целом Мы попытаемся создать инструмент который действительно не будет застревать в зубах как Emerge у Gentoo (да простят меня опытные пользователи Gentoo, я так и не понял связи идеологии установщика с тем что на практике у них).


    Зы. В ближайшем СКОРОМ =) выложу спецификации и правила по которым будет создаваться данный проект.

    Теги: slackware

  • Привет Всем. Сегодня проснулся с мыслью, что пора — ПОРА уже создать, что-то своё. Перетерев с товарищем Linuk'ом эту тему пришли к выводу, что нужно начать с создания менеджера установки пакетов (МУП). Поскольку дистрибутивов GNU/Linux уже при достаточно, а выпускать ещё одного выкидыша на свет не охота, то для начала создание МУП в самый раз.

    Наш МУП будет предназначен для Slackware (устанавливаться поверх и работать с уже имеющимися pkgtools). Он будет похож чем то на portage из Gentoo и ports из CRUX. В качестве скриптов для сборки будут использоваться SlackBuild (слегка модернизированные), что позволит в дальнейшем легко расширять набор ПО для данного дистрибутива (хоть Патрик вроде как и Бог, но ленивый =) ). Набор SlackBuild можно будет синхронизировать с основным сервером, а так же создавать свои репозитарии и т.д.

    ЗЫ. В общем это ещё только задумка, но если все получится, то возможно в дальнейшем руки доберутся и до самой Slack'и и её будем допиливать вместе с МУП.

    Теги: slackware

  • Видимо я был слеп, но на ЛОРе традиция, какая то сложилась. Как выходит, какой ни будь дистрибутив GNU/Linux, так там УРА и все такое, как выходит FreeBSD, так сразу «R.I.P.!!! В топку, закопать». Я не пойму, в чём дело? Неужели FreeBSD так мешает жить линуксятникам?

    Почитав выкрики складывается впечатление, что половина кричит просто для понта (увлеченная основной массой, грубо говоря «ГОПОТА» или «БАРАНЫ»); другая из тупости и злости за то, что не научилась работать с это ОС (Прошу заметить ОС, а не Дистрибутивом, что характерно для Линукс); ну а другие просто потому, что им не понравилась она, хоть они в ней работали и разобрались до конца.

    Товарищи, я хочу обратиться сначала к Линуксятникам, не портите другим людям праздники от релиза (замечу, что BSD’шники вам настроение не портят), мы ведь все таки по одну сторону баррикад. То, что FreeBSD не поддерживает некоторое оборудование это минус, но это связано с тем, что мало людей и времени затрачивается по этому направлению. По поводу старости софта хочу ткнуть носом Debian’щиков, у Вас тоже софт с душком (но можно и с сторонних дистров тянуть, будет по свеже). А FreeBSD пакеты не меняются с момента выхода релиза, все самое свежее там, в портах лежит (причем в портах можно собрать пакеты).

    BSD’шникам пожелаю удачных релизов и чтобы железо которое есть у Вас в обиходе заводилось без проблем.

    Мне например не нравится одна почти общая черта для всех Дистрибутивов GNU/Linux, это то, что софт ты сможешь новый поставить только с новым релизом и это не зер гуд.

    В FreeBSD мне не нравится только то, что железо хуже поддерживается.

    ЗЫ. Линуксятники, вы злые красноглазые гады (но не все, те, что относятся нормально к BSD, те нормальные ребята). =) МОЕ СУБЪЕКТИВНОЕ МНЕНИЕ.

    Теги: о разном

  • 3 сентября 2008 | 03:07 DNS + Archlinux 

    Привет всем! =) По нимногу по маленьку, подбираемся к доменным адресам. Сегодня мы будем делать на своей машние DNS сервер и обзаведемся доменными даресами.

    Для начала нам нужно обновить список пакетов:

    #pacman -Syu

    Далее устанавливаем bind:

    #pacman -S bind

    Затем, чтобы bind, загружался после перезагрузки компьютера мы редактируем /etc/rc.conf:

    #nano /etc/rc.conf

    Добавляем в само конце в блок DAEMONS следующее:

    DAEMONS=(... named ...)

    Затем редактируем файл /etc/named.conf (в нем хранятся все настройки):

    #nano /etc/named

    В блок options {}; поместим следующее:

    forwarders {
    ip_адрес_dns_сервера_который_нам_нужен;
    };
    version "unknown";
    auth-nxdomain no; # conform to RFC1035
    listen-on-v6 { any; };
    allow-query {наша_сеть/24;дополнительная_подсеть/24;localhost;};


    Далее вне блока options {}; добавляем следующее:

    zone "my" IN {
    type master;
    file "/etc/db.zone.my";
    allow-query{
    any;
    };
    notify yes;
    allow-update{
    none;
    };
    };


    Далее создаем файл /etc/db.zone.my и записываем в него следующее:

    $TTL 604800
    @ IN SOA my. admin.my. (
    20070527
    604800
    86400
    2419200
    604800 )
    ;
    @ IN NS my.
    my. IN A 1.1.1.1;
    news.my. IN A 1.1.1.2;


    Далее перезагружаем демона:

    #/etc/rc.d/named restart

    Зы. Все, теперь у вас есть собственный DNS. =)

    Теги: server archlinux

  • 27 августа 2008 | 01:44 Apache2 + SSL под Debian 

    Привет всем. Сегодня все-таки добрался до Ooo2.4 и решил написать ещё одну заметку.
    Недавно столкнулся с такой проблемой... Нужно было поставить Apache2 и настроить его, чтобы он работал с SSL.

    Для начала нам нужно поставить сам apache2:

    #apt-get install apache2

    Далее нам нужно создать .htaccess в /var/www со следующим текстом (данная операция не позволит просмотреть каталог с php файлами если отсутствует index.* файл):

    #echo "Options -Indexes" > /var/www/.htaccess

    Далее создаем ключ:

    #openssl genrsa -des3 -out name.key 1024

    genrsa - указывает для библиотеки OpenSSL, что мы хотим сгенерировать пару ключей.
    des3 - указывает, что секретный ключ должен быть зашифрован и защищен ключевой фразой (pass phrase).
    Опция out указывает, где следует сохранить результаты.
    Число 1024 указывает длину генерируемых ключей в битах.

    Создаём сертификат

    #openssl req -new -key name.key -out name.csr

    Вас попросят ввести пароль, который потом будет нужен в дальнейшем при подписи создаваемого сертификата и при запуске apacha2.

    На запрос: Country Name (2 letter code) [AU]:
    (Выбираем RU)
    На запрос: State or Province Name (full name) [Some-State]: (Вводим край или область или ... где находимся)
    На запрос: Locality Name (eg, city) []: (Вводим наименование города)
    На запрос: Organization Name (eg, company) [Internet Widgits Pty Ltd]: (Вводим наименование организации)
    На запрос: Organizational Unit Name (eg, section) []: (Вводим наименование вашего подразделения)
    На запрос: Common Name (eg, YOUR name) []: (Вводим ваше имя)
    На запрос: Email Address []: (вводим ваш электронный адрес)

    Далее идут расширенные опции:
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:


    На них можно просто нажать Enter пока программа не создаст name.csr

    Сформированный файл запроса подписи сертификата сохранится файле name.csr. Узнать о содержании сертификата можно узнать так - openssl req -noout -text -in name.csr. В идеале, файл запроса подписи сертификата нужно отослать в сертификационную службу для обработки. Verisign и Thawte - две наиболее известные сертификационные службы. Но можно создать само-подписанный сертификат.

    Создаем сертификат с личной подписью

    #openssl x509 -req -days 700 -in name.csr -signkey name.key -out name.cert

    Следует скопировать файл сертификата name.cert (или тот, что возвращен вам сертификационной службой) и файл с ключами secure.home.net.key в пути SSLCertificateFile и SSLCertificateKeyFile соответственно.

    Далее создаем директорию где будут храниться наши ключи и сертификаты:

    #mkdir /etc/apache2/keys

    Далее перемещаем в /etc/apache2/keys наши name.key, name.csr и name.cert:

    #mv name.key /etc/apache2/keys && mv name.csr /etc/apache2/keys && mv name.cert /etc/apache2/keys

    Далее правим файл в /etc/apache2/sites-available/default-ssl:

    #nano default-ssl

    Ищем и правим следующее:

    < Directory / >
    ...
    AllowOverride All
    < /Directory >
    < Directory /var/www >
    ...
    AllowOverride All
    ...
    < /Directory >


    Еще ищем следующие строки и редактируем их:

    SSLCertificateFile /etcl/apache2/keys/name.cert
    SSLCertificateKeyFile /etc/apache2/keys/name.key


    После того, как отредактировали этот файл, нам нужно будет включить наш сайт:

    #a2ensite default-ssl

    Выключить стандартный http:

    #a2dissite default

    Затем включаем модуль SSL:

    #a2enmod ssl

    И после всего это нам осталось перезапустить наш Apache2:

    #/etc/init.d/apache restart

    Зы. Все, теперь можете попробовать зайти на https://localhost. Удачи! =)

    Часть информации взята с http://uvsw.narod.ru/project/apache2.html
  • 22 мая 2008 | 00:34 Wine — ubuntu в вине! 

    Для тех, кто ну ни как не может расстаться с любимыми приложениями Windos. Могу Вас обрадовать, точнее не я а Те, кто занимается разработкой wine! Теперь вы сможете запускать некоторые приложения Windows и возможно Вам повезет с Вашими любимыми приложениями!

    Wine (/waɪn/ — между «уа́йн» и «вайн») — альтернативная свободная реализация Windows API для UNIX-подобных операционных систем. Конечному пользователю она позволяет выполнять в этих системах многие приложения, написанные для Microsoft Windows. Название является рекурсивным акронимом и расшифровывается «Wine Is Not an Emulator» — «Wine — не эмулятор» (имеется в виду, что Wine не является ни эмулятором компьютера, как, например, qemu, ни виртуальной машиной, как Vmware). (http://ru.wikipedia.org/wiki/Wine)


    Для того, чтобы иметь всегда самый свежий wine нам нужно выполнить следующие действия:

    1. Взять ключ с официального репозитария winehq.org.

    2. Устанавливаем ключ.

    3. Добавить репозитарий в sources.list.

    4. Обновиться.

    5. Установить wine.

    Начнем по порядку:

    1. Для того чтобы взять ключ нужно выполнить команду (перед тем как ее выполнять логично перейти в каталог /etc/apt/ или после того как ключ был получен перенести его туда): sudo apt-key add

    2. Для того, чтобы довать ключь нужно выполнить команду: sudo apt-key add /etc/apt/key_name.gpg

    3. Добавляем репозитарий оффициального сайта: wget http://wine.budgetdedicated.com/apt/sources.list.d/hardy.list -O /etc/apt/sources.list.d/winehq.list

    4. Обновляем список пакетов: sudo apt-get update

    5. Устанавливаем wine: sudo apt-get install wine

     

    Зы. Теперь вы можете экспериментировать с запуском Windows приложений под GNU/Linux!


    Для написания использовались:

    1. http://ru.wikipedia.org/wiki/Wine

    2. http://winehq.org/site/download-deb