суббота, 2 августа 2014 г.

Установка postgresql


 
sudo apt-get install postgresql-9.3 pgadmin3
Создаем папку для postgresql:
Меняем пароль:
Добавиляем строчку в конфиг vim /etc/postgresql/9.3/main/pg_hba.conf:
В главном конфиге /etc/postgresql/9.3/main/postgresql.conf меняем настройки:
Инициализируем:
Перезагружаем сервис Postgres:
1
sudo /etc/init.d/postgresql reload

среда, 21 августа 2013 г.

Kubuntu 13.04 + Lenovo Z580 Настройка NVidia Optimus

Сколько нервов было потрачено чтобы нормально заставить работать Kubuntu 13.04 и Lenovo Z580 на проприетарных дровах NVIDIA по технологии Optimus

О Технологии Optimus

Видеокарта Nvidia с поддержкой технологии Optimus была создана для оптимизации и увеличения заряда батареи. Принцип работы очень прост, при использовании ресурсоёмких приложений или игр Nvidia Optimus "забирает" на себя работу обработки изображения(но НЕ выводит его) вместо этого видеокарта Intel занимается выводом изображения на экран. Когда работы с такими(графическими) приложениями завершена, видеокарта Nvidia просто выключается.
Но не все так просто с Linux. Если в Windows поддержка такой технологии реализована и пользователю не надо думать когда стоит включить видеокарту Nvidia, она сама(видеокарта) выбирает когда нужна ее "помощь", то в Linux такого нет. К счастью нашлись люди, которые решили заняться поддержкой данной технологии.


А теперь что нужно сделать:


sudo add-apt-repository ppa:bumblebee/stable
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-325 nvidia-settings-325
? sudo add-apt-repository -r ppa:xorg-edgers/ppa - ПОД ВОПРОСОМ у меня заработало без удаления репозитория
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia
sudo apt-get dist-upgrade
 

Проверяем и смотрим результаты:
$glxspheres  - на интеловской карте
$vblank_mode=0 optirun glxspheres - на nvidia карте

А теперь установим Primus

sudo apt-get install primus
 
Изменить параметр "Bridge" на "primus" в фаиле /etc/bumblebee/bumblebee.conf 


Проверяем и смотрим результаты еще раз:
$glxspheres  - на интеловской карте
$vblank_mode=0 optirun glxspheres - на nvidia карте
Смотрим статус
optirun --status

Для открытия параметров nvidia
optirun nvidia-settings -c :8

вторник, 24 июля 2012 г.

Установка и настройка Apache, mod_wsgi, Django, MySQL в Debian / Ubuntu



Copypast-ю себе чтобы не искать потом. реальная тема ))

Django (читается как Джанго) - это свободно распространяемый фреймворк с открытым исходным кодом для разработки веб приложений на языке Python. Django обладает следующими архитектурными отличиями:
  • использование концепции Модель-Представление-Контроллер (Model-View-Controller, MVC). В терминологии Django это будет Модель-Шаблон-Вид (Model-Template-View, MTV)
  • использование концепции приложений. Весь код рекомендуется оформлять в виде приложений и делать его подключаемым и переносимым
  • диспетчер URL на основе регулярных выражений
  • ORM для работы с БД (с поддержкой транзакций)
  • встроенный веб-сервер для разработки
  • встроенная административная панель

Установка и настройка Django

Django можно установить двумя способами: из репозитариев или скачав исходники фреймворка с сайта. Как правило, в репозитариях находится не самая свежая версия. Поэтому, обычно используется второй способ, хотя это и не Debian-way.

Установка Django из репозитория

Пакет Django находится в стандартном репозитории, поэтому ничего нового подключать не надо. Для установки необходимо выполнить следующее:
$ sudo aptitude install python-django

Установка последней стабильной версии Django

