OpenRC (Türkçe)

From ArchWiki
Çeviri Durumu: Bu makale, OpenRC makalesinin çevirisidir. Son çeviri tarihi (yıl-ay-gün şeklinde): 2022-08-29. Eğer makalenin İngilizce sürümünde değişiklik yapılmış ise çevirinin senkronize edilmesine yardımcı olabilirsiniz. Çevirmenliğe dair bilgi edinmek için Telegram grubumuzu ziyaret edebilirsiniz. Çevrilmiş tüm makelelere buradan erişebilirsiniz.
Uyarı: Arch Linux resmi olarak sadece systemd'yi desteklemektedir. Forumlarda destek isterken lütfen OpenRC kullandığınızı belirtin.

OpenRC Gentoo Geliştiricileri tarafından geliştirilen bir hizmet yöneticisidr. OpenRC, bağımlılık temellidir ve sistemin sağladığı başlangıç (init) sistemiyle (genellikle SysVinit) çalışır.

Kurulum

OpenRC ve eşlik eden paketler AUR'da mevcuttur. İnit bileşenlerinin detayları için bakınız Init.

openrcAUR ya da openrc-gitAUR[broken link: package not found] paketini indirin. 0.25 ve sonrası sürümler için, OpenRC kendi init sistmenini /usr/bin/openrc-init konumununda sağlamaktadır. Opsiyonel olarak, diğer init sistemlerini de seçebilirsiniz, örneğin, busybox.

openrc-init kullanıldığında, openrc-shutdown kullanılmalıdır ve shutdown veya reboot gibi diğer paketlerden gelen komutlar kullanılmamalıdır, aksi takdirde hatalarla yüzleşebilirsiniz.

Temel hizmet seti dosyaları openrc-arch-services-gitAUR paketinde mevcuttur. Bu paket dışında diğer paketlerde de hizmet dosyları mevcut olabilir; AUR'da aratmanız tavsiye edilir.

initscripts-forkAUR ile uyumluluk sağlamak için, yapılandırma dosyaları /etc/openrc/ konumuna kurulur.

Önyükleme

OpenRC seti ile önyükleyebilmek için çekirdek (kernel) parametrelerinde, init sistemini ayarlayın:
OpenRC'nin hazır init sistemini kullanmak için, init=/usr/bin/openrc-init olarak ayarlayın.
SysVinit kullanmak için init=/usr/bin/init-openrc ayarlayın.
openrc-init kullanılırken /etc/inittab dosyasının kullanılmayacağını unutmayın.

Yapılandırma

/etc/openrc/conf.d dizini, ve /etc/openrc/rc.d dosyası yapılandırma için kullanılır.

OpenRC yapılandırması hakkında genel bilgiler için bakınız:

systemd'den geçiş yapıyorsanız Init#Configuration bölümündeki yönergeleri takip edebilirsiniz.

Hizmetler

OpenRC hizmetleri kök yetkisi ile rc-update add hizmet ismi runlevel komutu ile etkinleştirlir. En azından aşşağıdaki hizmetleri etkinleştirmeniz tavsiye edilir:

Hizmet İsmi Runlevel Açıklama
udev sysinit Aygıt takma-çıkarma
alsa default ALSA durumu
acpid default ACPI olayları
dbus default Mesajlaşma veri yolu
dcron default Planlama
syslog-ng default Sistem günlüğü
Uyarı: Eğer init=/usr/bin/openrc-init kullanıyorsanız,kernel parameterinizde , manuel olarak getty'i etkinleştirmeniz gerekir, yoksa yaptığınız işlemler etkileşimsiz bir TTY ile sonuçlanabilir [1]

Gerekirse, gereken her getty için /etc/openrc/init.d/getty kısayol bağlantısı oluşturarak yeni bir hizmet oluşturun. Örneğin /dev/tty1 için:

# ln -s /etc/openrc/init.d/agetty{,.tty1}
# rc-update add agetty.tty1 default

Ayrıca Gentoo:Systemd#Native services ve Daemons sayfalarına da bakınız.

newnet ile yapılandırılmalıdır [2], /etc/openrc/conf.d/network dosyasını değiştirin; hem ip (iproute2) hem de ifconfig (net-tools) komutu desteklenmektedir. Aşağıda ip kullanılarak bir örnek verilmiştir.

ip_eth0="192.168.1.2/24"
defaultiproute="via 192.168.1.1"
ifup_eth0="ip link set \$int mtu 1500"

Bu ağ hizmeti başlangıç çalışmaseviyesine (runlevel) varsayılan olarak eklenir, böylelikle başka bir değişiklik yapmaya gerek yoktur. Daha fazla bilgi için Network configuration sayfasına bakınız.

Not: İsterseniz NetworkManager, dhcpcd veya netcfgAUR'ı gereken hizmetleri etkinleştirerek kullanabilirsiniz. netcfg netctl davranışlarını taklit eder (eğer başlangıçta profil bağlantılarını etkinleştirmek istiyorsanız bakınız [3] -wpa_actiond gerektirir). Bakınız netcfg features.

Başlangıç Günlüğü

Başlangıç günlüğünü etkinleştirmek için /etc/openrc/rc.conf dosyasındaki rc_logger="YES" satırının yorum simgesini kaldırın. Etkinleştrildiğinde, başlangıç günlükleri /var/log/rc.log konumunda depolanacaktır.

Ana Makine Adı

OpenRC ana makine adını /etc/openrc/conf.d/hostname dosyasında ayarlar. Bu dosya şöyle görünmektedir:

# Set to the hostname of this machine
hostname="myhostname"

Çekirdek (Kernel) Modülleri

OpenRC /etc/modules-load.d modülü yerine /etc/openrc/conf.d/modules kullanır. Örneğin:

/etc/openrc/conf.d/modules
# You should consult your kernel documentation and configuration
# for a list of modules and their options.

modules="vboxdrv acpi_cpufreq"

Yerel Ayarlar

Klavye düzeni /etc/openrc/conf.d/keymaps ve /etc/openrc/conf.d/consolefont ile ayarlanabilir. Ayrıca /etc/profile.d/locale.sh'da kaynağı bulunan /etc/locale.conf dosyasına da baknız.

Detaylar için Gentoo:Localization/Guide#Keyboard layout for the console ve Locale sayfalarına bakınız.

Kullanım

Bu bölüm systemd ve diğer init sistemlerini birbiriyle kıyaslar.

.service ve .target eklentilerini yok sayabilirsiniz, özellikle geçici olarak kernel parametrelerini düzenliyorsanız.

systemd SysVinit OpenRC Açıklama
systemctl list-units rc.d list rc-status Aktif olan hizmetlerin durumunu listele.
systemctl --failed rc-status --crashed Başarısız servisleri listele.
systemctl --all rc-update -v show Mevut tüm servisleri listele.
systemctl (start, stop, restart, status) daemon.service rc.d (start, stop, restart) daemon rc-service daemon (start, stop, restart, status) Servis durumunu değiştir.
systemctl (enable, disable) daemon.service chkconfig daemon (on, off) rc-update (add, del) daemon Servisi aktifleştir veya etkisezleştir.
systemctl daemon-reload chkconfig daemon --add Konfigürasyonu oluştur veya etkinleştir.

İpuçları ve Tüyolar

Sezsiz Başlangıç

OpenRC'den başlangıç mesajlarını saklamak için, /etc/inittab dosyasını değiştirin ve her komut için --quiet bayrağını ekleyin. Daha fazla bilgi edinmek için $ openrc -h komutnu kullanın.

Sorun Giderme

/tmp bağlantısnı kaldırırken hata

Sistemi kapatırken şöyle bir hata mesajı alabilirsiniz

* Unmounting /tmp ... 
* in use but fuser finds nothing [ !! ]

Bu hata /etc/openrc/conf.d/localmount dosyasına şunu ekleyerek çözülebilir

no_umounts="/tmp"
Not: Bu problem sadece tmp, tmpfs olarak bağlandıysa oluşur.

IPv6 etkisizileştirilemiyor

/etc/openrc/sysctl.d dizininde .conf eklentili dosyanın altına

# Disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1

eklenerek çözülebilir.

Sistem kapatılrıken rootu sadece okunur olarak yeniden bağlama başarısız oluyor

Eğer yukarıdaki durum yaşanırsa, /etc/openrc/init.d/mount-ro dosyasına

# Flush all pending disk writes now
sync; sync

satırından sonra gelen kımsa bunu ekleyin

telinit u

/etc/sysctl.conf bulunamadı

Varsayılan olarak, systctl konfigürasyonunu yüklemek için sysctl --system çağrılır. Bu /etc/sysctl.conf dosyasınıda barındırır, ki bu dosya Arch'dan çıkarılmıştır. [4]

Kaybolmuş dosya hatasını önlemek için, şu dosyayı oluşturun:

# touch /etc/sysctl.conf

opentmpfiles-setup etkinleştirlemedi

OpenRC'yi başlatırken şöyle satırlar görebilirsiniz:

* Setting up tmpfiles.d entries ...
chattr: Operation not supported while setting flags on /var/log/journal
chattr: No such file or directory while trying to stat /var/log/journal/%m
chattr: Operation not supported while setting flags on /var/log/journal/remote
[ !! ]
ERROR: opentmpfiles-setup failed to start

Bu hata /usr/lib/tmpfiles.d/journal-nocow.conf dosyası yüzünden olmaktadır.Bu seçenekler sadece btrfs günlükleri için geçerlidir

Detaylar için https://github.com/OpenRC/opentmpfiles/issues/2 adresine bakınız

OpenRC (Türkçe)/etc/tmpfiles.d/journal-nocow.conf konumu ve ismiyle bir boş dosya oluşturarak bu sorun çözülebilir.

Systemd ye geri dönme

Systemd'ye dönmek çoğunlukla oldukça kolaydır. OpenRC'ye geçiş yaparken yapılan adımlar, şu sırayla geri yapılabilir:

  • Çekirdekteki (kernel) init= parametresini kaldırma veya değiştirme.
  • OpenRC merkezli paketlerin kaldırılması (örneğin dbus-nosystemdAUR[broken link: package not found]'nin dbus ile değiştirilmesi)

Ayrıca bakınız