Архив рубрики «linux»

установка adobe flash player 10 на ubuntu

28.11.2008

Если установлена предыдущая версия Flash Player из комплекта Ubuntu, сносим её:

$ sudo apt-get remove flashplugin-nonfree

Со страницы http://get.adobe.com/flashplayer/ скачиваем пакет со свежим плеером в формате .deb для ubuntu.

И, собственно, ставим:

$ sudo apt-get install install_flash_player_10_linux.deb

Ubuntu: x-term в UTF-8, соединение с удаленным хостом в KOI8-R

27.11.2008

Дано: X-терминал в Ubuntu настроен на работу в локали ru_RU.UTF-8. Удаленный сервер может адекватно работать только с кодировкой ru_RU.KOI8-R. Что делать?

Решение: перекодировать на лету
Для этого удобно использовать утилиту luit, входящую в дистрибутив и устанавливаемую по умолчанию в составе пакета x11-utils.

$ LANG=ru_RU.KOI8-R luit
$ ssh user@koi8.host.tld

Если случилось так, что у вас нет локали KOI8-R, то придется ее создать:

$ sudo locale-gen ru_RU.KOI8-R

цветное приглашение bash prompt

15.10.2008

В unix-консоли, а в частности в приглашении bash можно использовать ANSI-последовательности для задания цветового вывода:

 
PS1='[\\e[01;32m]\\u@\\h[\e[00m]:[\\e[01;34m]\\w[\\e[00m]$ '; export PS1

