‫راه اندازی git server در ویندوز با استفاده از CopSSH

یکی از راه‌های نصب git به صورت سرویس ویندوز، استفاده از CopSSH می‌باشد. مراحل انجام این کار در ویندوز ۷ (۳۲ بیتی) به صورت زیر است:

۱- دریافت CopSSH و نصب آن.

۲- حتماً مسیر نصب را از Program Files به مسیری در C:‎ مثل C:SSH تغییر دهید. در غیر این صورت در مراحل بعدی به خاطر وجود کاراکتر «فاصله» در فولدر Program Files دچار مشکل خواهید شد.

۳- در بقیه مراحل پیش فرض‌های خود برنامه نصب را بدون تغییر قبول کنید.

۴- Passwordی که به اکانت SvcCOPSSH اختصاص می‌دهید فراموش نکنید.

۵- بعد از اتمام مراحل نصب، با استفاده از COPSSH Control Panel کاربر فعلی ویندوز را انتخاب کرده و آن را به فهرست Activated users اضافه کنید. فرض می‌کنیم نام کاربر mohebbi و نام کامپیوتر Amir-PC است. در این مرحله چیزی شبیه به این دیده می‌شود:

۶- برنامه PuTTY را دریافت و نصب کنید. PuTTY مجموعه‌ای از چند برنامه است که ما فقط با دو تا از آنها کار داریم. اگر TortoiseGIT را در سیستم‌تان نصب دارید، آن دو تا برنامه را در فولدر TortoiseGIT هم می‌توانید پیدا کنید.

۷- با استفاده از برنامه PUTTYGEN یک کلید عمومی و یک کلید خصوصی بسازید.

۸- کلید عمومی را در فایلی به نام authorized_keys ذخیره کنید. این فایل باید در مسیر c:usersmohebbi.ssh قرار بگیرد.

۹- کلید خصوصی را با نام private_key.ppk در مسیر C:SSHhomemohebbi.ssh ذخیره کنید. استفاده از passphrase اختیاری است.

۱۰- فایل ‎.bashrc که در مسیر C:SSHhomemohebbi قرار دارد را با ویرایشگر خوبی مثل Visual Studio باز کنید.

۱۱- خط  User dependent .bashrc file را پیدا کرده و زیر آن خط export HOME=/c/SSH/home/mohebbi را اضافه کنید. bach به بود و نبود فاصله‌ها و کوچک و بزرگ بودن حروف خیلی حساس است. پس ممکن است مجبور شوید اول و آخر این خط را کمی دستکاری کنید.

۱۲- از همین فایل یک کپی تهیه کرده و در آدرس c:usersmohebbi قرار دهید.

۱۳- Unix BASH Shell را از منوی Copssh اجرا کرده و دستور echo $HOME را در آن صادر کنید. با فرض این که msysgit را نصب کرده‌اید، Git Bash را هم اجرا کرده و مجدداً دستور echo $HOME را در آنجا هم صادر کنید. خروجی هر دوی آن باید یک چیز باشد و آن هم: /c/SSH/home/mohebbi

اگر این طور نبود مراحل ۱۱ و ۱۲ را آنقدر تکرار کنید تا مسئله حل شود.

۱۴- msysgit که همان توزیع اصلی git در ویندوز است را نصب کنید. اما باز هم در مسیر root درایو C نصب کنید. نه در Program Files.

۱۵- کل محتویات شاخه‌های bin و libexecgit-core از محل نصب git را به شاخه bin فولدر نصب SSH کپی کنید. راه درست انجام این کار تنظیم صحیح Path و سایر متغیر محیطی ویندوز و بعضی تنظیمات bash است. اما من چون راه بهتری پیدا نکردم از این راه استفاده کردم.

۱۶- برنامه PAGEANT از مجموعه PuTTY را اجرا کنید. این برنامه به طور خودکار در tray قرار می‌گیرد. روی آن دابل کلیک کرده و کلید private_key.ppk را از آدرس C:SSHhomemohebbi.ssh به آن اضافه کنید.

۱۷- برنامه PAGEANT باید همیشه در حال اجرا باشد. پس بهتر است آن را به startup ویندوز اضافه کنید. دادن مسیر کلید خصوصی فراموش نشود.

۱۸- مراحل نصب تمام شد. حالا در مسیر C:SSHhomemohebbi یک شاخه با اسم فرضی myapp.git بسازید. با کمک git، شاخه myapp.git را به یک bare repo تبدیل کنید. اینجا همان repo است که قرار است دیگران از طریق سرویس ویندوز شما به آن دسترسی پیدا کنند.

۱۹- مراحل نصب به پایان رسید. حالا از یک کامپیوتر دیگر با استفاده از git client دلخواه خود، مثلاً TortoiseGit، به git server جدیدتان وصل شده و با وارد کردن آدرس ssh://mohebbi@amir-pc/SSH/home/mohebbi/myapp.git یک clone از مخزن تهیه کنید.

۲۰- کل مراحل به پایان رسید. حال فقط چند فایل را به طور امتحانی commit و push/pull کنید تا مطمئن شوید همه چیز درست است.

راه اندازی git server با استفاده از ویندوز کار چندان راحتی نیست. حین اجرای این مراحل مشکلات خیلی زیادی ممکن است به وجود بیاید. این مشکلات باید با سعی و خطای فراوان، حوصله و کمی مطالعه و خلاقیت حل شوند. من کل این مراحل را با استفاده از ویندوز هفت ۳۲ بیتی و آخرین نسخه هر یک از ابزارهای ذکر شده در تاریخ ۲۶ فروردین ۱۳۸۹ انجام دادم. این راهنما خودش بر اساس راهنمای tim davis و راهنمای مربوطه در TortoiseGit نوشته شده است. در صورت بروز مشکل می‌توان از این دو راهنما هم استفاده کرد. اما دقت کنید که راهنمای tim davis بر اساس نسخه‌های قدیمی ابزارها نوشته شده و راهنمای TortoiseGit هم به جای تکیه بر git استاندارد به خود TortoiseGit وابستگی دارد.

Comments

  1. وحيد نصيرى

    كشف CopSSH ، كشف بزرگي بود! براي بار اول، نصب OpenSSH توسط CygWin حدودا يك روز كامل طول كشيد (با تمام تنظيمات). البته نه بخاطر GIT بلكه به خاطر TCP Port forwarding آن در آن زمان.

  2. afsharm

    ‫البته همین CopSSH هم به علاوه سعی و خطاهای انجام شده برای راه حل های دیگه یک جمعه کامل از ۸ صبح تا ۲ نصفه شب را از من گرفت!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *