Gentoo Linux сборник статей

Pdf просмотр
Размер5.55 Mb.
1   ...   71   72   73   74   75   76   77   78   79
Примечание: This should start the desktop environment configured via XSESSION in /
With xfce4-session xfce4-session is installed by default as part of the xfce4 meta-package. If you installed xfce4 this way, the following will work.
First, it is necessary to create a script that will start Compiz and gnome-window- decorator with the correct libraries and switches. Файл: /usr/bin/compizrc
LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib compiz --replace gconf &
Code: Make the script executable chmod 755 /usr/bin/compizrc
Now, edit the xfce4-session settings to point to this rather than xfwm4. Файл:
[Failsafe Session]
Примечание: Instead of editing system-wide file you may also add above section to
/.config/xfce4-session/xfce4-session.rc file. Note also that you may need to delete content of the
/.cache/sessions directory, if you still have xfwm4 rather than Compiz running.

Русское WIKI
Finally, create a script to start Xgl with Xfce4. Файл: /usr/bin/startxgl for NVIDIA
Xgl -ac -accel xv:fbo -accel glx:pbuffer &
Файл: /usr/bin/startxgl for ATi
Xgl -ac -accel xv:pbuffer -accel glx:pbuffer &
Code: Make the script executable chmod 755 /usr/bin/startxgl
You will notice that xfce4-panel is now transparent, just like if you were using xfwm4's compositor. The pager will be distorted, but otherwise everything works beautifuly.
Windows even minimize to the correct spot on the taskbar.
Without xfce4-session
If you compiled a minimal Xfce (without xfce4-session, xffm4, etc.), then you can use this altered startxgl script from the gnome script above:
#!/bin/bash echo ">Starting XGL at Display: $1"
echo "========= XGL ============"
Xgl :$1 -ac -accel xv -accel glx:pbuffer &
sleep 3
echo "======= COMPIZ ==========="
DISPLAY=:$1 LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace switcher decoration wobbly fade minimize cube rotate zoom scale move resize place &
sleep 3
echo "======= XFCE ============"
DISPLAY=:$1 xfce-mcs-manager
DISPLAY=:$1 gnome-window-decorator &
DISPLAY=:$1 xftaskbar4 &
DISPLAY=:$1 xfdesktop &
DISPLAY=:$1 exec xfce4-panel
Again, xfce4-panel will be transparent as if you had the composite extension turned on (but you don't) or if you use xfce4-svn, and the pager will be distorted.
Everything else should be fine.
With startxfce4 921

Русское WIKI
To do it the old fashioned, or 'normal' way via startx/startxfce4 I did the following. First, startxfce4 shouldn't be called I don't think. just use an .xinitrc in your homedir and startx.
Now as root, we create compizrc, like above. Note however that for me, it worked best/only without the DISPLAY variable. Файл: /usr/bin/compizrc
LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace gconf >
/compiz.log 2>&1 &
sleep 1;
gnome-window-decorator >
/gnome-window.log 2>&1 &
Obviously the output redirections are optional (but handy for debugging). The sleep 1; might also be removed to speed things up. If things go TO fast however, you might get in trouble though. Don't forget to chmod 755 /usr/bin/compizrc
Lastly we need to use this new compizrc instead of the default xfce4 window manager.
Again, as root edit /etc/xdg/xfce4-session/xfce4-session.rc and replace xfwm4 with compizrc Файл: /etc/xdg/xfce4-session/xfce4-session.rc (old)
Файл: /etc/xdg/xfce4-session/xfce4-session.rc (new)
Now only one thing is left, start Xgl. As above you can copy startx in /usr/bin/startx to
/usr/bin/startxgl and make the following change: Файл: /usr/bin/startxgl (old) xinit $clientargs -- $serverargs -deferglyphs 16 &
Файл: /usr/bin/startxgl (new) xinit $clientargs -- /usr/bin/Xgl -ac -accel xv -accel glx:pbuffer $serverargs -deferglyphs
16 &
Примечание: Todo: Make Client0_Command depend on wether startx or startxgl is beeing used as 3D apps don't appear to work as they should and switching back to the
'old way' is required.

Русское WIKI
Edit: it seams that when using the startxfce4 script, the /etc/xdg/xfce4-session/xfce4- session.rc file (and the .xinitrc) get ignored thus starting a non Xgl desktop. Making
'switchin' not needed. startxfce4 for oldschool, startxgl for new style
Emerge latest entrance: echo "=x11-misc/entrance- x86" >> /etc/portage/package.keywords emerge -av entrance
Use the ecore_config utility to change the xserver string (choose according to your video card):
ecore_config -k "/entranced/xserver" -s "/usr/bin/Xgl -ac -accel xv:pbuffer -accel glx:pbuffer -nolisten tcp" -c /etc/entrance_config.cfg
ecore_config -k "/entranced/xserver" -s "/usr/bin/Xgl -ac -accel xv:fbo -accel glx:pbuffer - nolisten tcp" -c /etc/entrance_config.cfg
Restart entrance.
It is quite easy to change Qingy to start Xgl instead of a regular X server. All you need to do to make it start Xgl is change 2 lines in /etc/qingy/settings Файл:
# x_server = "/usr/X11R6/bin/XFree86"
x_server = "/usr/bin/Xgl"
# x_args = "-nolisten tcp"
x_args = "-ac -accel xv -accel glx:pbuffer -nolisten tcp"
Now Qingy should start Xgl instead of regular X. To make KDE and GNOME load
Compiz you need to export a variable. KDEWM for KDE and WINDOW_MANAGER for
GNOME. It is easiest to do this in /etc/X11/Sessions.
You need to have followed the instructions for adding plugins to gconf-editor. Then make a /usr/bin/compizrc as shown and chmod +x it. Файл: /usr/bin/compizrc
LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib compiz --replace gconf &
sleep 2
gnome-window-decorator &

Русское WIKI
setxkbmap -model itouch -layout gb & ## Change/Remove as appropriate
Then edit the appropriate file (or both) in /etc/X11/Sessions
For KDE: Файл: /etc/X11/Sessions/kde-3.5
#!/bin/sh export KDEWM="/usr/bin/compizrc"
exec /usr/kde/3.5/bin/startkde
Or for GNOME add this to the top of the file : Файл: /etc/X11/Sessions/Gnome
#!/bin/sh export WINDOW_MANAGER="/usr/bin/compizrc"
For Xfce4 edit /etc/xdg/xfce4-session/xfce4-session.rc as shown in a previous section.
Hopefully Qingy should now start Xgl and Compiz instead of X and some other WM.
Generic startxgl script
There is a generic startup script in the overlay. For usage instructions start it without arguments.
Currently it support Xfce, Xfce-svn, GNOME and KDE. cd /usr/local/overlays/xgl-coffee
Автоматическое переключение раскладок
Для начала сделаем ebuild в portage overlay
Создаём каталог:
mkdir -p /usr/local/portage/x11-misc/xneur cd /usr/local/portage/x11-misc/xneur
Создаём ebuild:
nano -w xneur-0.1.0_1.ebuild Файл: /usr/local/portage/x11-
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
DESCRIPTION="It's program like Punto Switcher, but has other final aim."

Русское WIKI
x86 amd64 sparc alpha ppc hppa ppc64"
src_install () {
make DESTDIR=${D} install || die
pkg_postinst() {
# einfo "Run:"
# einfo "gzcat /usr/doc/${P}/.xneurrc.gz >
Далее: ebuild xneur-0.1.0_1.ebuild digest Поскольку у нас бэта: echo "x11-misc/xneur x86" >> /etc/portage/package.keywords emerge xneur ;)
А за подробностями на
Cedega 5.1
Cedega - коммерческая версия ПО для реализации WinAPI на *nix-платформах
WINE, разработанная Transgaming, ранее известная как Winex. Поддерживается большинство популярных игр. В последней версии добавилась официальная поддержка Sid Meier's Civilization® IV, FIFA® 06 и Need for Speed™: Most Wanted.
Cedega 5.1 состоит из двух компонентов:
Point-to-play - графический интерфейс для простой установки игр, распространяется в виде .rpm/.deb/.tgz
Engine / engine update - модифицированный WINE, распространяется в виде файлов .cpkg - tar архивы, содержащие tgz архив и файл manifest с номером версии .
Установка самого эмулятора, без неудобного в использовании Point-to-play

Русское WIKI
выглядит так:
Code: Установка Cedega
tar -zxf cedega-engine-5.1-local-update.i386.cpkg
tar -C /usr -zxf cedega_5.1-1.i386.p2p.tgz bin winex
mv /usr/share/share/doc/* /usr/share/doc
mv /usr/share/share/man/man1/* /usr/share/man1
mv /usr/bin/winex3 /usr/bin/cedega
mkdir /usr/lib/transgaming/cedega; mv /usr/winex /usr/lib/transgaming_cedega
Первоначальная настройка
Code: Первоначальная настройка
tar -C $HOME -zxf cedega_5.1-1.i386.p2p.tgz .transgaming

cedega -version
Секреты командной строки
Общие команды
поиск команды Linux, ее описания и номера секции man страниц
apropos word
закодировать файл file с помощью GnuPG
gpg -c file
раскодировать файл file
gpg file.gpg
быстрый поиск по словарю слов, начинающихся с word
look word
подсветить слово word в файле /somefile

Русское WIKI
grep --color word /somefile
запустить command с низким приоритетом
nice command
назначить низший приоритет текущему шеллу (и всем потомкам). Может быть полезно, если вашу систему сильно замедляет установка нового пакета (emerge).
Кстати, для автоматического понижения приоритета emerge используется переменная PORTAGE_NICENESS в файле /etc/make.conf
renice 19 -p $$
посмотреть код завершения предыдущей команды
echo $?
скачать список новых страничек с нашего сайта в 01:00 в текущую директорию
echo "wget" | at 01:00
в 17:45 послать пустое письмо с заголовком 'got the r00t?'на
echo "mail -s 'got the r00t?' < /dev/null" | at 17:45
напечатать 1234 в соответствии с настройками локали (в России обычно 1.234)
printf "%'d\n" 1234 запускать просмотр прерываний каждую секунду
watch -n1 "cat /proc/interrupts" посмотреть, сколько времени занимает выполнение команды
time command
удобный алиас для вывода дампа
alias hd='od -Ax -tx1z -v'
полный путь к команде command
which command
вывести в 9 колонок по ширине терминала
ls | pr -T9 -W$COLUMNS
установить время изменения для файла file (в формате YYMMDDhhmm)
touch -c -t 0304050607 file
показать иерархию запущенных процессов

Русское WIKI
pstree -p
показать процессы, использующие файл /dir/file (чаще всего использую нечто вроде 'lsof /mnt/cdrom'). Не забудьте сделать 'emerge -n lsof'
lsof /dir/file
объединить stderr и stdout (вернее сказать перенаправить stderr в stdout)
gcc file.c 2>&1 | less
Перенаправить stderr в файл errors.log а stdout в файл compile.log для дальнейшего анализа
gcc file.c 2>errors.log 1>compile.log
Если нужно запретить вывод потока (например убрать в скрипте сообщения об ошибках) то достаточно перенаправить поток на устройство /dev/null, тогда сообщения уйдут в никуда:
rm -r /var/tmp/portage 2>&1 >/dev/null или rm -r /var/tmp/portage &> /dev/null
Порой нужно обьединить выходной поток сразу нескольких комманд, а поток одной изних отключить, тогда группу нужно объединить в скобки:
( cat /etc/gentoo-release ; cat /etc/passwd >/dev/null; cat /etc/group ) |less
Навигация по директориям.
вернуться в предыдущую директорию (не путать с 'cd ..')
cd -
вернуться в домашнюю директорию
перейти в директорию dir, запустить command и автоматически вернуться назад
(cd dir; command)
добавить текущую директорию в стек, чтобы потом можно было сделать popd и вернуться к ней
pushd .

Русское WIKI
Дисковое пространство
показать список файлов с информацией о каждом файле (-l), отсортировав список по убыванию размера (-S) и перевернуть список (-r). Получим сортировку по возрастанию.
ls -lSr
показать, сколько места на диске занимает файл file и директория dir
du -sh file dir
показать свободное место на примонтированных ресурсах
df -h
то же самое но в инодах
df -i
показать геометрию размещения разделов жесткого диска (нужны права root)
fdisk -l
Работа с CD
создать iso-образ диска и заархивировать его
dd bs=1M if=/dev/cdrom | gzip > cdrom.iso.gz
создать iso-образ из директории dir
mkisofs -r dir | gzip > cdrom.iso.gz
смонтировать cdrom.iso в /mnt/dir (для просмотра и правки)
mount -o loop cdrom.iso /mnt/dir
записать архивированный образ на диск
gzip -dc cdrom.iso.gz | cdrecord dev=0,0,0 -
рипнуть дорожки с Audio-CD в текущую директорию (в формате .wav)
cdparanoia -B
создать Audio-CD из всех .wav файлов в текущей директории
cdrecord dev=0,0,0 -audio *.wav
конвертировать файл track.cdda.wav формат .ogg

Русское WIKI
oggenc --tracknum="track" track.cdda.wav -o "track.ogg"
Работа с архивами
создать архив директории dir
tar c dir/ | bzip2 > dir.tar.bz2
tar -cjf dir.tar.bz2 dir
извлечь архив в директорию /to/dir (без '-C /to/dir' в текущую директорию)
bzip2 -dc dir.tar.bz2 | tar x -С /to/dir
tar -xjf dir.tar.bz2 -C /to/dir
создать архив всех .png файлов в директории dir/
find dir/ -name "*.png" | xargs tar rf dir.tar; bzip2 dir.tar
скопировать (с сохранением прав доступа!) директорию /dir/to/copy/ в /where/to/
( tar cf - /dir/to/copy ) | ( cd /where/to/ && tar xf - )
скопировать (с сохранением прав доступа!) содержимое директории /dir/to/copy в /
( cd /dir/to/copy && tar cf - . ) | ( cd /where/to/ && tar xf - )
скопировать (с сохранением прав доступа!) директорию /dir/to/copy/ в директорию /
where/to/ на удаленной машине
( tar cf - /dir/to/copy ) | gzip | ssh user@remote 'cd /where/to/ && gzip -dc | tar xf -' создать и сохранить бэкап жесткого диска на удаленной машине
dd bs=1M if=/dev/hda | gzip | ssh user@remote 'dd of=hda.gz'
Работа с файлами
удобный листинг по команде l
alias l='ls -l --color=auto'
вывести листинг с упорядочиванием по дате
ls -lrt
показать в папке dir файлы модифицированные раньше, чем 2 дня назад

Русское WIKI
find dir -mtime +2
удаляем в папке dir файлы старше 1 часа
find dir -type f -mmin +60 -exec rm -f {} \;
удаляем в папке dir файлы старше 10 дней
find dir -type f -mtime +10 -exec rm -f {} \;
найти в текущей директории (и ниже) .c и .h файлы содержащие строку "search string"
find -name "*.[ch]" | xargs grep -E "search string"
искать строку "search string" только в обычных файлах
find -type f | xargs grep -E "search string"
искать строку "search string" только в текущей директории (не спускаться ниже)
find -type f -maxdepth 1 | xargs grep -E "search string"
в текущей директории найти все файлы с расширением sql содержащие USER1 и заменить в них USER1 на USER2
tmp="/tmp/$RANDOM$$.tmp"; f="USER1"; r="USER2";
find . -name '*.sql' -exec grep -l "$f" {} \; |
xargs --replace="{}" bash -c "( sed 's/$f/$r/g' < {} > $tmp && cat $tmp > {} && rm -f
$tmp )"
найти файл в базе данных программы slocate. Замечание: данное регулярное выражение эквивалентно маске *file*.txt
locate -r 'file[^/]*\.txt'
Работа с файловой системой
отформатировать флоппи-диск с FAT
mkdosfs -c -f 16 -n "название тома" /dev/fd0 или mkfs -t fat16 /dev/fd0
"правильная" кодировка и права файлов для сменных носителей (floppy, CD, flash) необходимо прописать в /etc/fstab!!! для CDROM
/dev/cdrom /mnt/cdrom iso9660 ro,nosuid,noauto,exec,user,nodev 0 0

Русское WIKI
для "дискетки"



r,sync,nosuid,codepage=866,user,--,noauto,nodev,unhide 0 0
для раздела Windows
/dev/hda1 /mnt/win vfat user,exec,umask=0,codepage=866,iocharset=koi8-r 0 0
для "флешки"
/dev/sda1 /mnt/flash vfat user,exec,umask=0,sync,codepage=866,iocharset=koi8-r
0 0 вышенаписанное справедливо для локали koi8-r, ваша может отличаться (см. locale), в этом случае все "koi8-r" необходимо исправить на свои, и помните, что это, лишь, пример
Работа с календарем
вывести на экран календарь на текущий, предыдущий и следующий месяцы
cal -3
на какой день недели выпал в этом году день рождения Linux?
date --date='25 Aug' +%A
конвертировать в дату (в соответствии с локалью) - 130204800 секунд, прошедшие с начала эпохи Unix
date --date '1970-01-01 UTC 130204800 seconds'
Сколько сейчас времени на западном побережьи США (используйте tzselect чтобы узнать параметр для TZ)
TZ="America/Los_Angeles" date
Работа с сетью
(Предварительно сделать emerge на net-tools, sys-apps/iproute2, net-dns/bind-tools)
показать сетевые интерфейсы
ip link show
показать статус сетевых интерфейсов
ethtool interface или /sbin/ifconfig
переименовать eth0 в wan

Русское WIKI
ip link set dev eth0 name wan
добавить ip с маской на eth0
ip addr add brd + dev eth0
поднять интерфейс
ip link set dev interface up
опустить интерфейс
ip link set dev interface down
сделать шлюзом по умолчанию
ip route add default via
показать ip адрес для name
host name
показать прослушиваемые порты в системе (и кто их слушает)
netstat -lp --inet
показать активные соединения
netstat -p --inet
простое вычисление
echo "(321-123)/123" | bc -l
простое целочисленное вычисление с использование bash
echo "$(( (51+123)/2 ))"
использование python для научных вычислений
echo "print (10E3-123)/123" | python
приведение систем счисления (в данном случае, десятичной к шестнадцатеричной)
echo "obase=16;ibase=10;123" | bc
Более сложное вычисление - максимальная скорость передачи (в пакетах в секунду) в Fast Ethernet сети (100Mb)

Русское WIKI
echo "framing=20; minsize=64; (100*10^6)/((framing+minsize)*8)" | bc
А здесь мы строим график зависимости скорости передачи от размера пакета всё в той же 100-мегабитной сети.
echo "framing=20; plot [64:1518] (100*10**6)/((framing+x)*8)" | gnuplot -persist
Тонкость работы ccache с emerge
Вы пробовали оценить эффективность работы ccache при пересборке системы?
Проделайте опыт: очистите кэш (ccache -C) и запустите пересборку (emerge
--emptytree world). После пересборки десятка-другого пакетов прервите процесс и посмотрите статистику (ccache -s) Запустите пересборку по новой и опять прервитесь на старом месте. Что показывает статистика? Много ли совпадений?
А теперь добавьте в /etc/make.conf строчки
CXX=g++ очистите кэш и статистику и повторите эксперимент заново. Не правда ли, что после этого кэш только и заработал?
Суть: по состоянию на апрель 2005 ccache опознает как компилятор только стандартные имена типа gcc, g++ и не опознает такие имена как i686-pc-linux-gnu- gcc. Однако именно такие имена и используют пакеты в качестве компилятора после работы скриптов кофигурации configure
Варианты раскладок клавиатуры для прописывания в /etc/conf.d/keymaps (в старых версиях baselayout переменная находится в файле /etc/rc.conf) Файл:
KEYMAP="-u ru4"
Доступные варианты:
ru -- кодировка KOI-8, переключение [Right-Ctrl], одиночный символ [Right-Alt] ru1 -- кодировка KOI-8, переключение [Right-Alt] ru2 -- альтернативная кодировка (IBM866), переключение [Right-Alt] ru3 -- кодировка KOI-8, 102 кнопочная клавиатура, переключение [CapsLock],

Русское WIKI
[Shift+CapsLock] -- фиксация регистра ru4 -- кодировка KOI-8, 105 кнопочная клавиатура, переключение [CapsLock],
[Shift+CapsLock] -- фиксация регистра ru-cp1251 -- кодировка CP1251, переключение [Right-Ctrl], одиночный символ
[Right-Alt] ru-ms -- раскладка как в Microsoft Cyrillic keyboard layout, переключение [Right-Ctrl] ru_win -- кодировка CP1251, переключение [Right-Ctrl], одиночный символ [Right-
Alt] ru-yawerty -- кодировка KOI-8, раскладка "ЯВЕРТЫ" (это бывает удобно при работе на клавиатуре без русских символов), переключение [Right-Alt]
Вариант, которого нет в стандартной поставке, но весьма удобен ru-utf.
Переключение [Right-Ctrl], одиночный символ [Right-Alt]. Брать тут:, сохранить в каталог /usr/share/kbd/keymaps/i386/
qwerty или в случае отсутствия этого, в каталог /usr/share/keymaps/i386/qwerty.
Кроме того есть вариант ru-mab. Он даёт переключение по [Ctrl+Shift]. Взять можно тут:

Часто задаваемые вопросы
Часто задаваемые вопросы
2. Введение
Как произносится слово Gentoo, и что оно означает?
Gentoo (Хинду) это вид маленького и быстрого пингвина, произносится по- английски как "gen-too" (джин-туу). Научное название пингвина - Pygoscelis papua.
Имя Gentoo было дано пингвину жителями Фолклендских (Мальвинских) Островов
(Islas Malvinas). По-русски прижилось произношение Gentoo как "генту".
Что делает Gentoo особенным?
Gentoo использует похожую на порты BSD систему, называемую Portage (англ.).
Portage - это система управления пакетами, дающая огромную гибкость при установке и сопровождении программного обеспечения в системе Gentoo. Она предоставляет поддержку директив времени компиляции (с помощью USE- флагов), условные зависимости, сведения о пакете перед его установкой, безопасную установку (через "песочницу") и удаление ПО, системные профили, защиту конфигурационных файлов, а также многие другие возможности.
С Gentoo вы можете построить всю свою систему из исходных кодов, используя необходимую вам оптимизацию. Вы полностью контролируете, какие пакеты устанавливать, а какие нет. Gentoo предоставляет множество вариантов установки, удовлетворяющие вашим запросам, поэтому его называют метадистрибутивом.
Gentoo активно развивается. Поддерживается высокий темп разработки: заплатки быстро включаются в основное дерево проекта, документация обновляется ежедневно, часто добавляются новые функции в Portage, а официальные выпуски выходят дважды в год.

Поделитесь с Вашими друзьями:
1   ...   71   72   73   74   75   76   77   78   79

База данных защищена авторским правом © 2019
обратиться к администрации

войти | регистрация
    Главная страница

загрузить материал