четверг, 6 июня 2013 г.
понедельник, 27 мая 2013 г.
Linux: Продолжаю осваивать git
Собственно, возникла простая задача:
1. Поднять на "сервере" сервер git (это не тавтология)
2. Научиться с репозиториями этого сервера работать по ssh.
Первая задача в первом приближении решилась просто: скачиваем исходники git одним архивом, разархивируем, читаем внимательно файл INSTALL, выполняем команды:
Вторая задача, как оказалось, тоже не бином Ньютона. Если, конечно, внимательно прочитать инструкцию. Или полезные указания опытных людей. Или ещё что-нибудь.
Но это всё, конечно, не про меня. Узнав про команду ssh-keygen и обрадовавшись открывшимся возможностям я полез заводить юзера git, создавать домашнюю папку, давать разрешения и т.п. В результате каких-то вычурных команд репозиторий обосновался в домашней папке этого пользователя, а сам пользователь получил возможность интерактивного входа в систему. Кошмар. (Зато научился блокировать и разблокировать пользователя командами passwd -l git и passwd -u git)
Короче говоря, сделал так. В папке /opt создал символическую ссылку на папку с репозиторием (этот репозиторий с проектами будет жить на отдельном диске), и принял следующую схему работы при создании нового проекта.
На сервере выполняем команды:
На клиенте выполняем команды
Если когда-нибудь этот репозиторий перекочует, можно будет сменить оригины командой
Ну, эта схема ещё явно не окончательная.
Кстати, набрёл еще на одну памятку. Может, пригодится...
Важное дополнение: клиент git под Windows как-то странно рисует кириллические имена файлов. Вроде бы научить его русскому языку удалось командой:
1. Поднять на "сервере" сервер git (это не тавтология)
2. Научиться с репозиториями этого сервера работать по ssh.
Первая задача в первом приближении решилась просто: скачиваем исходники git одним архивом, разархивируем, читаем внимательно файл INSTALL, выполняем команды:
$ make configure $ ./configure --prefix=/usr $ make all doc # make install install-doc install-htmlв общем, на вид ничего сложного, справится даже такой тупень, как я.
Вторая задача, как оказалось, тоже не бином Ньютона. Если, конечно, внимательно прочитать инструкцию. Или полезные указания опытных людей. Или ещё что-нибудь.
Но это всё, конечно, не про меня. Узнав про команду ssh-keygen и обрадовавшись открывшимся возможностям я полез заводить юзера git, создавать домашнюю папку, давать разрешения и т.п. В результате каких-то вычурных команд репозиторий обосновался в домашней папке этого пользователя, а сам пользователь получил возможность интерактивного входа в систему. Кошмар. (Зато научился блокировать и разблокировать пользователя командами passwd -l git и passwd -u git)
Короче говоря, сделал так. В папке /opt создал символическую ссылку на папку с репозиторием (этот репозиторий с проектами будет жить на отдельном диске), и принял следующую схему работы при создании нового проекта.
На сервере выполняем команды:
$ cd /opt/git $ mkdir newProject $ cd newProject $ git init --bare $ git commit -m 'Initial commit'
На клиенте выполняем команды
$ cd newProject $ git init $ git remote add origin mylogin@myserver:/opt/git/newProject $ git pull origin master
Если когда-нибудь этот репозиторий перекочует, можно будет сменить оригины командой
$ git remote set-url origin mylogin@myserver:/new-git-repository/newProject(кстати, текущие значения этих оригинов в текстовом виде хранятся в папке проекта в файле .git/config)
Ну, эта схема ещё явно не окончательная.
Кстати, набрёл еще на одну памятку. Может, пригодится...
Важное дополнение: клиент git под Windows как-то странно рисует кириллические имена файлов. Вроде бы научить его русскому языку удалось командой:
$ git config --global core.quotepath false
вторник, 21 мая 2013 г.
Slackware: DosBox 0.74
Пытался тут себе поставить этот самый DosBox 0.74. Всё бы ничего, но команда make при компиляции из исходников ругается примерно так: expected primary-expression before «,» token.
Как выяснилось, есть специальный патч:
http://slackbuilds.org/slackbuilds/14.0/system/dosbox/dosbox-0.74-gcc46.patch
С этим патчем получилось весело. Содержимое этого чудесного файла представляет из себя коротенький текст, но текст не простой, а набор команд для специальной утилиты patch, о существовании которой я - позор, позор - доселе и не подозревал.
В общем, скачиваем файл, кладём его в папку с исходником DosBox-а, выполняем команду
Как выяснилось, есть специальный патч:
http://slackbuilds.org/slackbuilds/14.0/system/dosbox/dosbox-0.74-gcc46.patch
С этим патчем получилось весело. Содержимое этого чудесного файла представляет из себя коротенький текст, но текст не простой, а набор команд для специальной утилиты patch, о существовании которой я - позор, позор - доселе и не подозревал.
В общем, скачиваем файл, кладём его в папку с исходником DosBox-а, выполняем команду
patch -p0 dosbox-0.74-gcc46.patchи спокойно компилируем.
понедельник, 29 апреля 2013 г.
Linux: терминал
Почему-то в терминале перестала работать клавиша Delete. Вместо того, чтобы удалять символ, рисует тильду (~).
Решение такое: в ~/.inputrc добавить строку:
Решение такое: в ~/.inputrc добавить строку:
"\e[3~": delete-char
воскресенье, 14 апреля 2013 г.
Debian: устанавливаем I2P
Захотелось тут подключиться к I2P. Нет, мамаша, дети могут не выходить. Нет, не весна. Просто совпало. В общем, установка всего этого богатства расписана тут. Вкратце:
1. Выполняем команду:
2. Создаём файл /etc/apt/sources.list.d/i2p.list со строками:
3. Выполняем команду:
4. Инсталлируем требуемый софт:
Дальше конфигурируем способ запуска роутера командой
Но этого оказалось мало.
Во-первых, захотелось, чтобы эта штука жила на отдельном компе, который у меня "сервер" для всяких tor-ов, торрентов и т.п. Выяснилось, что по умолчанию i2p-роутер сконфигурирован так, чтобы принимать клиентские подключения только с 127.0.0.1. Однако, если зайти в админку,
Во-вторых, захотелось, чтобы Opera пользовалась этой штукой хитро: на обычные сайты ходила по-прежнему через tor, а на сайты с именами вида *.i2p - через этот новый i2p-роутер. Оказывается, нужно отредактировать файл ~/.opera/override.ini примерно так:
Вот тогда стало всё ок.
1. Выполняем команду:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EB2CC88B
2. Создаём файл /etc/apt/sources.list.d/i2p.list со строками:
deb http://ppa.launchpad.net/i2p-maintainers/i2p/ubuntu natty main deb-src http://ppa.launchpad.net/i2p-maintainers/i2p/ubuntu natty main
3. Выполняем команду:
sudo apt-get update
4. Инсталлируем требуемый софт:
sudo apt-get install i2p
Дальше конфигурируем способ запуска роутера командой
sudo dpkg-reconfigure i2pпрописываем в браузере прокси для HTTP - 127.0.0.1:4444, и для HTTPS - 127.0.0.1:4445, и вроде как всё.
Но этого оказалось мало.
Во-первых, захотелось, чтобы эта штука жила на отдельном компе, который у меня "сервер" для всяких tor-ов, торрентов и т.п. Выяснилось, что по умолчанию i2p-роутер сконфигурирован так, чтобы принимать клиентские подключения только с 127.0.0.1. Однако, если зайти в админку,
http://localhost:7657/i2ptunnel/edit.jsp?tunnel=0то можно там изменить настройки точки доступа на сетевой интерфейс 192.168.xxx.xxx.
Во-вторых, захотелось, чтобы Opera пользовалась этой штукой хитро: на обычные сайты ходила по-прежнему через tor, а на сайты с именами вида *.i2p - через этот новый i2p-роутер. Оказывается, нужно отредактировать файл ~/.opera/override.ini примерно так:
[Overrides] ... i2p ... [i2p] Proxy|Use HTTP=1 Proxy|HTTP server=192.168.xxx.xxx:4444 Proxy|HTTPS server=192.168.xxx.xxx:4445
Вот тогда стало всё ок.
четверг, 11 апреля 2013 г.
SQL Server: Показать разрешения пользователя на объект
Оказывается, просто:
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT * FROM fn_my_permissions('AdventureWorks2012.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name ;
REVERT;
GO
вторник, 9 апреля 2013 г.
Windows: MiKTeX и расстановка переносов
Обнаружилось, что древний(?) MiKTeX 2.6 не расставляет переносы.
Как оказалось, проблема решается следующим способом:
1. В файле \tex\generic\config\language.dat нужно найти и раскомментировать (или добавить, как повезёт) следующие строки:
2. Зайти в папку \tex\generic\ruhyphen и скопировать в папку \texmf\tex\generic\hyphen все файлы вида ru*.tex и enru*.tex.
3. Зайти в папку \miktex\bin и выполнить команду:
4. Команда из предыдущего пункта ругается LaTeX source files more than 5 years old! и ничего не делает. Как выяснилось, это обходится так:
- открываем файл \tex\latex\base\latex.ltx
- находим там строку \ifnum\count@>65 и меняем её на \ifnum\count@>100
5. После этого читерства команда из п.3 выполняется без ошибок.
Как оказалось, проблема решается следующим способом:
1. В файле \tex\generic\config\language.dat нужно найти и раскомментировать (или добавить, как повезёт) следующие строки:
\russian ruenhyph.tex =russian
2. Зайти в папку \tex\generic\ruhyphen и скопировать в папку \texmf\tex\generic\hyphen все файлы вида ru*.tex и enru*.tex.
3. Зайти в папку \miktex\bin и выполнить команду:
initexmf --dumpИ вот тут начинаются чудеса.
4. Команда из предыдущего пункта ругается LaTeX source files more than 5 years old! и ничего не делает. Как выяснилось, это обходится так:
- открываем файл \tex\latex\base\latex.ltx
- находим там строку \ifnum\count@>65 и меняем её на \ifnum\count@>100
5. После этого читерства команда из п.3 выполняется без ошибок.
Подписаться на:
Сообщения (Atom)