понедельник, 27 мая 2013 г.

Linux: Продолжаю осваивать git

Собственно, возникла простая задача:
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-а, выполняем команду
patch -p0 dosbox-0.74-gcc46.patch
и спокойно компилируем.