Ubuntu tips'n'tricks
[SIZE=2][COLOR=red]Большая просьба не постить сюда всякие вопросы, ответы на них или спасибы - вы только засрете топик, а я буду просить модераторов убивать говнопосты. Если же есть свои трюки и хаки, то другой разговор - постите.[/COLOR][/SIZE]
Итак погнали.
[SIZE=3]Пособие для развертывания локального репозитория:[/SIZE]
Представим, что на работе негодяи начальники не дают много интернета. Дома с интернетом проблем нет. Решается переносом пакетов с дома на работу и развертыванием локального репозитория на работе. Пособие для версии 9.10, но работать будет для других версий, достаточно karmic заменить на кодовое название другой версии.
Дома:
1. Администрирование -> Менеджер пакетов Synaptic. Настройки -> Параметры -> Файлы -> Ставим галку "Хранить все загруженные пакеты в кэше".
2. Все скачанные дома пакеты лежат в /var/cache/apt/archives. Те, что нужно копируешь на флешку и несешь на работу.
На работе:
1. Надо развернуть локальный репозиторий. Создай в любом месте папку rep. В ней создай две папки: dists & pool. Затем создай такие папки rep/dists/karmic/main/binary-i386/. По этому пути должен находиться индексный файл Packages. О его создании чуть позже. После этого создай папки rep/pool/main/. Туда копируй все нужные тебе пакеты.
2. Затем создаешь индексный файл:
sudo -s
# Переходишь в папку с репозиторием, например /home/Vasja/rep/
cd /home/Vasja/rep/
# Сканирование репозитория
dpkg-scanpackages ./pool/main/ ./dists/karmic/main/binary-i386/Packages > ./dists/karmic/main/binary-i386/Packages
Эти команды необходимо выполнять при каждом изменении локального репозитория ибо в результате их выполнения создается индексный файл, содержащий информацию о всех пакетах в нем, зависимостях и т.д.
3. Администрирование -> Источники приложений -> ПО сторонних производителей -> Добавить. Вводишь строку
Жмешь Ок.
4. Обновить список пакетов.
И те пакеты, что есть в локальном репозитории будут без проблем устанавливаться.
Большинство коммерческих DVD дисков зашифрованы с помощью CSS (the Content Scrambling System). Так вот если возникают проблемы с воспроизведением таких дисков необходимо выполнить следующее:
1. Установить пакет libdvdread4
2. Установить пакет libdvdcss4. В стандартных репозиториях его нет, поэтому в терминале выполнить следующее:
Это работает для 9.04 и 9.10. Если версия другая, то я информацию брал отсюда:
https://help.ubuntu.com/community/RestrictedFormats/PlayingDVDs
Там есть для других версий.
Ситуация: имеется GSM соединение через интерфейс ppp0. Нужно направить интернет в локальную сеть через eth0.
Насколько мне известно - можно сделать через прозрачный прокси-сервер (squid например), а можно через NAT. Я выбрал второй вариант.
1. Удаление всех имеющихся правил:
iptables -t nat -F
iptables -t mangle -F
iptables -X
2. Правила для iptables:
iptables -A INPUT -i lo -j ACCEPT
# Allow established connections, and those not coming from the outside
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state NEW ! -o ppp0 -j ACCEPT
# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# Don't forward from the outside to the inside.
iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT
iptables -A FORWARD -i eth1 -o ppp0 -j REJECT
3. Включить форвардинг.
Чтобы он автоматически включался при запуске системы, в файле /etc/sysctl.conf нужно найти строку
4. Сохранить настройки iptables.
Затем в файл /etc/network/interfaces добавить в конец строку:
Взято (с изменениями) отсюда:
http://kubuntu.ru/nat-iptables
Ситуация: есть локальная сеть из машин с убунту. Пакеты по пять раз качать неохота. Смысла в локальном репозитории в общем то нет, он нужен, если нужно переносить пакеты между машинами, не связанным между собой сетью. В данной ситуации куда удобнее использовать apt-cacher.
1. Установка проста - найти в синаптике и установить пакет apt-cacher. Только не apt-cacher-ng - это другой кэшер, я с ним не работал, здесь все касаемо настройки именно apt-cacher. Из терминала:
2. Настройка кэшера осуществляется правкой файла /etc/apt-cacher/apt-cacher.conf. Не забываем делать бэкапы конифигов перед правкой. Настроек там много - из тех, что менял я эти:
clean_cache=0
Комментариев в конфиге много, разобраться немудрено.
3. Открыть файл /etc/default/apt-cacher и изменить параметр AUTOSTART на единицу.
4. Запустить apt-cacher.
Если все было верно, то набрав в браузере http://localhost:3142/, увидите отчет кэшера.
5. Теперь необходимо изменить /etc/apt/sources.list на клиентских машинах.
Во всех адресах после http:// надо поставить IP адрес сервера (с портом, на котором висит кэшер - по дефолту 3142), на котором запущен кэшер. Пример:
deb http://192.168.0.1:3142/security.ubuntu.com/ubuntu/ karmic-security universe main multiverse restricted
Теперь кэшер запущен. При попытке скачать пакет на клиентской машине, он сначала "ищется" в кэше, если его там нет, то запрос перенаправляется в репозиторий в интернете. Но есть несколько нюансов. Хочу описать их.
1. Кэшер хранит пакеты в своем нестандартном "виде". Поэтому если хочется добавить пакеты в кэш, это делается с помощью спец. скрипта. Например в /var/local/cache/archives/ уже есть скачанные пакеты. Тогда импорт в кэш делается так:
2. Когда пакеты скачиваются непосредственно на сервере - по умолчанию они идут не через apt-cacher, и, следовательно, не кэшируются. Чтобы решить этот вопрос, нужно изменить файл /etc/apt/apt.conf (если нету такого, то создать), добавив строку:
Теперь пакеты на сервере тоже будут качаться через прокси и попадать в кэш.
Взято (с изменениями) из журнала FCM.
Opera:
# Ключ:
wget -O - http://deb.opera.com/archive.key | sudo apt-key add -
Взято с http://deb.opera.com
Skype:
VirtualBox:
# Ключ:
wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
Взято с http://www.virtualbox.org/wiki/Linux_Downloads
Ну и для тех, кому мало:
https://help.ubuntu.com/community/Medibuntu - репозиторий, содержащий те пакеты, которые не могут быть включены в официальный по причинам лицензий
http://linuxoid.hostopia.com/Полезные_репозитории_для_Debian - некоторые и для убунту сгодятся.
deb http://ppa.launchpad.net/exaile-devel/ubuntu karmic main
#ключ
gpg --no-default-keyring --keyring /tmp/.exaile.keyring --keyserver keyserver.ubuntu.com --recv B79BBC58DE219687E584187AC174A7B143CBFCC0
gpg --no-default-keyring --keyring /tmp/.exaile.keyring --export --armor B79BBC58DE219687E584187AC174A7B143CBFCC0 | sudo apt-key add -
rm /tmp/.exaile.keyring
http://www.exaile.org/downloads
Pidgin - в репах убунты он очень редко и долго обновляется ,в случае выхода новой версии. Так что лучше брать с оффициалоьного репозитоия
sudo tee /etc/apt/sources.list.d/pidgin-ppa.list
#ключ
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com \ 67265eb522bdd6b1c69e66ed7fb8bee0a1f196a8
Значит установка:
Если все установлено верно, то можно кинуть пробный файл index.html в директорию /var/www/, набрать в браузере http://localhost/ и увидеть, что все работает.
Далее нужно добавить виртуальный хост. Это конечно, не обязательно, но для удобства разработки нескольких сайтов - пригодится.
Я храню свои сайты в папке /home/george/www/. Учтите, что george надо заменить на ваш UserName.
1. Создаем папку для сайта:
2. Добавление виртуал хоста:
И вписать в этот файл строки:
ServerName www.example.com.dev
ServerAlias example.com.dev
ServerAdmin webmaster@example.com
DocumentRoot /home/george/www/example.com.dev
<Directory home/george/www/example.com.dev>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
ServerSignature On
</VirtualHost>
3. Далее нужно "активировать" новый сайт:
Насколько я понял, эта команда создает файл-ссылку в папке /etc/apache2/sites-enabled/ на соотв. файл (см. выше) в папке /etc/apache2/sites-available/. Хотя может она и еще что-то делает, особо я не разбирался.
4. И подредактировать файлик /etc/hosts, чтобы при попытке доступа к example.com.dev браузер не ломился в интернет, а знал, что этот адрес расположен локально:
Там добавить строку:
5. И, наконец, перезапустить апач:
Вуаля. Виртуальный хост example.com.dev добавлен, можно приступать к разработке.
Взято с миру по нитке, в основном отсюда: http://rotuka.com/lamp-ubuntu-apache-mysql-php/
Ну и мелочишка. Кому нужен PHPMyAdmin, то все, что надо, это:
После этого, для его использования в браузере надо набрать http://localhost/phpmyadmin
Удачной разработки :)
В основном все можно найти здесь:
http://aidanjm.wordpress.com
Но я столкнулся с одной особенностью, о которой хочу упомянуть, дабы не рыться. В общем то все стянуто с этого сайта.
В общем встала задача разрезать .ape файлы. До этого только .flac резал. При выполнении shntool возникла ругань. Дело в том, что нужен специальный кодек Monkey Audio Codec. Обычно это пакет mac, но в официальных репозиториях его почему то нет. Скачать его можно по ссылке:
http://members.iinet.net.au/~aidanjm/mac-3.99-u4_b3-1_i386.deb
Ну а дальше все просто, установить этот пакет. И разрезать файл обычными командами. Если кто найдет репозиторий, откуда можно этот пакет обновлять - будет круто.
У меня помимо убунты на машине и винда стоит. И имеются два NTFS-раздела. В принципе в убунте при обращении к такому разделу - он автоматически монтируется. Но чтобы получить к нему доступ, приходится обащаться еще раз - что в общем то не доставляет. Для автоматического монтирования разделов при старте надо:
1. Примонтировать разделы вручную.
2. Система -> Администрирование -> Дисковая утилита. Там нужно узнать название устройства, соотв. разделу, например /dev/sda1
3.
В конце добавить строку:
Первый параметр - см. п.2, второй параметр - то, куда примонтируется сей раздел.
uid и gid это ID юзера и группы которым будут присвоены права на файлы на монитруемом разделе(всмысле они станут владельцами), если вы единственный пользвоатель компа то это можно прописать, 1000 - обычно дефолтные ID для юзера созданого при установке, если у вас другой ставите его.
umask=002 - маска прав на файлы. 002 установит маску -rwxrwxr-x, чего обычно вполне достаточно для нормальной работы, опять же учитывая что Вы единствееный пользователь
utf8 - кодировка в которой будут отображатся имена файлов, если у вас локаль настроина по другому - указываете нужную кодировку.
1. Запустить в терминале pppoeconf.
2. Сказать ему все, что он просит.
Для соединения:
Статус самого интерфейса:
Для чтобы оно автоматом подключалось при старте системы (вообще должно, но у меня не работало), надо зайти в Network Manager, там на вкладке DSL выбрать подключение (оно там появится после вышеописанных действий), и в его свойствах поставить галку "Подключать автоматически".
Взято где-то на бескрайних просторах гугла.
Действия наши следуйщие:
Открываем терминал
выполняем sudo update-java-alternatives -l что бы увидеть, какие java-ы у нас стоят
#
Далее выполняем sudo update-java-alternatives -s XXXX где ХХХХ версия Жавы, что мы хотим быть поумолчанию. для sun-овской нужно выполнить это sudo update-java-alternatives -s java-6-sun
#
Смотрим java -version чтобы убедится, что все впорядке
взято отсюда https://help.ubuntu.com/community/Java
deb-src http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu karmic main
ключ
При попытке build & run дефолтового GTK+ приложения под CodeBlocks возникают ошибки компилятора типа
ERROR: gtk/gtk.h: No such file or directory
...
и т.д.
Естественно libgtk2.0-dev установлен, файлы под /usr/include/gtk-2.0 в порядке и на месте, более того - из терминала проект прекрасно собирается.
Причем в глобальных настройках проекта (те что над debug и release) для компилятора верно прописано `pkg-config gtk+-2.0 --cflags` а для линкера, соответственно `pkg-config gtk+-2.0 --libs`.
Проблема решилась довольно забавным способом - добавлением в конкретную конфигурацию (debug) указанных опций для компилятора и линкера. Причем после этого стала работать как конфигурация release (где ничего дополнительно не настраивалось), так и все новые проекты в обеих конфигурациях по дефолту (без прописывания чего-либо). Так как суть исчезновения бага искать лень, пишу как есть - может кому поможет.
ПыСы. При гуглении по форумам обнаруживается распространенный совет - прописывать в пути поиска /usr/include/gtk-2.0. Имхо бред, т.к. а) этого недостаточно б) pkg-config это и делает в) pkg-config добавляет помимо кучи путей еще и флаги г) pkg-config для того и создана
http://habrahabr.ru/blogs/gtd/89835/
Пока сегодня первый день пробую, есть неудобства, чуть позже хочу описать их поподробнее.
add-apt-repository ppa:michael-astrapi/ppa
apt-get update
apt-get install indicator-virtualbox