Для установки последней версии необходимо скачать исходники и распаковать их:
$ sudo mkdir ~/django
$ cd ~/django
$ wget http://www.djangoproject.com/download/1.1/tarball/
$ tar xzf Django-1.1.tar.gz
Далее, необходимо узнать, в какую директорию необходимо устанавливать пакеты, чтобы Python узнал об этом. Для этого необходимо выполнить:
$ python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
/usr/lib/python2.5/site-packages
В данном случае, видно что основной версией является Python 2.5 и все дополнительные пакеты устанавливаются в директорию "/usr/lib/python2.5/site-packages".
Следующим шагом необходимо создать символическую связь для распакованной директории Django:
$ sudo ln -s ~/django/Django-1.1/django /usr/lib/python2.5/site-packages/django
И в конце, чтобы сделать команду django-admin.py доступной из любой директории системы, необходимо добавить еще одну символическую ссылку:
$ sudo ln -s ~/django/Django-1.1/django/bin/django-admin.py /usr/local/bin

Проверка корректности установки Django

Чтобы убедиться, что Django нормально установлен, необходимо запустить интерпретатор Python и импортировать модуль django:
$ python -c "import django; print django.VERSION;"
(1, 1, 0, 'final', 0)
Все в порядке. Последняя версия Django корректно установлена.

Установка и настройка Apache, mod_wsgi

Для работы с Django необходимы http-сервер Apache и модуль к нему - mod-wsgi. Модуль mod_wsgi пришел на смену mod_python и в настоящее время рекомендуется авторами Django как наиболее подходящее решение для использования в реальных условиях.
Установка Apache и mod_wsgi тривиальна:
$ sudo aptitude install apache2 libapache2-mod-wsgi

Установка MySQL

Кроме самого сервера MySQL необходимо также установить пакет, который позволяет работать с MySQL из Python:
$ sudo aptitude install mysql-server python-mysqldb
При установке необходимо будет указать пароль для root-пользователя БД MySQL.

Создание и настройка проекта в Django

При создании проекта будем исходить из того, что код Django-проекта должен работать от имени отдельного системного пользователя.

Создание проекта Django

Далее приведен код создание Django-проекта и некоторых дополнительных директорий в нем:
# директория для django проектов
$ sudo mkdir -p /home/django-projects/debianworld_ru

# новый django-проект
$ cd /home/django-projects/debianworld_ru
$ sudo django-admin.py startproject apps

# корректируем название модуля для корректного импорта
$ sudo perl -pi -e 's/apps.urls/urls/g' apps/settings.py

# директория для настроек wsgi
$ sudo mkdir -p /home/django-projects/debianworld_ru/deploy

# директория для статики
$ sudo mkdir -p /home/django-projects/debianworld_ru/media

# директория для логов
$ sudo mkdir -p /home/django-projects/debianworld_ru/logs

Создание пользователя для проекта

Для того, чтобы изолировать код проекта от остальной системы (в целях безопасности), необходимо добавить в систему пользователя, от имени которого будет исполняться код проекта:
# создается системная группа
$ sudo addgroup --quiet --system dw

# создается системный пользователь
$ sudo adduser --quiet --system --ingroup dw --no-create-home --no-create-home dw

# новый владелец для проекта
$ sudo chown dw:www-data -R /home/django-projects/debianworld_ru

# права доступа на проект. Право на чтение для www-data необходимо
# для корректной отдачи статики
$ sudo chmod u=rwx,g=rx,o= -R /home/django-projects/debianworld_ru

Настройка виртуального хоста в Apache

Далее, чтобы код проекта отзывался на какой-либо URL-адрес, необходимо настроить виртуальный хост Apache. Необходимо создать новый файл:
$ sudo -u dw vim /home/django-projects/debianworld_ru/deploy/debianworld.ru
И добавить в него следующий код:
<VirtualHost 10.1.0.4>
    # Описание сервера
    ServerAdmin admin@wsgi.debianworld.ru
    ServerName wsgi.debianworld.ru

    # Логи
    ErrorLog    /home/django-projects/debianworld_ru/logs/error_log
    CustomLog   /home/django-projects/debianworld_ru/logs/access_log common

    # wsgi-обработчик (см. ниже)
    WSGIScriptAlias / /home/django-projects/debianworld_ru/deploy/django.wsgi
    # Параметры запуска wsgi
    WSGIDaemonProcess dw-site user=dw group=dw home=/home/django-projects/debianworld_ru/media/ \
                      processes=2 threads=4 maximum-requests=100 display-name=apache-dw-wsgi
    WSGIProcessGroup dw-site

    # Статические файлы django-админки
    Alias "/media_admin/" "/usr/lib/python2.5/site-packages/django/contrib/admin/media/"
    <Location "/media_admin/">
        SetHandler None
    </Location>

    # Статические файлы проекта
    Alias "/media/" "/home/django-projects/debianworld_ru/media/"
    <Location "/media/">
        SetHandler None
    </Location>
