VirtualBox: использование общих папок

Задача

Настроить доступ к папке в Windows хост ОС из директории в Ubuntu гостевой ОС.

Решение

  1. Установить дополнения гостевой ОС в Ubuntu.
  2. Настроить общую папку в менеджере VirtualBox: Настройки машины — Общие папки — Добавить. Выбрать путь к папке, задать наименование, выставить опции по вкусу.
  3. Убедиться, что дополнения гостевой ОС установлены корректно.
    moodprobe vboxsf
  4. Создать директорию, куда будет монтироваться общая папка. Рекомендуется использовать под-директории как на гостевой ОС, так и на хост-ОС. Так как прямое связывание системных директорий или директорий пользователя может помешать корректной работе ОС.
  5. Проверить возможность монтирования устройства общей папки в гостевой ОС.
    sudo mount -t vboxsf folder_name /path/to/folder
    Где folder_name — имя папки, заданное в менеджере VirtualBox, а /path/to/folder — путь к ранее созданной директории, куда будет смонтировано устройство.
  6. Добавить команду монтирования в /etc/rc.local для автоматического выполнения от имени root при загрузке. Добавлять соответствующую запись в /etc/fstab не рекомендуется, так как в момент подключения файловых систем дополнения гостевой ОС могут быть еще не инициализированы и подключение будет проходить нестабильно раз через раз.
    Более полно команда монтирования может выглядеть как
    mount -t vboxsf -o rw,uid=1000,gid=1000,dmode=775,fmode=775 folder_name /path/to/mount/point
  7. Перезагрузить гостевую ОС и убедиться, что все пучком. В противном случае засучить рукава и гуглить.

VirtualBox: установка дополнений гостевой ОС на Ubuntu 14.04

Задача

Установить дополнения гостевой ОС VirtualBox, если в качестве таковой ОС выступает Ubuntu 14.04. Это необходимо, например, для работы общих папок.

Решение

Хост ОС

Установить плагин расширений VirtualBox: Файл — Настройки — Плагины. Плагин должен быть той же версии, что и основной дистрибутив VirtualBox.

Гостевая ОС

  1. Установить необходимые пакеты.
    sudo apt-get install dkms build-essential linux-headers-generic
  2. Подключить образ диска в дисковод гостевой ОС: Устройства — Подключить образ диска дополнений гостевой ОС. Этот образ входит в поставку основного дистрибутива — скачивать дополнительно его не нужно.
  3. Смонтировать устройство в файловую систему, если это не произошло автоматически.
    sudo mount /dev/sr0 /media/cdrom
  4. Запустить скрипт-установщик.
    cd /media/cdrom
    sudo sh ./VBoxLinuxAdditions.run

Блокировка ввода с клавиатуры в продуктах JetBrains под Ubuntu 14.04

Проблема

При интенсивной печати блокируется ввод с клавиатуры во всех средах разработки JetBrains. Бесит! Бесит! Бесит!

Причина

Что-то нехорошее происходит с демоном с названием ibus. Понятия не имею что это, но что-то связанное с клавиатурным вводом. Изменения в его работу внесены начиная с Ubuntu 13.10. Проблемы с горячими клавишами в нелатинской раскладке в некоторых программах имеют те же корни.

Устранение

Перезагрузить среду разработки — есть соответствующий пункт в меню.
Или перезагрузить демона ibus из консоли: ibus-daemon -rd

Соответствующий тикет в ё-треке.

Заводской брак в Ubuntu

Fix Ubuntu — проект одного sh скрипта, устраняющего потенциальные угрозы безопасности личных данных от (никому к тому же не нужного) поиска по всякой фигне в юнити даше.

Установка Vim плагина YouCompleteMe в Ubuntu 14.04

  1. Установить YouCompleteMe с помощью Vundle.

  2. Установить зависимости sudo apt-get install vim-youcompleteme cmake

  3. Скомпилировать YouCompleteMe cd ~/.vim/bundle/YouCompleteMe
    ./install.sh
    Или ./install.sh —clang-completer, если нужна поддержка C-семейства ЯП.

Кстати, вот тут можно посмотреть мой .vimrc и кое-что еще.

Django под Windows — рецепт солянки

Настройка Linux среды Python/Django разработки под Windows с помощью VirtualBox и PyCharm на примере Debian

Ингридиенты

  1. Ноутбук с предустановленной Windows 8.1: 1,5 кг
  2. VirtualBox: 1 литр
  3. Debian: 0.5 тушки (можно заменить на целую тушку Ubuntu или другой Linux, который есть в вашем магазине, но с Debian наваристее)
  4. VirtualBox Guest Addition: 1 горсть
  5. PyCharm: 1 луковица
  6. deb-пакеты: 5-10 пакетов
  7. Python модули: все, что у вас есть в холодильнике
  8. Эстетическое неприятие дуалбут и необходимость работы с Photoshop: по вкусу

Время приготовления: 2 суток.

Установить VirtualBox

  1. Скачать и установить основной дистрибутив VirtualBox.
  2. Скачать и установить пакет дополнений гостевой ОС (см. вставку в соответствующем пункте).

Установить Debian 7

Проще всего использовать netinst образ соответствующий архитектуре вашей системы. Варить около получаса. Не пересаливать предустановленными пакетами.

Установить гостевые дополнения в VirtualBox

