By default, the query string is passed through unchanged. You can, however, create URLs in the substitution string containing a query string part. Simply use a question mark inside the substitution string to indicate that the following text should be re-injected into the query string. When you want to erase an existing query string, end the substitution string with just a question mark. To combine new and old query strings, use the [QSA] flag.
Origin.
понедельник, 24 мая 2010 г.
суббота, 27 февраля 2010 г.
Мегафон порадовал.
Являюсь я счастливым владельцем 3G-модема HUAWAY, приобретенного с подпиской Мегафона.
До последнего времени сей девайс чудесно обнаруживался моей Fedor'ой как модем. Соответственно, подключение к Сети настраивалось в 3-4 клика мышью в мастере настройки модемного соединения NetworkManager'а. Но вот пришли обновления udev и NetworkManager'а. Очень неприятные, надо сказать, обновления.
"Благодаря" первому девайс перестал обнаруживаться как модем. Откат обновлений исправил ситуацию. Но тут подоспело обновление NetworkManager'а, после которого модемное подключение через оный перестало работать вообще :( Подробнее здесь.
С горя решил я заглянуть в flash-раздел, который располагается на том же девайсе. И, не поверите, среди виндоподобного хлама я узрел директорию Linux. В ней оказался дистрибутив программы аналогичной, что пользуют с модемом под Windows. Установка с помощью ./install оказалась простой и удобной: спросила куда лучше развернуться, развернула свою JRE, развернула себя. :)
Сия программа видит девайс и устанавливает соединение! Ура, я в Сети. Спасибо ребятам из Мегафона, за продуманность сервиса.
Теперь можно неторопясь ждать, когда все-таки пофиксят это, чтобы проверить это. Т.к. после последнего обновления udev, даже даунгрейд не помогает.
До последнего времени сей девайс чудесно обнаруживался моей Fedor'ой как модем. Соответственно, подключение к Сети настраивалось в 3-4 клика мышью в мастере настройки модемного соединения NetworkManager'а. Но вот пришли обновления udev и NetworkManager'а. Очень неприятные, надо сказать, обновления.
"Благодаря" первому девайс перестал обнаруживаться как модем. Откат обновлений исправил ситуацию. Но тут подоспело обновление NetworkManager'а, после которого модемное подключение через оный перестало работать вообще :( Подробнее здесь.
С горя решил я заглянуть в flash-раздел, который располагается на том же девайсе. И, не поверите, среди виндоподобного хлама я узрел директорию Linux. В ней оказался дистрибутив программы аналогичной, что пользуют с модемом под Windows. Установка с помощью ./install оказалась простой и удобной: спросила куда лучше развернуться, развернула свою JRE, развернула себя. :)
Сия программа видит девайс и устанавливает соединение! Ура, я в Сети. Спасибо ребятам из Мегафона, за продуманность сервиса.
Теперь можно неторопясь ждать, когда все-таки пофиксят это, чтобы проверить это. Т.к. после последнего обновления udev, даже даунгрейд не помогает.
понедельник, 18 января 2010 г.
Сборка примеров plplot под Fedora x86_64
plplot - это чудесная библиотека, позволяющая формировать графики и отображать их на экран либо сохранять в файл. Главная прелесть библиотеки заключается в том, что она позволяет не заморачиваться на GUI и графическом приложении, что мне собственно и понадобилось. Кому интересно, библиотека имеет громадную пачку биндингов от C++ до Perl. Но мне лично нужен C.
Прежде чем встараивать библиотеку в мою прогу, решил я собрать plplot'ские примеры. На моем ноуте живет Fedora x86_64, а програма, которую я разрабатываю собирается пока только под i386. Соответственно, и примеры мне нужно было собрать под i386.
Что установлено:
Для начала скопировал всю директорию с примерами из /usr/share/plplot5.9.5/examples/ к себе в домик.
Локализуем ошибку.
Ага. Информацию о пакете найти не может... Устанавливаем необходимую переменную окружения и идем дальше.
Собираться пытаться начинает, devel-пакета не находит. Помните, что установлен только plplot-devel.i686? Поэтому идем в директорию 'c' и правим Makefile. В параметры сборки добавляем ключ -m32. Так как меня интересовали только примеры на C, то в этой директории я и остался. Собираемся дальше.
Угадайте откуда косяк? Правильно. Собирраем мы теперь 32-битное приложение и зависимости ему нужны 32-битные...
Далее таким же образом выяснилась необходимость qhull-devel.i686, freetype-devel.i686, gtk2-devel.i686, atk-devel.i686, glib2-devel.i686, pango-devel.i686, cairo-devel.i686 и fontconfig-devel.i686. И вуаля:
Результаты работы тестовых примером меня порадовали. Библиотека оказалась именно тем, что мне нужно. А благодаря легкому сексу при сборке примеров, я знаю чего стоит ожидать при сборке своей проги с этой библиотекой...
P.S. Не зря Bugzill'е есть репорт об ошибках при сборке примеров ;) Там, кстати, решили баг не фиксать кажется...
Прежде чем встараивать библиотеку в мою прогу, решил я собрать plplot'ские примеры. На моем ноуте живет Fedora x86_64, а програма, которую я разрабатываю собирается пока только под i386. Соответственно, и примеры мне нужно было собрать под i386.
Что установлено:
$ yum list plplot\*
Installed Packages
plplot.x86_64 5.9.5-1.fc12 @fedora
plplot-devel.i686 5.9.5-1.fc12 @fedora
plplot-libs.i686 5.9.5-1.fc12 @fedora
plplot-libs.x86_64 5.9.5-1.fc12 @fedora
plplot-qt.i686 5.9.5-1.fc12 @fedora
plplot-qt.x86_64 5.9.5-1.fc12 @fedora
plplot-qt-devel.i686 5.9.5-1.fc12 @fedora
plplot-tk.x86_64 5.9.5-1.fc12 @fedora
Для начала скопировал всю директорию с примерами из /usr/share/plplot5.9.5/examples/ к себе в домик.
$ make
cd c; make
make[1]: Entering directory `/home/neuron/study/development/plplot_examples/c'
/usr/bin/gcc x01c.c -o x01c `pkg-config --cflags --libs plplotd`
Package plplotd was not found in the pkg-config search path.
Perhaps you should add the directory containing `plplotd.pc'
to the PKG_CONFIG_PATH environment variable
No package 'plplotd' found
In file included from x01c.c:25:
plcdemos.h:14:22: error: plConfig.h: No such file or directory
plcdemos.h:15:20: error: plplot.h: No such file or directory
plcdemos.h:51:1: warning: "isnan" redefined
In file included from plcdemos.h:10,
from x01c.c:25:
/usr/include/math.h:257:1: warning: this is the location of the previous definition
x01c.c:26:21: error: plevent.h: No such file or directory
...
x01c.c:349: error: ‘y’ undeclared (first use in this function)
make[1]: *** [x01c] Error 1
make[1]: Leaving directory `/home/neuron/study/development/plplot_examples/c'
make: *** [c/x01c] Error 2
Локализуем ошибку.
$ pkg-config --cflags --libs plplotd
Package plplotd was not found in the pkg-config search path.
Perhaps you should add the directory containing `plplotd.pc'
to the PKG_CONFIG_PATH environment variable
No package 'plplotd' found
Ага. Информацию о пакете найти не может... Устанавливаем необходимую переменную окружения и идем дальше.
$ export PKG_CONFIG_PATH=/usr/lib/pkgconfig
$ pkg-config --cflags --libs plplotd
-I/usr/include/plplot -lplplotd -lltdl -ldl -lm -lcsirocsa -lcsironn -lqhull -lqsastime -lfreetype
$ make
cd c; make
make[1]: Entering directory `/home/neuron/study/development/plplot_examples/c'
/usr/bin/gcc x01c.c -o x01c `pkg-config --cflags --libs plplotd`
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.2/../../../libplplotd.so when searching for -lplplotd
/usr/bin/ld: skipping incompatible /usr/lib/libplplotd.so when searching for -lplplotd
/usr/bin/ld: cannot find -lplplotd
collect2: ld returned 1 exit status
make[1]: *** [x01c] Error 1
make[1]: Leaving directory `/home/neuron/study/development/plplot_examples/c'
make: *** [c/x01c] Error 2
Собираться пытаться начинает, devel-пакета не находит. Помните, что установлен только plplot-devel.i686? Поэтому идем в директорию 'c' и правим Makefile. В параметры сборки добавляем ключ -m32. Так как меня интересовали только примеры на C, то в этой директории я и остался. Собираемся дальше.
$ make
/usr/bin/gcc x01c.c -m32 -o x01c `pkg-config --cflags --libs plplotd`
/usr/bin/ld: skipping incompatible /usr/lib64/libltdl.so when searching for -lltdl
/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [x01c] Error 1
Угадайте откуда косяк? Правильно. Собирраем мы теперь 32-битное приложение и зависимости ему нужны 32-битные...
$ rpm -qf /usr/lib64/libltdl.so
libtool-ltdl-devel-2.2.6-17.fc12.x86_64
$ sudo yum install libtool-ltdl-devel.i686
Далее таким же образом выяснилась необходимость qhull-devel.i686, freetype-devel.i686, gtk2-devel.i686, atk-devel.i686, glib2-devel.i686, pango-devel.i686, cairo-devel.i686 и fontconfig-devel.i686. И вуаля:
$ make
/usr/bin/gcc x01c.c -m32 -o x01c `pkg-config --cflags --libs plplotd`
/usr/bin/gcc x02c.c -m32 -o x02c `pkg-config --cflags --libs plplotd`
...
/usr/bin/gcc x31c.c -m32 -o x31c `pkg-config --cflags --libs plplotd`
/usr/bin/gcc x32c.c -m32 -o x32c `pkg-config --cflags --libs plplotd`
Результаты работы тестовых примером меня порадовали. Библиотека оказалась именно тем, что мне нужно. А благодаря легкому сексу при сборке примеров, я знаю чего стоит ожидать при сборке своей проги с этой библиотекой...
P.S. Не зря Bugzill'е есть репорт об ошибках при сборке примеров ;) Там, кстати, решили баг не фиксать кажется...
воскресенье, 20 декабря 2009 г.
Движения разделов или grub потерялся...
Давно хотел синхронизировать свои наработки по учебе накопленные на ноутбуке с тем, что живет на домашнем компьютере.
Сразу стоит оговорится, что с незапамятных времен живет у меня на домашнем компьютере две ОС. Fedora Linux и еще одна известная проприетарная система. Так вот, когда ставил эти системы, то решил, что для домиков в Linux мне вполне хватит нескольких Гб, и почти весь диск (кроме /, /boot, /home и /var) отдал под общий раздел с форматированием присущим той самой проприетарной системе. Соответственно, на этот раздел легло тяжкое бремя хранения мультимедиа-контента и остального хлама. А у этого самого волшебного формата ФС есть неприятная особенность - он понятия не имеет о POSIX-правах доступа :( Здесь-то я как раз и "наступил на грабли"...
Т.к. при виде прав доступа к файлам в 777 у меня сердце кровью обливается, то на точку монтирования (с всем содержимым выли выданы чёткие права) и при попытке взять свежий слепок из svn-репозитария я получал много варнингов/ошибок, мол: "Хозяина, права выставить не могем. Совсем плёхо-плёхо..." И подобный неприятные ощущения всплывали периодически. Последней каплей стала попытка учебную директорию со всем содержимым закатать в bzr-репозиторий. Волшебная ФС вообще не поняла, чего от нее хотят и тупо хлопала глазками в пол...
И тут я понял! А нафига мне под мои видео-музыки так много пространства... Хауса и Друзей давно пора на болванки закатывать и в погреб!
Решил я подвинуть немного разделы :) Благо интересующие меня сущности в таблице разделов располагались близко друг от друга. Между ними буквально /var только затесался.
Дальше тривиально:
- убил лишнее пор^W видео на большом разделе;
- снял dump с /var и /home;
- слил их от греха подальше на ноут;
- подвинул раздел с неext ФС;
- загрузился с Fedora 12 DVD в rescue-режиме;
- cfdisk'ом снес /home и /var;
- им же создал вышеозначенные разделы где и какие надо;
- отформатировал свежие разделы, но уже в ext4;
- восстановил содержимое /home и /var с помощью restore.
Отдельный поклон BSD'ям за dump/restore.
Бутаюсь и получаю первый болт :( Стартует голый GRUB и весело подмигивает курсором. Ну, думаю, таблицу изменял, может где MBR зацепил... Бутнулся обрабно в rescue mode. Провалился в /mnt/sysimage. Дошел ножками до конфигов grub'а. Осмотрел - все на месте. Проинсталил grub заново (grub-install hd0). Бутнулся...
И получил второй болт :( Теперь grub видел свой конфиг, но из меню отрабатывал только chainloader, который вел в ту ось, в которую мне не надо. На законных ядрах grub опять грустно разводил руками... Мол: "Нету здесь ничего, хозяйна... :'( " Как же так, я ж не двигал разделы в начале. Порядок, номера, все на месте осталось...
Ну чтож делать. Подался я гуглить на ноуте, параллельно загружаясь в rescue mode с диска. Нашел несколько несчастных с подобными симптомами, и почитал реплики сочуствующих. Так как проблема ограничивалась конфигом grub'а, то решил покурить его по-внимательнее:
Через некоторое время до меня дошло, а чего это Other живет на (hd0,0), а /boot с ядрами (который идет следом в таблице разделов) на (hd0,2)! Правлю все на (hd0,1) и получаю полностью работоспособную систему.
Собственно был еще один болт. Разделы-то я подвинул, а новые UUID в fstab я не прописал :) Но система ткнула меня в эту оплошность при первой же попытке загрузиться... rescue mode -> blkid -> vim /etc/fstab и все в шоколаде.
Внимание, вопрос! Какого х%#?
Оно ж работало как-то? Или это волшебство произошло при обновлении на Ferora 12-ю, которое недавно перенесла домашняя машина... Если кто подскажет, я крепче спать стану...
Про merge bzr-веток расскажу позже, если чего интересное будет...
Сразу стоит оговорится, что с незапамятных времен живет у меня на домашнем компьютере две ОС. Fedora Linux и еще одна известная проприетарная система. Так вот, когда ставил эти системы, то решил, что для домиков в Linux мне вполне хватит нескольких Гб, и почти весь диск (кроме /, /boot, /home и /var) отдал под общий раздел с форматированием присущим той самой проприетарной системе. Соответственно, на этот раздел легло тяжкое бремя хранения мультимедиа-контента и остального хлама. А у этого самого волшебного формата ФС есть неприятная особенность - он понятия не имеет о POSIX-правах доступа :( Здесь-то я как раз и "наступил на грабли"...
Т.к. при виде прав доступа к файлам в 777 у меня сердце кровью обливается, то на точку монтирования (с всем содержимым выли выданы чёткие права) и при попытке взять свежий слепок из svn-репозитария я получал много варнингов/ошибок, мол: "Хозяина, права выставить не могем. Совсем плёхо-плёхо..." И подобный неприятные ощущения всплывали периодически. Последней каплей стала попытка учебную директорию со всем содержимым закатать в bzr-репозиторий. Волшебная ФС вообще не поняла, чего от нее хотят и тупо хлопала глазками в пол...
И тут я понял! А нафига мне под мои видео-музыки так много пространства... Хауса и Друзей давно пора на болванки закатывать и в погреб!
Решил я подвинуть немного разделы :) Благо интересующие меня сущности в таблице разделов располагались близко друг от друга. Между ними буквально /var только затесался.
Дальше тривиально:
- убил лишнее пор^W видео на большом разделе;
- снял dump с /var и /home;
- слил их от греха подальше на ноут;
- подвинул раздел с неext ФС;
- загрузился с Fedora 12 DVD в rescue-режиме;
- cfdisk'ом снес /home и /var;
- им же создал вышеозначенные разделы где и какие надо;
- отформатировал свежие разделы, но уже в ext4;
- восстановил содержимое /home и /var с помощью restore.
Отдельный поклон BSD'ям за dump/restore.
Бутаюсь и получаю первый болт :( Стартует голый GRUB и весело подмигивает курсором. Ну, думаю, таблицу изменял, может где MBR зацепил... Бутнулся обрабно в rescue mode. Провалился в /mnt/sysimage. Дошел ножками до конфигов grub'а. Осмотрел - все на месте. Проинсталил grub заново (grub-install hd0). Бутнулся...
И получил второй болт :( Теперь grub видел свой конфиг, но из меню отрабатывал только chainloader, который вел в ту ось, в которую мне не надо. На законных ядрах grub опять грустно разводил руками... Мол: "Нету здесь ничего, хозяйна... :'( " Как же так, я ж не двигал разделы в начале. Порядок, номера, все на месте осталось...
Ну чтож делать. Подался я гуглить на ноуте, параллельно загружаясь в rescue mode с диска. Нашел несколько несчастных с подобными симптомами, и почитал реплики сочуствующих. Так как проблема ограничивалась конфигом grub'а, то решил покурить его по-внимательнее:
# cat /boot/grub/grub.conf
default=0
timeout=2
splashimage=(hd0,2)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.31.6-166.fc12.x86_64)
root (hd0,2)
kernel /vmlinuz-2.6.31.6-166.fc12.x86_64 ro root=UUID=fff0ee4c-021c-45e4-84fd-de8bdd25e731 rhgb SYSFONT=latarcyrheb-sun16 LANG=ru_RU.UTF-8 KEYTABLE=us nomodeset
initrd /initramfs-2.6.31.6-166.fc12.x86_64.img
title Fedora (2.6.31.5-127.fc12.x86_64)
root (hd0,2)
kernel /vmlinuz-2.6.31.5-127.fc12.x86_64 ro root=UUID=fff0ee4c-021c-45e4-84fd-de8bdd25e731 rhgb SYSFONT=latarcyrheb-sun16 LANG=ru_RU.UTF-8 KEYTABLE=us nomodeset
initrd /initramfs-2.6.31.5-127.fc12.x86_64.img
title Other
rootnoverify (hd0,0)
chainloader +1
Через некоторое время до меня дошло, а чего это Other живет на (hd0,0), а /boot с ядрами (который идет следом в таблице разделов) на (hd0,2)! Правлю все на (hd0,1) и получаю полностью работоспособную систему.
Собственно был еще один болт. Разделы-то я подвинул, а новые UUID в fstab я не прописал :) Но система ткнула меня в эту оплошность при первой же попытке загрузиться... rescue mode -> blkid -> vim /etc/fstab и все в шоколаде.
Внимание, вопрос! Какого х%#?
Оно ж работало как-то? Или это волшебство произошло при обновлении на Ferora 12-ю, которое недавно перенесла домашняя машина... Если кто подскажет, я крепче спать стану...
Про merge bzr-веток расскажу позже, если чего интересное будет...
четверг, 28 мая 2009 г.
Если Вы пытаетесь поставить Fedora 10 (или около того) на сервер с RAID-контроллером от Adaptec, то скорее всего вы сталкнетесь с тем, что система встанет нормально, но загружаться не захочет. А дело в том, что образе initrd не хватает модуля i2o_block. Решение простое: пересобрать initrd с нужным модулем.
Ниже пример с использованием Fedora install CD в rescue режиме:
chroot /mnt/sysimage
rm /boot/initrd-2.6.27.24-170.2.68.fc10.i686.img
mkinitrd --with=i2o_block /boot/initrd-2.6.27.24-170.2.68.fc10.i686.img 2.6.27.24-170.2.68.fc10.i686
Ниже пример с использованием Fedora install CD в rescue режиме:
chroot /mnt/sysimage
rm /boot/initrd-2.6.27.24-170.2.68.fc10.i686.img
mkinitrd --with=i2o_block /boot/initrd-2.6.27.24-170.2.68.fc10.i686.img 2.6.27.24-170.2.68.fc10.i686
Подписаться на:
Сообщения (Atom)