</VirtualHost>
В данном случае 10.1.0.4 - это IP-адрес машины, на которой работает Apache.

Настройка wsgi

Теперь, когда виртуальный хост создан, необходимо создать wsgi-обработчик. Для этого создается файл:
$ sudo -u dw vim /home/django-projects/debianworld_ru/deploy/django.wsgi
В файл добавляется следующий код:
#/usr/bin/python
# -*- coding: utf-8 -*-
import os, sys

# В python path добавляется директория проекта
dn = os.path.dirname
PROJECT_ROOT = os.path.abspath( dn(dn(__file__)) )
DJANGO_PROJECT_ROOT = os.path.join(PROJECT_ROOT, 'apps')
sys.path.append( DJANGO_PROJECT_ROOT )

# Установка файла настроек
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

# Запуск wsgi-обработчика
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Включение виртуального хоста Apache

На заключительном шаге необходимо дать знать о наличии нового виртуального хоста в Apache, включить его и перезагрузить сам Apache:
# Добавляет ссылку на виртуальный хост в список доступных хостов
$ sudo ln -s /home/django-projects/debianworld_ru/deploy/debianworld.ru \
             /etc/apache2/sites-available/debianworld.ru

# включаем виртуальный хост
$ sudo a2ensite debianworld.ru

# рестарт Apache
$ sudo /etc/init.d/apache2 restart

Проверка корректности установки

Чтобы проверить, что Django корректно работает через mod_wsgi необходимо попытаться открыть URL "http://wsgi.debianworld.ru/" в браузере.
Результатом должно быть приглашение:
It worked!
Congratulations on your first Django-powered page.

Of course, you haven't actually done any work yet. Here's what to do next:
  * If you plan to use a database, edit the DATABASE_* settings in settings/settings.py.
  * Start your first app by running python settings/manage.py startapp [appname].

Создание БД/пользователя в MySQL, настройка Django

После того, как есть уверенность, что Django установлен и работает, необходимо обеспечить возможность работы с БД. Для этого необходимо залогиниться в MySQL под root'ом:
$ mysql --user=root -p
И создать новую базу данных и нового пользователя:
mysql> CREATE DATABASE debianworld_db CHARACTER SET utf8;
Query OK, 1 row affected (0.01 sec)

mysql> CREATE USER debianworld_usr@localhost IDENTIFIED BY 'mega-secure-password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON debianworld_db.* TO debianworld_usr@localhost;
Query OK, 0 rows affected (0.00 sec)
После того, как новые БД и пользователь готовы, необходимо прописать их в конфиг Django. Для этого необходимо открыть файл настроек:
$ sudo -u dw vim /home/django-projects/debianworld_ru/apps/settings.py
И прописать следующие значения:
# ...
DATABASE_ENGINE = 'mysql'                   # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'debianworld_db'            # Or path to database file if using sqlite3.
DATABASE_USER = 'debianworld_usr'           # Not used with sqlite3.
DATABASE_PASSWORD = 'mega-secure-password'  # Not used with sqlite3.
DATABASE_HOST = ''                          # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ''                          # Set to empty string for default. Not used with sqlite3.
# ...
Кроме того, чтобы правильно "подхватились" статические файлы django-админки и основго проекта, необходимо так же прописать:
# ...
MEDIA_URL = '/media/
ADMIN_MEDIA_PREFIX = '/media_admin/'
# ...
И в заключении, необходимо дать команду Django создать в БД основные таблицы:
$ sudo -u dw /home/django-projects/debianworld_ru/apps/manage.py syncdb
Creating table auth_permission
Creating table auth_group
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (Leave blank to use 'dw'): admin
E-mail address: admin@wsgi.debianworld.ru
Password:
Password (again):
Superuser created successfully.
Installing index for auth.Permission model
Installing index for auth.Message model
Вот и все. Теперь Django настроено полностью. Далее можно создавать приложения слдеующей командой:
$ sudo -u dw /home/django-projects/debianworld_ru/apps/manage.py startapp firstapp
или непосредственно под тем пользователем, под которым работает весь код проекта:
$ sudo -u dw bash
$ cd /home/django-projects/debianworld_ru/apps/
$ ./manage.py startapp firstapp