Цвет задается последовательностью вида \e[ATTR;FG;BGm, где ATTR - необязательный аттрибут, FG - цвет переднего плана, BG - цвет фона.

Сброс цвета к значению по умолчанию - \e[0m

Краткую таблицу соответствия кодов конкретным цветам опубликовал в статье "Prompt Magic" Дэниел Роббинс:

colortable.gif

С помощью ATTR можно делать текст полужирным, подчеркнутым, мигающим, и т.п.:

0 по-умолчанию
1 жирный
22 не жирный
4 подчеркнутый
24 не подчеркнутый
5 мигающий
25 не мигающий
7 инвертированный
27 не инвертированный

В качестве примера полезно посмотреть небольшой скрипт, выводящий на консоль таблицу возможных цветовых комбинаций:

#!/bin/sh
############################################################
# Nico Golde <nico(at)ngolde.de> Homepage: http://www.ngolde.de
# Last change: Mon Feb 16 16:24:41 CET 2004
############################################################
 
for attr in 0 1 4 5 7 ; do
    echo "----------------------------------------------------------------"
    printf "ESC[%s;Foreground;Background - \\n" $attr
    for fore in 30 31 32 33 34 35 36 37; do
        for back in 40 41 42 43 44 45 46 47; do
            printf '\\033[%s;%s;%sm %02s;%02s  ' $attr $fore $back $fore $back
        done
    printf '\\n'
    done
    printf '\\033[0m'
done
 

Ссылки по теме:

Макросы RCS

13.10.2008

Ниже приведен список макросов RCS, которые можно использовать внутри любых текстовых файлов. При checkout'е макрос будет развернут в значение.

Макросы RCS (RCS Keywords)

© http://babbage.cs.qc.edu/courses/cs701/Handouts/rcs_keywords.html

© Перевод Алексей Шатловский, 2008, http://shatlovsky.ru/blog/2008/10/13/makrosy-rcs/

$Author$
Имя учетной записи юзера, который внес зарегистрировал (check-in) последнию ревизию

$Date$
Дата и время (UTC) последнего check-in.

$Header$
Стандартный заголовок, содержащий полное имя RCS-файла, номер ревизии, дату (UTC), автора, состояние и имя учетной записи юзера, заблокировавшего ревизию (если заблокировано).

$Id$
То же, что и $Header$, но имя файла без полного пути.

$Locker$
Имя учетной записи юзера, заблокировавшего ревизию (пусто, если не заблокировано).

$Log$
Лог-сообщение, введенное во время checkin, предваренное заголовком, содержащим имя RCS-файла, номер ревизии, автора и дату. Существующие логи замещаются. Вместо этого, новые логи вставляются после $Log:...$. Это полезно для сохранения полной истории изменений исходного файла.

$RCSfile$
Имя RCS-файла без пути.

$Revision$
Номер ревизии.

$Source$
Имя и полный путь к RCS-файлу.

$State$
Состояние, назначенное ревизии опцией -s команд rcs(1) или ci(1).

Firefox + linux: идеальные шрифты

21.09.2008

Идеальные шрифты для Firefox под *nix на данный момент это семейство Bitstream Vera *:
- Bitstream Vera Sans (без засечек, типа Arial/Verdana)
- Bitstream Vera Serif (с засечками, типа Times)
- Bitstream Vera Sans Mono (моноширинный)

В Firefox это живет в меню Правка -> Настройки -> Содержимое -> Шрифты и цвета:
лучшие шрифты для firefox под linux

Некоторые сайты, однако, жестко предписывают отображение текстов шрифтом Times:

BODY{font-family: Times, serif;}

Результат может выглядеть примерно так:

firefox strange fonts

Это произошло из-за того, что настройки fontconfig по-умолчанию заменяют кривой системный Times на некий более удобный для восприятия шрифт.

Используя утилиту fc-match из набора fontconfig убеждаемся, что Times у нас в системе заменяется на "Nimbus Roman No9 L":

~$ fc-match times
n021003l.pfb: "Nimbus Roman No9 L" "Regular"

Выкорчевываем корень зла:

~$ sudo rm /etc/fonts/conf.d/30-urw-aliases.conf
~$ sudo rm /etc/fonts/conf.d/30-metric-aliases.conf

(Если захочется восстановить статус кво, можно взять 30-urw-aliases.conf и 30-metric-aliases.conf из /etc/fonts/conf.avail)

Теперь настроим fontconfig так, чтобы при попытке отобразить шрифт Times автоматически выбирался Times New Roman (очевидно, именно он имелся в виду создателями). Для в своей домашней директории создаем файл ~/.fonts.conf с примерно таким содержимым:

<fontconfig>
	<match target="pattern">
		<test qual="any" name="family">
			<string>Times</string>
		</test>
		<edit name="family" mode="assign">
			<string>Times New Roman</string>
		</edit>
	</match>
</fontconfig>

Сам шрифт Times New Roman следует установить в составе пакета шрифтов от MS.

Смотрим на результат:

~$ fc-match times
Times_New_Roman.ttf: "Times New Roman" "Normal"

Готово.

Инструкция по установке Ruby + Gems + Rails на Ubuntu

19.09.2008

Ставим Ruby через менеджер пакетов apt-get:

~$ sudo apt-get install ruby rdoc irb libyaml-ruby libzlib-ruby ri libopenssl-ruby ruby1.8-dev build-essential

Пакеты rdoc и irb не входят в зависимости, хотя и необходимы для Gem и Rails.

Ставим RubyGems из исходников. Это позволит в дальнейшем RubyGems спокойно само-обновляться:

~$ wget "http://rubyforge.org/frs/download.php/38646/rubygems-x.x.x.tgz"
~$ tar -xvzf rubygems-x.x.x.tgz
~$ rm rubygems-x.x.x.tgz
~$ cd rubygems-x.x.x
~$ sudo ruby setup.rb
~$ cd ..
~$ rm -r rubygems-x.x.x

(НЕЛЬЗЯ запускать установку снаружи, типа use sudo ruby rubygemsx.x.x/setup.rb)

Теперь можно обновить RubyGems

~$ sudo gem update --system

Если эта команда не сработала, то, возможно, нужно создать симлинк /usr/bin/gem1.8 -> /usr/bin/gem

~$ sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

Ставим Rails и mongrel через RubyGems:

~$ sudo gem install rails mongrel

Добавляем /var/lib/gems/1.8/bin/ в пути, и все готово!

~$ PATH=${PATH}:/var/lib/gems/1.8/bin/
~$ export PATH

[источник]

Харитон Мизгирь пишет: NB! если при установке какого-нибудь gem'а выдается ошибка
"no such file to load — mkmf"
это значит, что не установлен ruby1.8-dev, libsqlite3-dev
или еще какой-нибудь *-dev

~$ sudo apt-get install ruby1.8-dev libsqlite3-dev

и т.д.

tar.gz: извлечение конкретного файла

17.09.2008

Если из архива .tar(.gz) нужно извлечь конкретные файлы, то просто надо просто перечислить их в параметрах. Например, из архива archive.tar.gz надо извлечь файл public_html/index.html. Используем заклинание:

alex@test:~$ tar zxvf archive.tar.gz public_html/index.html

Виндовые шрифты в Ubuntu

07.09.2008

Установка TTF windows проста до неприличия:
~$ sudo apt-get install msttcorefonts

Переименовать все файлы в нижний регистр

07.09.2008

Переименовать все файлы в текущей и во всех вложенных директориях в нижний регистр:

~$ find ./ -type f | awk '{ print $1 " " tolower($1) }' | xargs -L 1 mv

Харитон Мизгирь пишет: Чтобы обрабатывались пути с пробелами и проч. непечатностями надо использовать конструкцию типа:
~$ find -print0 | xargs -0

Объяснение по поводу параметра -print0 (find'а) и -0 (xargs'а)

В имени файла может попасться символ, который требует экранирования при обработке (single or double quotes, spaces or newlines). print0 заставляет выводить список найденных файлов разделяя их через нуль-символ ('\0', в духе языка C, где он используется для декларации конца строки). xargs тоже должен быть готов к такому разделителю, для этого служит -0.

find и xargs по разному себя ведет когда ищут из текущей директории или когда ищут из родительской (в родительской прекрасно обрабатывал директории с пробелами и любыми кавычками, которые находились в дочерней директории). newlines не обрабатывается нигде.

Провел такой эксперимент. Создал скрипт (в файле):

mkdir "Bad \
bad \
bad \
dir"

– получил директорию с newlines.

Создал там файл README.txt и попытался его найти:

touch README.txt
cd ..
find . -name README.txt | xargs -I % ls %

Получил ошибку:

xargs: unmatched одинарная quote; by default quotes are special to xargs unless you use the -0 option
(загадочное сообщение: "по умолчанию кавычки обрабатываются xargs, если только вы не используете параметр -0")

Та же команда в связке print0-0 работает нормально:

find . -name README.txt -print0 | xargs -0 -I % ls %

Ошибки, которые возникали в текущей директории (в родительской все было нормально):

ls: ./Временнаяnдиректория/README.txt: No such file or directory

То есть использование связки print0 ... -0 желательно всегда. Можно прописать через alias'ы.

qip + wine

07.09.2008

~$ wine '/mnt/sda1/Program Files/QIP/qip.exe' /oldgif