Внимание! При использовании версии дополнений 4.3.10 возникает ошибка во время монтирования общих папок! https://www.virtualbox.org/ticket/12879 Скачать образ дополнений 4.3.11 https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_4.3.11-93070.iso

  1. Подключить скачанный образ. Устройства — Приводы оптических дисков — Выбрать образ оптического диска.
  2. Смонтировать cdrom

    # mount /dev/sr0 /media/cdrom
    
  3. Установить make, gcc, bzip2

    # apt-get install make gcc bzip2
    
  4. Запустить run скрипт с диска

    # cd /media/cdrom
    # ./VBoxLinuxAdditions.run
    

Настроить общие папки

Общие папки очень удобны для разработки, позволяя избежать загрузки файлов по FTP в гостевую ОС и исполнять код прямо из папки проекта хостящей ОС.

  1. Добавить новую общую папку. НастройкиОбщие папкиДобавить. Указать путь (например E:\Dev\django) к папке и ее имя (например, django). Поставить галку возле Создать постоянную папку.
  2. Примонтировать устройство в гостевой ОС

    # mount -t vboxsf django /home/myuser/django -o rw,dmode=775,uid=1000,gid=1000
    
  3. Если папка появилась в нужной точке в необходимом виде, то можно добавить правило в /etc/fstab для автоматического монтирования при старте системы.

    django /home/myuser/django vboxsf rw,dmode=775,uid=1000,gid=1000 0 0
    

    ВНИМАНИЕ! Не допускай опечатку в слове vboxsf!

Установить все необходимые для разработки пакеты

  1. Python

    # apt-get install python-dev
    
  2. MySQL

    # apt-get install mysql-server mysql-client python-mysqldb libmysqlclient-dev
    
  3. PIL

    # apt-get install python-imaging
    
  4. Модули Python

    # apt-get install python-pip
    # pip install -U pip
    # pip install virtualenv
    

Настроить SSH доступ к гостевой ОС

  1. Установить OpenSSH сервер.

    # apt-get install openssh-server
    
  2. Пробросить произвольный порт хостящей ОС на 22 порт гостевой ОС. УстройстваСетьНастроить сеть. По умолчанию тут уже настроен тип подключения NAT. Зайти в раздел Проброс портов и настроить запись вида: имя — ssh, порт хоста — например, 3022, порт гостя — 22. Настроить подключение в Putty к 127.0.0.1:3022.

Установить и настроить MySQL Workbench

  1. Скачать
  2. Настроить соединение по SSH через проброшенный порт и гостевого пользователя
  3. Использовать по назначению

Настроить проект в PyCharm

  1. Настроить удаленный интерпретатор
  2. Установить python-зависимости
  3. Добавить необходимую запись в C:\Windows\System32\drivers\etc\hosts хоста
  4. Добавить необходимую запись в /etc/hosts гостевой ОС
  5. Пробросить порт с хоста (например, 8800) на 8000 порт гостевой ОС
  6. Настроить конфигурацию запуска dev-сервера в PyCharm. Задать отображение (меппинг) локальной рабочей директории на удаленную, чтобы удаленный интерпретатор обнаружил manage.py скрипт. В качестве хоста указать 0.0.0.0 для того, чтобы dev-сервер отвечал на любом сетевом интерфейсе. Порт оставить 8000.

Установить дополнительно

  1. 4t Tray Minimizer — позволяет сворачивать произвольную программу в системный трей, чтобы убрать раздражающее «залипание» на VirtualBox при Alt+Tab переключении.
  2. Установить PostgreSQL и инструменты для работы с ней аналогично MySQL.

Побочные эффекты

  1. В данный момент в PyCharm (2.7) недоступны пункты меню Run Django conaole и Run manage.py task при использовании удаленного интерпретатора — тикет в трекере.

403 Forbidden Error

Который раз уже теряю время на этом моменте во время настройки Apache+PHP окружения разработки на Ubuntu машине.

Я не люблю плодить лишних сущностей и держу папки с проектами, которые разрабатываю, в домашней директории. Чтобы дать возможность Apache исполнять PHP-скрипты из домашней директории нужно сделать следующее.

Включить себя в группу www-data.

sudo usermod -a -G www-data myusername

Проверить, что предыдущая команда возымела действие.

sudo groups myusername

Назначить для директории проекта группу-владельца www-data.

sudo chown myusername:www-data -R /path/to/project/dir

Назначить права на доступ к директории проекта себе и группе.

sudo chmod 755 -R /path/to/project/dir

И вот теперь самая мякотка — назначить права исполнения (1, x) для всех пользователей (третья группа прав) всем директориям выше директории проекта. Право исполнения для директории означает доступ к содержимому по указанию прямого пути при наличии соответствующих прав на это содержимое даже при отсутствии права на листинг (r) директории. Иначе Апач (www-data:www-data) просто не видит ваш проект в недрах директорий, к которым у него нет доступа.

LibGL.so ошибка при загрузке виртуального устройства в эмуляторе Android

После свежей установки Android SDK и старте AVD в лог кидало ошибку:
Failed to load libGL.soerror libGL.so: cannot open shared object file: No such file or directory
Ошибка не давала стартовать устройство с поддержкой GPU хост-машины.

Ответ почерпнул на стеке нашем оверфлоу. Необходимо было доустановить реализацию OpenGL API для разработчиков.


sudo apt-get install libgl1-mesa-dev

Актуально для Ubuntu 13.04 и Android SDK 22.3