вторник, 5 июня 2012 г.

Основы LVM

Запишу основные команды LVM

Активация lvm  (на случай загрузки с livecd)
vgchange -ay

Создание логического тома
lvcreate -L 1G -n lvm_vol1 vg1

Создание снимка
lvcreate -L592M -s -n vol1_backup /dev/test/lvm_vol1

Восстановление тома из снимка
lvconvert --merge /dev/test/vol1_backup


Удаление тома или снимка

lvremove /dev/test/vol1_backup

и еще много чего потом напишу :) ...





Java Applets аплеты в Ubuntu (Kubuntu)

Потребовались мне аплеты в Firefox а по умолчанию не работаю и вот (чтобы не забыть потом запишу для себя тут) самое простое решение этой проблемки.
Если у вас установлен OpenJDK тогда нужно установить 1 пакет
sudo apt-get install icedtea-7-plugin

Если же у вас стоит SunJDK как у меня тогда придется кинуть линк
mkdir ~/.mozilla/plugins
ln -s /opt/jdk1.7.0_02/jre/lib/amd64/libnpjp2.so ~/.mozilla/plugins
И после этого усе заработает 
 

пятница, 25 мая 2012 г.

Установка Ubuntu Desktop на LVM

По умолчанию установщик ubuntu desktop не видел lvm разделы так как не активирован lvm в live-dvd

Нужно это просто исправить
и так начнем

1. Грузимся с livedvd

2. Устанавливаем lvm

sudo apt-get install lvm2

3. Освобождаем место для LVM используя например GParted

4. Подключаем фозические диски или разделы для lmv

sudo pvcreate /dev/sda1

5. создаем группу томов

sudo vgcreate local /dev/sda1

6. И, наконец, создаем необходимые логические тома

sudo lvcreate -L 7G -n root local
sudo lvcreate -L 5G -n home local
sudo lvcreate -L 3G -n swap local
sudo lvcreate -L 10G -n data local

7. Теперь необходимо создать файловые системы на созданных логических томах

sudo mkfs.ext4 /dev/local/root
sudo mkfs.ext4 /dev/local/home
sudo mkswap -f /dev/local/swap
sudo mkfs.ext4 /dev/local/data

8. Ставим красивые метки

sudo tune2fs -L Data /dev/local/data

9. Теперь можно спокойно установиться на созданные разделы. Дождитесь завершения установки, но компьютер не перезагружайте!

10. Теперь нужно активировать lvm в установленной системе, так как она еще не знает что ей нудно при загрузке искать себя на lvm.

Для начала, смонтируйте логический том, который вы выделили под корень, в папку /mnt.

sudo mount /dev/local/root /mnt

11. Подключим важные системные ресурсы

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys  /mnt/sys

12. Переключимся на установленную систему

sudo chroot /mnt /bin/bash

13. И установим lvm

apt-get install lvm2

Ну теперь можно выходить из терминала и перегружаться в установленную ос которая будет работать на LVM :)

четверг, 24 мая 2012 г.

Превращаем обычную веб-камеру в камеру слежения, работающую в Ubuntu Linux

И как же можно заставить линукс следить за обстановкой через веб-камеру?
А оказывается достаточно просто:

1. установим motion

sudo apt-get install motion

2. Запускаем

sudo motion

По умолчанию изображения сохраняются в директории "/tmp/motion", 
Можете сконфигурировать и изменить настройки в "/etc/motion/motion.conf".
Если вы захотите изменить директорию, где хранятся полученные  изображения, просто найдите и измените строку "target_dir /tmp/motion".

3. Делаем автоматическу отправку изображений на свой ftp сервер

sudo apt-get install wput

редактируем “motion.conf”
в конце файла добавим следующую строку:
on_picture_save wput ftp://username:password@ftpserver %f

и вуаля все снимки отправляются )))

4. Можно открыть веб-интерфейс программы Motion, набрав для этого в веб-браузере сервера адрес localhost:8000.

Если вы хотите видеть видеопоток в реальном времени, то наберите в веб-браузере на сервере адрес localhost:8001