нельзя, в основном по причине того что родной бинарный от фри предназначен для размещения в системных каталогах типа /usr/bin, /usr/sbin, /usr/lib/… Попытка просто закинуть его в свой домашний каталог завершилась неудачей. При запуске бинарники ругались. Конкретных ошибок уже не вспомню, но точно помню что такой вариант мы пробовали, и ничего не вышло.
Вот ничего себе, не думал, что если собрать бинарник на другой тачке пусть даже с той же версией оси, всё будет работать… Надо поэкспериментировать… :) А вы молодцы, всё таки выкрутились для решения задачи.
Ага, подходит ллинуксоид, вставляет флешку и давай свои portable apps компилировать)))
Не вводит людей в заблуждение. Без компилятора, make, +100 извратов, чтобы просто заставить программу работать в нестандартной папке, большинство программ не пойдет. Ставить программы без прав админа —сплошной геморрой, никаких тебе менджеров пакетов и прочее, сам ищи и компилируй зависимости, да еще и нужной версии.
почему у меня частенько получается скачать тарболл с бинарниками (именно с бинарниками), тупо распаковать куданить в ~, добавить в PATH и всё? с десяток прог у меня установлены именно так.
Собирать можно с ключём типа -all-static тогда все зависимости будут уже скомпилированы в этот бинарник, размер получится, конечно, намного больше, но зато и больше уверенности что приложение запустится на другой машине даже с разными версиями зависимых библиотек
pkg_add -r subversion
или как-то в том же духе — давно фряху не трогал.
Svn имеет замечательную тулзу — svnserve. И после «svnadmin create /pub/home/megauser/myrepo» можно подправить внутри созданой папки конфиги, описав там пользователей и права. После чего сделать
svnserve -d --listen-port=PORT_YOU_WANT -r /pub/home/megauser/myrepo
1) pkg_add требует прав рута, мы же поднимали всё это дело на шаред-хостинге с одним единственным ssh-аккаунтом без всяких прав кроме записи в свой домашний каталог.
2) svnserve — замечательная тулза, никто не спорит :) Но постоянно висящий в процессах демон, которого быть не должно — рано или поздно будет замечен админами и прибит.
Не слышал раньше ничего про mercurial-репозиторий, но:
1) не уверен что его очень легко устроить, учитывая отсутствие питона и всяких прав кроме как на запись в свой дом
2) нам нужен был именно SVN — привычка и экономия времени. Нас он полностью устраивает.
Если Вы имеете в виду всякие параноидальные ограничения хостеров в виде патчей ядра, которые перед запуском любого бинарника проверяют «свой» он или нет — то таких извращений у нашего хостера нет. Сами понимаете, если Вам нужно что-то ужасное сделать, то вы сможете в итоге это сделать на том же php/perl/python/shell (смотря что есть у хостера в списке «своих» бинарников), и тогда вся это параноидальность теряет смысл.
А, понял. Нет, такого ограничения нет… Помоему из-за того что там включена поддержка «cgi-bin», а может по другим причинам… Но согласитесь, даже имея раздел с noexec, я могу разместить на нём тот же php/perl/python/shell скрипт, который потом смогу запустить например так: /usr/bin/perl ./my-mega-script. Поэтому такое ограничение — не панацея.
Мы уже привыкли :) Даже уже не помню как перешли с CVS на SVN, это было давно. А размер не парит в нашем случае. Вдобавок лично нам было легче настроить всё что нам было нужно для SVN чем для CVS:
— права доступа к различным проектам в репозитории
— commit-email
— ту самую возможность ходить под разными юзерами в репозиторий имея только один SSH-аккаунт.
Как это делать в случае CVS мы даже примерно не знаем, и пришлось бы много читать.
Всяко не CVS. История отдельная для каждого файла (в смысле что нельзя посмотреть историю коммитов в папку, нет понятия текущей ревизии для дерева), переименовать файл нельзя, перенести в другую папку нельзя, все операции неатомарные, бранчинг и тэггинг при большом количестве файлов тормозит (а из-за того, что он не атомарный при обрыве связи половина файлов будет потагана, половина нет).
А знаете почему в SVN рабочая копия в 2 раза больше рабочей копии CVS? Потому что SVN хранит копии файлов, полученных при чекауте/апдейте, чтобы можно было не ходя на сервер определить что изменилось и посмотреть диффы.
А место экономить с сегодняшними ценами на носители данных это я даже не знаю…
За минусы всем спасибо. Объясню свою ситуацию. Работаю одинаково хорошо в SVN и CVS. Что касаемо веб разработок. У меня порядка 10 мелких VPS по 1 гигу на каждом. Ежедневный бекап по размеру у CVS меньше в 2 раза. Итого качать меньше. Конечно можно выкинуть .svn папку — но у CVS этого делать не нада.
Инет в регионах бывает по модему и тянуть бекап с сервака бывает натяжно. И работаю я в vim, а не в миднайт командоре. Для C++ проектов использую SVN.
Очень частая ситуация — это загрузка пользователем картинок, файловые базы данных. Бэкапить приходится именно рабочую версию — та что на сайта. Так же иногда приходится править код — делать хотфиксы.
Интересно, но я бы назвал статью «SVN на shared-хостинге», потому что VDS — это тоже виртуальный хостинг. Я вот пока не зашел на valuehost, не понял, в чем вообще проблема.
Не сочтите за рекламу, но самый простой виртуальник, на firstvds.ru к примеру, в месяц стоит как одна кружка приличного пива, может ну его нафиг этот валуехост?
Дело в том, что аккаунт на валуехосте уже был, переезжать решили чуть позже, уже на нормальный vps. А в качестве временного решения решили остаться где и были, но прикрутить svn, который потом спокойно перенесём на новый vps. Вдобавок было интересно поднять svn именно там где нужен, а не прыгать к другому хостеру только из за наличия у него svn.
Для таких случаев есть специальные сервисы.
Подробнее можно почитать scrum.org.ua/kak-vybrat-besplatnyj-svn-xosting/
Правда бывший лидер assembla начал мутить воду с вводом платных аккаутнов
Да, мы думали о таком варианте, но (как минимум на тот момент, когда мы искали) бесплатных svn-хостингов с приемлемым:
— максимальным размером репозитория
— скоростью работы с репозиторием
— аптаймом
— возможностью сделать столько юзеров, сколько нам нужно
мы не нашли. Поэтому и решили проблему таким образом, как описано в статье.
В любом случае, даже если устраивающий нас бесплатный svn-хостинг мы бы нашли — нам скорее всего нужен был бы svn на сервере хостера, чтобы получать туда последние ревизии проекта. Иначе процедура выкладывания последней ревизии в бой была бы неудобной.
у обоих только 1 проект вести можно, 2 пользователя… скудно как-то… ассембла рулила раньше. Вы не в курсе, нет бесплатного метров на 100, 2-3 проекта и 3-4 пользователя?
за 9-10 у.е. в месяц (как у двоих вышеуказанных) можно подумать о впс уже)
У меня такое чувство что можно обойтись без всего этого геммора с компиляцией пакетов. Достаточно создать репозиторий svnadmin create, на любой (домашней или рабочей) системе, перенести эту папку на хостинг и затем пользоваться subversion через svn+ssh
Чтобы пользоваться subversion через svn+ssh нужно чтобы на удалённой стороне (то есть как раз на сервере хостера) была как минимум svnserve, которая и будет в туннельном режиме (ключ -t) обрабатывать svn+ssh соединения. Сам SSH для этого не предназначен. Вдобавок для полноценной работы репозитория на этом же сервере нужна утилита svnlook, а возможно и другие. Поэтому так просто не получится.
Не понятен смысл некоторых комментариев: «Делай ..., не заморачивайся», «А на… уже всё есть.». Автор показал способ обхода ограничения хостинга, что довольно интересно и ново(по крайней мере для меня). Таким способом можно поставить не только SVN, я уверен. Человек заморочился, решил проблему, остался на привычном хостинге, не переплачивал за услуги и поделился опытом с нами, разве не для этого нужен хабр?
Спасибо, duncanf1.
duncanf1, пожалуйста, расскажите поподробнее для тупых :)
Вроде все настроил как описано. При подключении к svn+ssh://server.of.your.hoster.ru/ (где server.of.your.hoster.ru заменил на свой домен) через Tortosie TortosiePlink спрашивает какой-то пароль. Какой и как его указать?
Еще не уверен, что правильно сгенерировал ключи (никогда этого не делал), может расширите статью и расскажите как это сделать с помощью какой-нибудь конкретной программы?
Пароль, который запрашивает TortoisePlink при верных настройках — это может быть только пароль от Вашего публичного ключа. Если Вы генерировали ключ с пустым паролем — значит что-то настроено неверно.
Насчет генерации ключей, расскажу на примере PuttyGen:
— запускаете puttygen.exe, внизу окна выбираете (если оно не выбрано) SSH2-RSA, количество бит можете оставить 1024, можете сделать 2048 для пущей убедительности.
— нажимаете кнопку «Generate»
— елозите мышкой по окну программы для генерации рандомных чисел, нужных программе для создания ключа
— когда генерация ключа завершится, в поля Key passphrase и Confirm passphrase можете вбить пароль ключа, тогда при коннекте к репозиторию TortoisePlink будет запрашивать у Вас именно этот пароль. Если оставите эти поля пустыми — пароль запрашиваться не будет.
— нажимаете кнопку «Save private key» и сохраняете приватный ключ куда нибудь на свой компьютер.
— дальше зависит от операционки на сервере:
— в случае линукса: копипастите текст из поля «Public key for pasting into OpenSSH authorized_keys file:», и добавляете эту строку в ~/.ssh/authorized_keys на сервере. В начале этой строки дописываете: command="/pub/home/megauser/myroot/bin/svnserve -t -r /pub/home/megauser/myrepo -t --tunnel-user=virtual_user_name"
— в случае FreeBSD или другой ОС, где стоит ssh от ssh.com а не OpenSSH: нажимаете кнопку «Save public key», сохраняете файл куда нибудь, затем копируете его содержимое в файл ~/.ssh2/id_rsa_<virtual_user_name>.pub, а дальше в файле ~/.ssh2/authorization прописываете 2 строки как описано в статье (Key и Options)
— затем даете всем созданным в ~/.ssh или ~/.ssh2 файлам правильные права (0600)
— и наконецто создаёте в Putty копию сессии, через которую вы коннектитесь к своему хостеру, в ней в закладке SSH->Auth заменяете или прописываете путь к приватному ключу, который вы сохранили нажав «Save private key». Потом TortoisePlink-у говорите чтобы он использовал эту сессию (там есть соответствующий параметр командной строки).
Ну вот вроде бы и все, если будут проблемы — пишите.
Благодарю, видимо получилось, так как теперь Tortosie говорит: «Invalid Port Number». Наверно порт закрыт, можно ли как-то это обойти?
Мучаю я хостинг РБК (hc.ru) тариф большой. Все для СВНа там уже стояло, так что я как сказал автор сразу перешел к пункту 4. Репозиторий создался без проблем, а как достучаться до него…
Свой SVN на виртуальном (shared) хостинге