خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

استفاده از سیستم کنترل نسخه برانداز در سرور

سرور مخزن svn خود را راه اندازی می کنید؟ آنقدرها هم که به نظر می رسد پیچیده نیست.

Subversion یک سیستم ردیابی نسخه منبع باز است. این فایل ها را در یک مخزن مرکزی نگه می دارد و کنترل نسخه را روی دایرکتوری ها یا فایل ها فراهم می کند. به‌عنوان یک توسعه‌دهنده، می‌توانید فایل‌های پروژه را از یک مخزن بیرون بکشید، تغییراتی در آن‌ها ایجاد کنید و دوباره آن‌ها را به عقب برگردانید.

Subversion همچنین دارای یک جزء سرور است که می توانید از آن برای میزبانی پروژه های خود استفاده کنید. بسیار شبیه به یک فایل سرور معمولی کار می کند.

نحوه نصب Subversion

براندازی برای نصب آسان است. برای شروع توزیع خود می توانید از دستور مناسب استفاده کنید:

# Debian, Ubuntu
sudo apt install subversion apache2 libapache2-mod-svn

# CentOS, Fedora, RHEL
sudo dnf install subversion apache2 mod_dav_svn

توجه داشته باشید که این دستور وب سرور Apache2 را نیز نصب می کند. اگر می خواهید از طریق HTTP یا WebDAV به مخزن Subversion دسترسی داشته باشید، به یک وب سرور نیاز دارید. شما همچنین می توانید از HTTPS استفاده کنید، برای این کار فقط باید یک گواهی دیجیتال را نصب و پیکربندی کنید.

هنگامی که این دستور را اجرا کردید، می توانید بررسی کنید که براندازی به درستی نصب شده است. اکنون باید بتوانید دستور svn را اجرا کنید و می توانید نسخه فعلی را با استفاده از گزینه –version مشاهده کنید:

خروجی از دستور "svn version" نسخه 1.14.1 را نشان می دهد.

پیکربندی سرور با براندازی

اگر نصب بدون مشکل انجام شد، اکنون می توانید روی پیکربندی مخزن که با svn استفاده می کنید شروع به کار کنید. البته، برای این کار باید یک مخزن جدید ایجاد کنید. ابتدا یک پوشه در یک پوشه ریشه برای قرار دادن مخزن خود ایجاد کنید:

sudo mkdir /subversion

اگر نیاز به دسترسی به مخزن خود با استفاده از WebDAV از طریق HTTP دارید، باید به آپاچی مالکیت دایرکتوری آن را بدهید. از آنجایی که آپاچی به طور پیش فرض از کاربر www-data استفاده می کند، این کاربر را به صورت زیر مجاز کنید:

sudo chown www-data:www-data /subversion

اکنون می توانید به کاربر www-data بروید و شروع به کار بر روی مخزن خود کنید. دستوری که برای ورود به عنوان کاربر www-data استفاده می کنید این است:

sudo su -s /bin/bash www-data

شما اکنون یک کاربر آپاچی هستید و پس از این مرحله می توانید مخزن Subversion خود را به صورت زیر ایجاد کنید:

svnadmin create /subversion/myrepo

شما اکنون یک مخزن Subversion دارید. برای اینکه این مخزن کمی ایمن تر شود و کاربران آن شناسایی شوند، قدم بعدی ایجاد یک کاربر و تعیین رمز عبور برای آن است. برای این کار از دستور زیر استفاده کنید:

htpasswd -cmb /subversion/passwd myadmin mypass

طبق این دستور نام کاربری شما myadmin و پسورد شما mypass خواهد بود. شما می توانید این مقادیر را به هر چیزی که برای شرایط شما مناسب است تغییر دهید.

مخزن Subversion شما اکنون آماده استفاده است. در این مرحله می توانید با استفاده از دستور exit از کاربر www-data خارج شوید.

subversion-repository-create-and-user-password

اکنون می توانید با استفاده از دستور زیر یک پروژه یا فایل مورد نظر را به مخزن خود ارسال کنید:

sudo svn import <your-project-address> file:///subversion/myrepo -m "First Commit"

این دستور از پارامتر import استفاده می کند تا همه چیز را در پوشه پروژه شما به مخزن Subversion شما منتقل کند. در حین انجام این کار، باید پیام commit را با پارامتر -m اضافه کنید.

subversion-repo-first-commit-with-import-and-commit

استفاده از روش های دسترسی در براندازی

ممکن است متوجه شده باشید که از پروتکل file:// برای اضافه کردن پروژه به مخزن خود استفاده می کنید. این تنها یکی از چندین پروتکل شبکه است که می توانید برای دسترسی به مخزن svn استفاده کنید. همچنین می توانید از پروتکل WebDAV روی HTTP یا HTTPS یا پروتکل svn سفارشی subversion استفاده کنید.

دسترسی مستقیم به مخزن

همانطور که مشاهده کردید، می توانید از پروتکل file:// برای دسترسی به یک مخزن محلی استفاده کنید. در اینجا چگونه می توانید یک مخزن محلی را در فهرست فعلی خود بررسی کنید:

svn co file:///subversion/myrepo

هنگامی که مخزن را بررسی می کنید، svn لیستی از فایل های موجود در آن را نمایش می دهد:

svn-repo-control-with-checkout-command

دسترسی با استفاده از WebDAV

برای ادغام مخزن Subversion خود با آپاچی، باید برخی تنظیمات را پیکربندی کنید.

برای اولین مرحله، ماژول‌های dav، dav_svn و dav_fs را با استفاده از دستورات زیر فعال کنید:

sudo a2enmod dav dav_fs dav_svn

پس از فعال سازی ماژول های مورد نیاز، اکنون می توانید فایل /etc/apache2/mods-enabled/dav_svn.conf را ویرایش کنید. اگر فایلی وجود ندارد، آن را ایجاد کنید و محتوای آن را به صورت زیر تغییر دهید:

<Location /subversion>
DAV svn
SVNPath /subversion/myrepo
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /subversion/passwd
Require valid-user
</Location>

تنظیمات AuthUserFile به فایلی که قبلاً با استفاده از htpasswd ایجاد کرده اید ارجاع می دهد. افزودن آن در اینجا به همه کاربرانی که در فایل نامگذاری شده اند دسترسی به مخزن را می دهد، مشروط بر اینکه با یک رمز عبور معتبر احراز هویت کنند.

پس از ایجاد و ذخیره این فایل، سرویس Apache2 را با دستور زیر راه اندازی مجدد کنید:

sudo systemctl restart apache2.service

اکنون، هنگامی که یک مرورگر وب را باز می کنید و به http://localhost/subversion/ می روید، محتویات مخزن خود را خواهید دید. وقتی به این آدرس می روید، نام کاربری و رمز عبور شما را می خواهد:

subversion-repo-access-with-webdav-username-and-password-screen

با نام کاربری (به عنوان مثال myadmin) و رمز عبور (mypass) که قبلاً تنظیم کرده اید وارد شوید. پس از وارد کردن نام کاربری و رمز عبور، می‌توانید با استفاده از WebDAV به مخزن Subversion خود دسترسی پیدا کنید:

subversion-repo-content-after-login-page

دسترسی با SSL و WebDAV

پروتکل https:// تقریباً همان پیکربندی پروتکل http:// را دارد، تنها با چند تفاوت مهم. برای مثال، فایل .conf که باید در طول پیکربندی استفاده کنید متفاوت است. همچنین باید گواهی دیجیتال نصب کنید. زیرا همانطور که می دانید، این منطق کار روش رمزگذاری SSL است.

شما می توانید یک گواهی دیجیتال را خودتان ایجاد کنید، یا می توانید یک گواهی صادر شده توسط یک مقام صالح را نصب کنید. با فرض اینکه یک گواهی دیجیتال نصب کرده اید، کاری که باید انجام دهید ساده است.

تفاوت در این مرحله تغییراتی است که در فایل پیکربندی ایجاد خواهید کرد. در زیر یک فایل پیکربندی نمونه برای استفاده از SSL و WebDAV آمده است:

<Location /subversion>
DAV On
SSLRequireSSL
Options None
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /subversion/passwd
Require valid-user
</Location>

همانطور که می بینید، تفاوت بین پروتکل های https:// و http:// از نظر تغییرات در فایل پیکربندی زیاد نیست. پس از این تغییرات، باید سرویس apache2 را مجددا راه اندازی کنید. برای انجام این کار systemctl apache2.service را مجددا راه اندازی کنید.

چرا از براندازی استفاده کنیم؟

به عنوان یک ردیاب نسخه، Subversion هر تغییر ایجاد شده در فایل ها و دایرکتوری ها را به خاطر می آورد. این به شما امکان می دهد به نسخه های قدیمی نرم افزار یا اسنادی که با آنها کار می کنید دسترسی داشته باشید و تفاوت های آنها را پیدا کنید. این امر مدیریت پروژه ها را آسان تر می کند، به خصوص اگر تیم توسعه شما بزرگ یا توزیع شده باشد.

سیستم های کنترل نسخه زیادی برای لینوکس به غیر از Subversion وجود دارد که ممکن است بخواهید آنها را در نظر بگیرید.

مطلب مرتبط:   نحوه میزبانی یک مهمانی Quake LAN در Raspberry Pi