Установка Ubuntu 9.04 на SONY VAIO VGN-FW56SR

Установка Ubuntu 9.04 на SONY VAIO VGN-FW56SR прошла без задоренки, всё оборудование прекрасно распозналось. Ни каких специальных плясок с бубном не понадобилось.

Запустив компьютер, сразу после установки, я первым делом полез [ Система →  Администрирование →  Драйверы устройств ], где активировал проприетарный драйвер для видеокарты ATI Mobility Radeon HD 4650. Может быть и открытый драйвер, установленый по умолчанию, мог бы нормально работать с картой, но мне не удалось устоять перед соблазном использовать полную мощь дров от производителя. Дальше пошел долгий и мучительный процесс настройки софта, подгоняя его под себя.

1)Мне кажется очень удобным, когда в командной строке присутствует возможность ввода ранее введённых команд не только в строго хронологическом порядке вперёд-назад, но также хочется, в полной мере, использовать функционал автодополнения по первым набраным символам. Чтобы реализовать этот функционал, достаточно вставить в файл ‘/etc/inputrc‘ , который управляет readline ( подробнее читайте в хелпе ‘readline –help’ ) строки:

“\e[A": history-search-backward
"\e[B": history-search-forward

А поставил их перед всеми инструкциями обработки ввода, примерно таким образом:

...
$if mode=emacs

# добавлено мной: замена "Ctrl+R", поиск в истории команд по набранным символам
"\e[A": history-search-backward
"\e[B": history-search-forward
#####################################

# allow the use of the Home/End keys

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

2)  Настройка загрузчика grub2, свелась к тому, что я удалил из меню пункт загрузки диска востановления ОС Windows. Потому как, если как-нибудь случайно его запустить, то наш любимый Ubuntu окажется убитым «дружелюбной» системой от Microsoft, расположенной по соседству на жестком диске. По идее, можно было бы вообще, снести этот раздел ещё на стадии разбивки диска, когда я устанавливал Linux. Но следуя закону жанра безобидной установки, этот диск я оставил не тронутым. Итак, в grub2, все конфигурации загрузки хранятся в файле - '/boot/grub/grub.cfg', там многое похоже на старый добрый menu.lst из первого grub. Однако, в отличии от menu.lst, в  grub.cfg внесённые изменения будут перезаписаны при очередном обновлении ядра, grub или других опций затрагивающих загрузку системы. В новом варианте загрузчика, настройки разнесены по разным файлам-скриптам. Так, например, для отключения в меню загрузчика, пункта загрузки скрытого раздела востановления Windows, пришлось подправить файл /etc/grub.d/30_os-prober.

Схема правки простая, после фрагмента скрипта, где перебираются сторонние системы, а конкретно, нижеследующего:

for OS in ${OSPROBED} ; do
DEVICE="`echo ${OS} | cut -d ':' -f 1`"
LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
BOOT="`echo ${OS} | cut -d ':' -f 4`"

if [ -z "${LONGNAME}" ] ; then
LONGNAME=”${LABEL}”
fi

Добавляем свою врезку:

# Врезка удаляет из меню скрытый раздел Windows Recovery (помечен как Windows Vista (loader))
if [ "$LONGNAME" = "Windows Vista (loader)" ] && [ "${DEVICE}" = "/dev/sda1" ] ; then
continue
fi
# Конец врезки

Тем самым, мы исключили из меню пункт, который помечен как Windows Vista (loader). Теперь для того, чтобы изменения вступили в силу (читать — для того чтобы     был сконфигурирован  новый ‘/boot/grub/grub.cfg‘), необходимо запустить команду     ‘sudo update-grub‘. Но перед этим, командой ls, посмотрите чтобы в директории не     было ни каких временных файлов (имеющих в конце имени, знак тильда -    ‘~‘, которые система может создавать автоматически после правки оригинального файла),  иначе grub2 попытается их обработать. Так, если, после запуска ‘sudo update-grub‘,     вы обнаружите, что вместо того, чтобы, ненужные пункты исчезли, они наоборот     продублировались, то это может означать, что в системе, имеется временный файл     ‘/etc/grub.d/30_os-prober~‘, удалите его и вновь запустите ‘sudo update-grub‘. Вывод     команды покажет текущее состояние меню загрузчика.

3)Настройка почтовой программы

