Чтобы корректно отображались шрифты в виндошных программах, нужно скачать и установить русские шрифты:
wget http://ubuntologia.ru/article_files/wine/notes_69.tar.gz \ && tar xvfz notes_69.tar.gz \ && cp ~/fonts-cyr-win311/*TTF ~/.wine/drive_c/windows/Fonts \ && chmod 644 ~/.wine/drive_c/windows/Fonts/*.TTF \ && rm -rf ~/fonts-cyr-win311/ \ && rm notes_69.tar.gz
После этого нужно установить в консоли локаль cp1251:
LC_ALL=ru_RU.cp1251
Если в системе при установке не была добавлена локаль CP1251, установить её можно в любой момент командой:
sudo dpkg-reconfigure locales
После этого в консоли можно запускать программы через wine:
cd ~/Distrib/Games/Space\ Rangers/Космические\ Рейнджеры\ 2\ -\ Перезагрузка/ \ && sudo mount -t iso9660 -o loop SRDR.mdf /home/alex/.cd \ && cd ~/.cd \ && wine Autorun.exe &
Дальнейшая настройка wine:
# Устанавливаем winetricks wget http://winetricks.googlecode.com/svn/trunk/src/winetricks # Установка виндошных библиотек sh winetricks vb5run sh winetricks vb6run sh winetricks 7zip sh winetricks dotnet11 sh winetricks dotnet20 sh winetricks vcrun2005 sh winetricks directx9 sh winetricks devenum
Desktop background
Чтобы поменять цвет бэкграунда рабочего стола (debian squeeze, GNOME), нужно отредактировать файл:
nano ~/.gconf/desktop/gnome/background/%gconf.xml
За цвет отвечают следующие строки:
<entry name="primary_color" mtime="1331955722" type="string">
<stringvalue>#1bcd319a4426</stringvalue>
</entry>
<entry name="secondary_color" mtime="1331955722" type="string">
<stringvalue>#6666baba0000</stringvalue>
</entry>
Greetings background
Чтобы поменять цвет бэкграунда экрана приветствия, нужно отредактировать файл:
# Предварительно делаем копию!
sudo cp /var/lib/gdm3/.gconf.mandatory/%gconf-tree.xml \
/var/lib/gdm3/.gconf.mandatory/%gconf-tree.xml.bkp
sudo nano /var/lib/gdm3/.gconf.mandatory/%gconf-tree.xml
За настройки цвета отвечают следующие строки:
<entry name="primary_color" mtime="1276168926" type="string"> <stringvalue>#01011b1b3636</stringvalue> </entry> <entry name="secondary_color" mtime="1276168926" type="string"> <stringvalue>#01011b1b3636</stringvalue> </entry>
PEAR расширение CodeSniffer отличный способ для проверки соответствия кода проекта определённому стандарту. Устанавливается следующим образом:
pear install PHP_CodeSniffer # Если PHP был установлен по нестандартному пути: sudo ln -s /usr/local/php/bin/phpcs /usr/local/bin/phpcs
Конечно, такой способ установки требует, чтобы PHP был собран сключом --with-pear. После установки можно для удобства прописать следующий алиас в ~/.bashrc:
alias phpcs='phpcs --standard=PEAR --encoding=utf-8'
Для того, чтобы создать свой стиль, нужно создать в папке
/usr/local/php/lib/php/PHP/CodeSniffer/Standards
папку с названием совоего стиля, например MegaStyle :). В этой папке создать файл ruleset.xml. Например, чтобы создать стиль содержащий PEAR-стандарты, но добавить uppercase ключевые слова, TODO предупреждения и убрать стандарты комментирования нужно прописать:
<?xml version="1.0"?> <ruleset name="MegaStyle"> <description>A custom coding standard</description> <!-- Include the whole PEAR standard except LowerCaseConstant and FileComment --> <rule ref="PEAR"> <exclude name="Generic.PHP.LowerCaseConstant"/> <exclude name="PEAR.Commenting.FileComment"/> </rule> <!-- Include some additional sniffs from the Generic standard --> <rule ref="Generic.PHP.UpperCaseConstant"/> <rule ref="Generic.Commenting.Todo"/> </ruleset>
Из PECL-библиотек использую bbcode-1.0.2, crack-0.4, eaccelerator-0.9.6.1, svn-1.0.1, translit-0.6.1. После скачивания, распаковки и переименования папок этих расширений устанавливаем переменные окружения:
export PHP_AUTOCONF=/usr/local/bin/autoconf-2.13 export PHP_AUTOHEADER=/usr/local/bin/autoheader-2.13 export PHP_AUTOMAKE=/usr/local/bin/automake-1.4 export CFLAGS="-O3 -march=k8 -fomit-frame-pointer -pipe" export CXXFLAGS="-O3 -march=k8 -fomit-frame-pointer -pipe"
Далее конфигурируем PHP:
rm configure config.cache && ./buildconf --force ./configure --disable-debug --build=amd64-server-openbsd4.9 --target=amd64-server-openbsd4.9 --host=amd64-server-openbsd4.9 --disable-short-tags --with-pear --with-bz2=/usr/local/lib --with-curl --with-libdir=lib --with-jpeg-dir=/usr --with-png-dir=/usr/local --with-freetype-dir=/usr/local/lib --with-xpm-dir=/usr/X11R6 --with-t1lib=/usr --enable-gd-native-ttf --with-gmp --with-openssl --with-openssl-dir=/usr --with-kerberos=/usr/local --with-pspell --with-enchant --with-zlib --enable-re2c-cgoto --with-layout=GNU --enable-exif --enable-calendar --without-sqlite --enable-mbregex --enable-cli --enable-fpm --with-fpm-user=www --with-fpm-group=www --disable-magic-quotes --enable-bcmath --enable-ftp --with-gd --enable-mbstring --with-mcrypt --with-mysql=/usr/local --with-mysql-sock=/var/run/mysql/mysql.sock --disable-embedded-mysqli --with-mysqli=/usr/local/bin/mysql_config --with-pdo-mysql=/usr/local --with-snmp --enable-soap --enable-wddx --enable-sockets --with-tidy --with-xsl --enable-zip --enable-zend-multibyte --with-gettext --with-mhash --enable-bbcode --with-svn --with-crack --enable-translit --with-ldap --with-ldap-sasl --enable-intl --enable-eaccelerator --with-eaccelerator-shared-memory --with-eaccelerator-userid=www --with-iconv=/usr/local
Собираем:
make && make install
На случай, если потом понадобится вручную удалить вот пути установки:
Installing PHP SAPI module: fpm Installing PHP CLI binary: /usr/local/bin/ Installing PHP CLI man page: /usr/local/man/man1/ Installing PHP FPM binary: /usr/local/sbin/ Installing PHP FPM config: /usr/local/etc/ Installing PHP FPM man page: /usr/local/man/man8/ Installing PHP FPM status page: /usr/local/share/php/fpm/ Installing build environment: /usr/local/lib/php/build/ Installing header files: /usr/local/include/php/ Installing helper programs: /usr/local/bin/ program: phpize program: php-config Installing man pages: /usr/local/man/man1/ page: phpize.1 page: php-config.1 Installing PEAR environment: /usr/local/share/pear/ [PEAR] Archive_Tar - installed: 1.3.7 [PEAR] Console_Getopt - installed: 1.3.0 [PEAR] Structures_Graph- installed: 1.0.4 [PEAR] XML_Util - installed: 1.2.1 [PEAR] PEAR - installed: 1.9.4 Wrote PEAR system config file at: /usr/local/etc/pear.conf You may want to add: /usr/local/share/pear to your php.ini include_path /home/web/src/php-5.3.9/build/shtool install -c ext/phar/phar.phar /usr/local/bin ln -s -f /usr/local/bin/phar.phar /usr/local/bin/phar Installing PDO headers: /usr/local/include/php/ext/pdo/
В svn есть возможность при коммите подменять ключевые слова $Log$, $Date$, $Author$ на соответствующие значения текущего коммита. Во многих случаях использование этого функционала очень удобно. К сожалению, git реализация подобного функционала связана с некоторыми сложностями. Поэтому возникла идея написания скрипта, который перед заливкой файлов git-проекта на хостинг произведёт замены ключевых слов на соответствующие значения. Например:
\author \date \version
после обработки становились:
\author A.Yancharuk \date 05.01.2012 09:15:05 \version v.1.003RC1
Так же было бы удобно чтобы в коде определённой переменной присваивалось значение текущей версии проекта. Например, для PHP:
// Current progect version $progect_version = "";
после обработки скриптом:
// Current progect version $progect_version = "v.1.003RC1";
Так же было бы здорово не ограничивать функционал скрипта только PHP. Чтобы подобную замену легко можно было использовать и в С, С++, shell и т.д.
Результат можно скачать по ссылке.
Изначально можно запустить скрипт с ключом all. В этом случае будут обработаны все файлы проекта которые содержат шаблоны замены. В дальнейшем, при запуске скрипта без ключа, замена будет производиться только в файлах текущего коммита:
git_keywords.sh all # Обработка всех файлов проекта git_kyewords.sh # Обработка файлов предыдущего коммита
Пример использования скрипта:
# Делаем коммит git commit -ae # Используем тег для обозначения версии проекта git tag -a v.1.32 # Замена всех ключевых слов в файлах предыдущего коммита git_keywords.sh # Удаляем старую и генерим новую документацию по проекту rm -rf ~/documentation && doxygen ~/doxygen.progect.cfg # Заливаем новую версию проекта на хостинг rsync -avr -e "ssh" /home/user/www/* user@host:/home/user/www/ # Откатываем все изменения произведённые скриптом git reset --hard HEAD
Несколько предусловий для корректной работы скрипта:
- Пользователь, от имени которого запускается скрипт, должен иметь 'Full name'.
- В файлах проекта должны присутствовать следующие шаблоны: '\date', '\author', '\version', 'precommit_version = ' (без "'" символов).
- Шаблоны замены должны располагаться в конце строки т.к. замена будет произведена от совпадения до EOL.
- Перед использованием скрипта нужно убедиться, что в проекте используются git tags. Номер версии берётся именно из тегов.
- Скрипт должен запускаться в корневой директории проекта. Запуск из других папок не предусмотрен.
- При необходимости нужно добавить расширения файлов, в которых будет вести поиск соответствий. По-умолчанию проверяются файлы: *.c *.cpp *.h *.hpp *.php *.inc *.zx