4)Настройка Pidgin – перенос профиля и настройка .purple, как было ранее описано в статье.

5)Настройка Filezilla — просто экспорт в xml, а на другом компьютере импорт.

6)Настройка области уведомлений путём манипуляций с файлами в ‘/usr/share/indicators/messages/applications‘. Необходимо было заменить Evolution на Thunderbird и Empathy на Pidgin. Pidgin появился в области сам, сразу после установки пакета и запуска программы, так, что добавлять его не пришлось. Удаление же   Empathy и  Evolution сводится к простому удалению одноименных файлов из директории ‘/usr/share/indicators/messages/applications‘. Чтобы добавить в область уведомлений Thunderbird, оказалось достаточно создать пустой файл с названием thunderbird:

$ sudo touch /usr/share/indicators/messages/applications/thunderbird

и добавить туда строку -  “/usr/share/applications/thunderbird.desktop” На этом настройка области завершена, все нужные приложения добавлены, а не нужные удалены.

sudo cp -a /home/barbar/Загрузки/thunderbird /usr/lib/thunderbird-3
sudo ln -s /usr/lib/thunderbird-3/thunderbird /usr/bin/thunderbird-3
thunderbird-3 -ProfileManager


Как сравнить и найти отличия всех файлов в одинаковых каталогах?

Довольно тривиальная задача по сравнению всех или некоторых файлов из разных каталогов, встречается весьма часто. Но вот уже в который раз я сталкиваюсь с тем, что для некоторых людей она становится настоящим камнем преткновения. Иной раз можно услышать и весьма оригинальные идеи, например идею сравнивать даты файлов, размер и даже хэш суммы. Не спорю, в некоторых случаях эти методы могут оказать неоцениму помощь. Но случается так, что нужно сравнить несколько версий файлов, созданных в одно время, в этом случае, самый доступный (потому-что доступен через графический интерфейс) метод -  сравнения дат, не сработает. Если же случалась замена одного и того же количества символов в сравниваемых файлах то и метод определения разницы размера файлов так же не сработает. Что же, остаётся весьма надёжный метод сравнения хэш сумм, но представьте, что сравниваемые файлы имеют длинну в несколько тысяч строк, а искомое различие составляет лишь несколько символов.  Факт знания чтого что файлы различны, даст нам направления поиска, но отыскать сами различия будет также просто, как отыскать иголку в стоге сена. А ведь между тем, ничего придумывать и не надо! Всё давным давно изобретено, знакомьтесь - команда diff !

Вот несколько очень типичных примеров её использования:

Пример 1:

Простое построчное сравнение двух файлов, узнаём чем они отличаются:

$ diff file1 file2

Пример 2:

Нужно сравнить все файлы каталога, работающего сайта с одноименными файлами тестового каталога (надеюсь вы не имеете привычки вносить какие-либо изминения, непосредственно, сразу, в ваш рабочий web-проект?).

Решение очень простое:

$ diff -r var/www/site/somesite.ru /var/www/testsite/somesite.ru

Здесь мы использовали дополнительный ключ “-r“, который задаёт рекурсивность для папок, т.е. находя папку, команда diff перходит в неё и просматривает содержащиеся там файлы. Находя файлы с одинаковыми именами и относительными путями в обеих папках, diff сравнивает содержимое файлов.

Пример 3:

Необходимо сравнить все файлы в одинаковых каталогах (как в примере 2), но в этот раз мы хотим избежать того, чтобы diff сравнивала наши гигансткие, многомегабайтные логи webstat, так-как сравнение логов может сильно загромоздить вывод, ненужным массивом данных.

Вот решение:

$ diff -r -x webstat var/www/site/somesite.ru /var/www/testsite/somesite.ru

Используя ключ “-x” мы исключаем из поиска файлы (папки) совпадающие с указанным нами именем - webstat. Найдя такой файл или папку, diff игнорирует их, а мы получаем удобочитаемые вывод команды, незагромажденный лишними данными. Не стоит забывать и о том, что вывод diff, обычно, удобнее направлять в файл, где с данными будет работать намного удобнее:

$ diff -r -x webstat var/www/site/somesite.ru /var/www/testsite/somesite.ru > my_result_file.txt

Ну и напоследок! Не забывайте читать хелпы и маны:

$ diff –help
$ man diff