27 Şubat 2023 Pazartesi

FreeBSD Bölüm 4. Uygulamaları Yükleme

  

Bölüm 4. Uygulamaları Yükleme: Paketler ve Bağlantı Noktaları

4.1. özet

FreeBSD, temel sistemin bir parçası olarak zengin bir sistem araçları koleksiyonuyla birlikte gelir. Ek olarak, FreeBSD, üçüncü taraf yazılımları yüklemek için iki tamamlayıcı teknoloji sağlar: kaynaktan yüklemek için FreeBSD Ports Koleksiyonu ve önceden oluşturulmuş ikili dosyalardan yüklemek için paketler. Yerel ortamdan veya ağdan yazılım yüklemek için her iki yöntem de kullanılabilir.

Bu bölümü okuduktan sonra şunları bileceksiniz:

  • İkili paketler ve bağlantı noktaları arasındaki fark.

  • FreeBSD'ye aktarılan üçüncü taraf yazılımı nasıl bulunur?

  • pkg kullanarak ikili paketler nasıl yönetilir?

  • Bağlantı Noktaları Koleksiyonunu kullanarak üçüncü taraf yazılımları kaynaktan oluşturma.

  • Kurulum sonrası yapılandırma için uygulama ile birlikte yüklenen dosyalar nasıl bulunur?

  • Bir yazılım yüklemesi başarısız olursa ne yapılmalı?

4.2. Yazılım Kurulumuna Genel Bakış

FreeBSD bağlantı noktası, bir uygulamayı kaynak koddan derleme işlemini otomatikleştirmek için tasarlanmış bir dosya koleksiyonudur. Bir bağlantı noktasını oluşturan dosyalar, uygulamayı otomatik olarak indirmek, ayıklamak, yama yapmak, derlemek ve kurmak için gerekli tüm bilgileri içerir.

Yazılım FreeBSD'de henüz uyarlanmamış ve test edilmemişse, düzgün bir şekilde yüklenip çalışabilmesi için kaynak kodunun düzenlenmesi gerekebilir.

Ancak, 36000'den fazla üçüncü şahıs uygulaması FreeBSD'ye taşınmıştır. Uygulanabilir olduğunda, bu uygulamalar önceden derlenmiş paketler olarak indirilebilir .

Paketler, FreeBSD paket yönetimi komutlarıyla değiştirilebilir.

Hem paketler hem de bağlantı noktaları bağımlılıkları anlar. Bir uygulamayı yüklemek için bir paket veya bağlantı noktası kullanılıyorsa ve bağımlı bir kitaplık henüz kurulu değilse, önce kitaplık otomatik olarak kurulacaktır.

Bir FreeBSD paketi, bir uygulama için tüm komutların önceden derlenmiş kopyalarının yanı sıra herhangi bir yapılandırma dosyası ve belge içerir. Bir paket, örneğin pkg(8) komutlarıyla değiştirilebilir pkg install.

İki teknoloji benzer olsa da, paketlerin ve bağlantı noktalarının her birinin kendi güçlü yanları vardır. Belirli bir uygulamayı yükleme gereksinimlerinizi karşılayan teknolojiyi seçin.

Paket Avantajları
  • Sıkıştırılmış bir tarball paketi, genellikle uygulamanın kaynak kodunu içeren sıkıştırılmış bir tarball'dan daha küçüktür.

  • Paketler derleme süresi gerektirmez. Firefox, KDE Plazma veya GNOME gibi büyük uygulamalar için bu, yavaş bir sistemde önemli olabilir.

  • Paketler, yazılımın FreeBSD'de derlenmesiyle ilgili sürecin anlaşılmasını gerektirmez.

Liman Avantajları
  • Paketler, maksimum sayıda sistemde çalışmaları gerektiğinden, normalde muhafazakar seçeneklerle derlenir. Bağlantı noktasından derleme yaparak derleme seçenekleri değiştirilebilir.

  • Bazı uygulamalarda, hangi özelliklerin yüklendiğiyle ilgili derleme zamanı seçenekleri bulunur. Örneğin, NGINX® çok çeşitli yerleşik seçeneklerle yapılandırılabilir.

    Bazı durumlarda, aynı uygulamanın belirli ayarları belirtmesi için birden fazla paket mevcut olacaktır. Örneğin, NGINX®, Xorg'un kurulu olup olmamasına bağlı olarak bir nginxpaket ve bir paket olarak mevcuttur . nginx-liteBir uygulamanın bir veya ikiden fazla farklı derleme zamanı seçeneği varsa, birden çok paket oluşturmak hızla imkansız hale gelir.

  • Bazı yazılımların lisans koşulları ikili dağıtımı yasaklamaktadır. Bu tür yazılımlar, son kullanıcı tarafından derlenmesi gereken kaynak kod olarak dağıtılmalıdır.

  • Bazı insanlar ikili dağıtımlara güvenmezler veya olası sorunları aramak için kaynak kodunu okumayı tercih ederler.

  • Özel yamaları uygulamak için kaynak kodu gereklidir.

Güncellenen bağlantı noktalarını takip etmek için, FreeBSD bağlantı noktaları posta listesine ve FreeBSD bağlantı noktaları hata posta listesine abone olun .

Bir uygulamayı kurmadan önce, uygulamayla ilgili güvenlik sorunları için https://vuxml.freebsd.org/ adresini kontrol edin.

Yüklü uygulamaların bilinen güvenlik açıklarını kontrol etmek için kullanın pkg audit -F.

Bu bölümün geri kalanında, FreeBSD'de üçüncü taraf yazılımları yüklemek ve yönetmek için paketlerin ve bağlantı noktalarının nasıl kullanılacağı açıklanmaktadır.

4.3. Yazılım Bulma

FreeBSD'nin kullanılabilir uygulama listesi her geçen gün genişlemektedir. Yüklenecek yazılımı bulmanın birkaç yolu vardır:

  • FreeBSD web sitesi , Ports Portal'da mevcut tüm uygulamaların güncel aranabilir bir listesini tutar Bağlantı noktaları, uygulama adına veya yazılım kategorisine göre aranabilir.

  • Dan Langille , kapsamlı bir arama aracı sağlayan ve ayrıca Ports Collection'daki uygulamalardaki değişiklikleri izleyen FreshPorts'a sahiptir . Kayıtlı kullanıcılar, izlenen bağlantı noktaları güncellendiğinde otomatik bir e-posta almak için özelleştirilmiş bir izleme listesi oluşturabilir.

  • Belirli bir uygulamayı bulmak zorlaşıyorsa, SourceForge veya GitHub gibi bir siteyi aramayı deneyin ve ardından uygulamanın taşınıp taşınmadığını görmek için Bağlantı Noktaları Portalına tekrar bakın .

  • pkg(8) komutunu kullanarak bir uygulama için ikili paket deposunda arama yapın

4.4. İkili Paket Yönetimi için pkg kullanma

pkg(8), paketleri işlemek için bir arabirim sağlar: paketleri kaydetme, ekleme, kaldırma ve yükseltme.

Yalnızca FreeBSD aynalarından önceden oluşturulmuş ikili paketleri kullanmak isteyen siteler için, paketleri pkg(8) ile yönetmek yeterli olabilir.

Ancak, kaynaktan inşa edilen siteler için ayrı bir port yönetim aracına ihtiyaç duyulacaktır.

pkg(8) yalnızca ikili paketlerle çalıştığından , bu tür araçların yerine geçmez. Bu araçlar, hem ikili paketlerden hem de Bağlantı Noktaları Koleksiyonundan yazılım yüklemek için kullanılabilirken, pkg(8) yalnızca ikili paketleri kurar.

4.4.1. pkg'ye Başlarken

FreeBSD'nin desteklenen tüm sürümleri artık /usr/sbin/pkgaka pkg(7) içeriyor . Bu, gerçek pkg(8) dosyasını yüklemek için gereken minimum işlevselliğe sahip küçük bir yer tutucudur .

Önyükleme işleminin başarılı olması için çalışan bir İnternet bağlantısı gerekir.

pkg(8) komut satırını çalıştırın :

# pkg

Çıktı aşağıdakine benzer olmalıdır:

Paket yönetim aracı henüz sisteminizde kurulu değil.
Getirmek ve kurmak istemiyor musunuz? [e/a]

pkg(7) komutu durduracak ve niyetinizin bu olduğunu onaylarsanız, pkg(8) tarball'ını indirin, buradan pkg(8)' i kurun , yerel paket veritabanını önyükleyin ve ardından başlangıçta istediğiniz komutu çalıştırmaya devam edin.

pkg(7) 'nin daha yeni sürümleri, kurulumu tetiklemeden pkg(8)'inpkg -N kurulup kurulmadığını görmek için yapılan bir test olarak anlaşılır ve tersine, pkg(8)'i kurmak (veya yeniden kurulmaya zorlamak) için pkg bootstrap[-f] kullanılır. diğer eylemleri gerçekleştirmek.

pkg için kullanım bilgileri , pkg(8) kılavuz sayfasında veya ek argümanlar olmadan çalıştırılarak mevcuttur pkgEk paket yapılandırma seçenekleri pkg.conf(5) içinde açıklanmıştır .

Her pkg komut bağımsız değişkeni, komuta özel bir kılavuz sayfasında belgelenmiştir.

pkg installÖrneğin, için kılavuz sayfasını okumak için şu komutu çalıştırın:

# pkg help install

Bu bölümün geri kalanında , pkg(8) kullanılarak gerçekleştirilebilen yaygın ikili paket yönetim görevleri gösterilmektedir Gösterilen her komut, kullanımını özelleştirmek için birçok anahtar sağlar. Ayrıntılar ve daha fazla örnek için bir komutun yardım veya kılavuz sayfasına bakın.

4.4.2. Üç Aylık ve Son Liman Şubeleri

Şube, Quarterlykullanıcılara bağlantı noktası ve paket kurulumu ve yükseltmeleri için daha öngörülebilir ve istikrarlı bir deneyim sunar. Bu, esasen yalnızca özellik dışı güncellemelere izin verilerek yapılır. Üç ayda bir şubeler, güvenlik düzeltmeleri (sürüm güncellemeleri veya taahhütlerin geri bildirimleri olabilir), hata düzeltmeleri ve bağlantı noktaları uyumluluğu veya çerçeve değişiklikleri almayı amaçlar. Quarterly şubesi, Ocak, Nisan, Temmuz ve Ekim aylarında her (yıllık) çeyreğin başında HEAD'den kesilir. Şubeler, oluşturuldukları yıl (YYYY) ve çeyreğe (Q1-4) göre adlandırılır. Örneğin, Ocak 2023'te oluşturulan üç aylık şube, 2023Q1 olarak adlandırılır. Şube, Latestpaketlerin en son sürümlerini kullanıcılara sunar.

pkg(8)' i Üç Aylık'tan En Son'a geçirmek için aşağıdaki komutları çalıştırın :

# mkdir -p /usr/local/etc/pkg/repos
# echo 'FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest" }' > /usr/local/etc/pkg/repos/FreeBSD.conf

Ardından, En Son dal için yerel paket depoları kataloglarını güncellemek üzere bu komutu çalıştırın:

# pkg update -f

4.4.3. paketi yapılandır

pkg.conf(5), pkg(8) araçları tarafından kullanılan sistem çapında yapılandırma dosyasıdır Bu dosyanın varsayılan konumu /usr/local/etc/pkg.conf.

FreeBSD'nin bir dosyaya sahip olması gerekmez pkg.confpkg.confPek çok kurulum , hiç veya boş pkg.conf(yorum satırları dışında) ile iyi çalışacaktır .

Dosyadaki "#" ile başlayan satırlar yorumdur ve yoksayılır.

Dosya UCL biçimindedir. libucl(3) sözdizimi hakkında daha fazla bilgi için lütfen resmi UCL web sitesini ziyaret edin .

Aşağıdaki seçenek türleri tanınır - boolean, string ve list options.

Yapılandırma dosyasında aşağıdaki değerlerden biri belirtilirse bir boole seçeneği etkin olarak işaretlenir - EVET, DOĞRU ve AÇIK.

Bir paketi aramak için pkg-search(8) kullanılabilir:

# pkg search nginx

Çıktı aşağıdakine benzer olmalıdır:

modsecurity3-nginx-1.0.3 Talimat algılama ve önleme motoru / nginx Wrapper
nginx-1.22.1_2,3 Sağlam ve küçük WWW sunucusu
nginx-devel-1.23.2_4 Sağlam ve küçük WWW sunucusu
nginx-full-1.22.1_1,3 Sağlam ve küçük WWW sunucusu (tam paket)
nginx-lite-1.22.1,3 Sağlam ve küçük WWW sunucusu (lite paketi)
nginx-naxsi-1.22.1,3 Sağlam ve küçük WWW sunucusu (artı NAXSI)
nginx-prometheus-exporter-0.10.0_7 NGINX ve NGINX Plus istatistikleri için Prometheus ihracatçısı
nginx-ultimate-bad-bot-blocker-4.2020.03.2005_1 Nginx kötü bot ve diğer şeyler engelleyici
nginx-vts-exporter-0.10.7_7 NGINX vts istatistiklerini hurdaya çıkaran ve HTTP aracılığıyla dışa aktaran sunucu
p5-Nginx-ReadBody-0.07_1 İstek gövdesini okumak ve değerlendirmek için Nginx yerleşik perl modülü
Nginx Perl Modülü için kullanımı kolay arayüz için p5-Nginx-Simple-0.07_1 Perl 5 modülü
p5-Test-Nginx-0.30 Nginx C modülü geliştirme için test modülleri
Certbot için py39-certbot-nginx-2.0.0 NGINX eklentisi
rubygem-passenger-nginx-6.0.15 Ruby on Rails ve Rack uygulamalarını çalıştırmak için modüller

4.4.5. Paketleri Yükleme ve Alma

Bir ikili paket kurmak için pkg-install(8) kullanılabilir. Bu komut, yazılımın hangi sürümünün kurulacağını ve herhangi bir kaldırılmış bağımlılık olup olmadığını belirlemek için depo verilerini kullanır. Örneğin, curl'ü yüklemek için:

# pkg install curl

Çıktı aşağıdakine benzer olmalıdır:

FreeBSD veri havuzu kataloğu güncelleniyor...
FreeBSD deposu güncel.
Tüm depolar güncel.
Aşağıdaki 9 paket(ler) etkilenecektir (0 kontrol edilen):

KURULACAK YENİ PAKETLER:
        ca_root_nss: 3.83
        kıvrılma: 7.86.0
        gettext çalışma zamanı: 0.21
        dizin bilgisi: 0.3.1
        libidn2: 2.3.3
        libnghttp2: 1.48.0
        libpsl: 0.21.1_4
        libssh2: 1.10.0.3
        kütüphane dizgisi: 1.0

Kurulacak paket sayısı: 9

İşlem, 11 MiB daha fazla alan gerektirecektir.
3 MiB indirilecek

Bu işleme devam edilsin mi? [e/a]

Bağımlılık olarak kurulan yeni paket ve ek paketler, kurulu paketler listesinde görülebilir:

# pkg info

Çıktı aşağıdakine benzer olmalıdır:

ca_root_nss-3.83 Mozilla Projesi'nden kök sertifika paketi
curl-7.86.0 URL'lerle veri aktarımı için komut satırı aracı ve kitaplığı
gettext-runtime-0.21.1 GNU gettext çalışma zamanı kitaplıkları ve programları
indexinfo-0.3.1 GNU bilgi sayfası dizinini yeniden oluşturmak için yardımcı program
libidn2-2.3.3 IDNA2008 uluslararasılaştırılmış alan adlarının uygulanması
libnghttp2-1.48.0 HTTP/2.0 C Kitaplığı
libpsl-0.21.1_6 Genel Son Ek Listesini işlemek için C kitaplığı
libssh2-1.10.0.3 SSH2 protokolünü uygulayan kitaplık
libunistring-1.0 Unicode dize kitaplığı
pkg-1.18.4 Paket yöneticisi

Bir paketi alıp daha sonra veya başka bir yere kurmak için pkg-fetch(8) kullanın . Örneğin, indirmek için nginx-lite:

# pkg fetch -d -o /usr/home/user/packages/ nginx-lite
  • -d: tüm bağımlılıkları getirmek için kullanılır

  • -o: indirme dizinini belirtmek için kullanılır

Çıktı aşağıdakine benzer olmalıdır:

FreeBSD veri havuzu kataloğu güncelleniyor...
FreeBSD deposu güncel.
Tüm depolar güncel.
Aşağıdaki paketler getirilecek:

GETİRİLECEK yeni paketler:
        nginx-lite: 1.22.1,3 (342 KiB: indirilecek 2 MiB'nin %22,20'si)
        pcre: 8,45_3 (1 MiB: indirilecek 2 MiB'nin %77,80'i)

Getirilecek paket sayısı: 2

İşlem 2 MiB daha fazla alan gerektirecektir.
2 MiB indirilecek.

Paketleri almaya devam edilsin mi? [e/h]:

İndirilen paketleri kurmak için pkg-install(8) şu şekilde kullanılabilir:

# cd /usr/home/user/packages/
# pkg install nginx-lite-1.22.1,3.pkg

4.4.6. Kurulu Paketler Hakkında Bilgi Edinme

Bir sistemde kurulu paketlerle ilgili bilgiler , herhangi bir anahtar olmadan çalıştırıldığında kurulu tüm paketler veya belirtilen paket için paket sürümünü listeleyen pkg-info(8) çalıştırılarak görüntülenebilir .

Örneğin, hangi pkg sürümünün kurulu olduğunu görmek için şunu çalıştırın:

# pkg info pkg

Çıktı aşağıdakine benzer olmalıdır:

pkg-1.19.0
İsim : pkg
Versiyon : 1.19.0
Kurulum Tarihi : 17 Ara Cmt 11:05:28 2022 CET
Kaynak: portlar-mgmt/pkg
Mimari: FreeBSD:13:AMD64
Önek: /usr/yerel
Kategoriler : port yönetimi
Lisanslar : BSD2CLAUSE
Bakımcı: pkg@FreeBSD.org
WWW: https://github.com/freebsd/pkg
Yorum : Paket yöneticisi
Seçenekler :
        BELGELER : açık
Sağlanan Paylaşılan Kitaplıklar:
        libpkg.so.4
Ek açıklamalar:
        ÜcretsizBSD_versiyonu: 1301000
        repo_type : ikili
        depo: FreeBSD
Düz boyut: 33.2MiB
Tanım :
Paket yönetim aracı

WWW: https://github.com/freebsd/pkg

4.4.7. Kurulu Paketleri Yükseltme

Kurulu paketler , pkg-upgrade(8) kullanılarak en son sürümlerine yükseltilebilir :

# pkg upgrade

Bu komut, kurulu sürümleri depo kataloğunda bulunanlarla karşılaştıracak ve depodan yükseltecektir.

4.4.8. Kurulu Paketleri Denetleme

Yazılım güvenlik açıkları, üçüncü taraf uygulamalarda düzenli olarak keşfedilir. Bunu ele almak için pkg, yerleşik bir denetim mekanizması içerir. Sistemde kurulu yazılım için bilinen herhangi bir güvenlik açığı olup olmadığını belirlemek için pkg-audit(8) kullanın :

# pkg audit -F

Çıktı aşağıdakine benzer olmalıdır:

vuln.xml.xz getiriliyor: %100 976 KiB 499,5 kB/sn 00:02
krom-108.0.5359.98 savunmasızdır:
  krom -- çoklu güvenlik açıkları
  CVE: CVE-2022-4440
  CVE: CVE-2022-4439
  CVE: CVE-2022-4438
  CVE: CVE-2022-4437
  CVE: CVE-2022-4436
  WWW: https://vuxml.FreeBSD.org/freebsd/83eb9374-7b97-11ed-be8f-3065ec8fd3ec.html

4.4.9. Paketleri Kaldırma

Örneğin:

# pkg delete curl

Çıktı aşağıdakine benzer olmalıdır:

Bütünlük kontrol ediliyor... tamamlandı (0 çelişkili)
Aşağıdaki 1 paket için (evrendeki 0 paketten) kaldırma işlemi talep edildi:

KALDIRILACAK kurulu paketler:
        kıvrılma :7.86.0

Kaldırılacak paket sayısı: 1

İşlem 4 MiB serbest bırakacak.

Kaldırma paketleriyle devam edilsin mi? [e/a]: e
[1/1] curl-7.86.0 kaldırılıyor...
[1/1] curl-7.86.0 için dosyalar siliniyor: %100

4.4.10. Kullanılmayan Paketleri Otomatik Olarak Kaldırma

Bir paketin kaldırılması, artık gerekli olmayan bağımlılıkların geride kalmasına neden olabilir. Bağımlılık olarak kurulan gereksiz paketler (yaprak paketler) pkg-autoremove(8) kullanılarak otomatik olarak algılanabilir ve kaldırılabilir :

# pkg autoremove

Çıktı aşağıdakine benzer olmalıdır:

Bütünlük kontrol ediliyor... tamamlandı (0 çelişkili)
Aşağıdaki 1 paket için kaldırma talep edildi:

KALDIRILACAK kurulu paketler:
        ca_root_nss-3.83

Kaldırılacak paket sayısı: 1

Operasyon 723 KiB serbest bırakacak.

Paketleri kaldırma işlemine devam edilsin mi? [e/h]:

Bağımlılık olarak kurulan paketlere otomatik paketler denir Otomatik olmayan paketler, yani başka bir pakete bağımlılık olarak değil, açıkça yüklenen paketler şu şekilde listelenebilir:

# pkg prime-list

Çıktı aşağıdakine benzer olmalıdır:

nginx
açık vpn
sudo

pkg prime-listiçinde bildirilen bir diğer ad komutudur /usr/local/etc/pkg.confSistemin paket veri tabanını sorgulamak için kullanılabilecek daha pek çok şey vardır. Örneğin, pkg prime-originsyukarıda belirtilen listenin başlangıç ​​bağlantı noktası dizinini almak için komut kullanılabilir:

# pkg prime-origins

Çıktı aşağıdakine benzer olmalıdır:

www/nginx
güvenlik/openvpn
güvenlik/sudo

Bu liste, bir sistemde kurulu olan tüm paketleri, port-mgmt/poudriere veya port-mgmt/synth gibi oluşturma araçları kullanılarak yeniden oluşturmak için kullanılabilir .

Kurulu bir paketi otomatik olarak işaretlemek şu şekilde yapılabilir:

# pkg set -A 1 devel/cmake

Bir paket bir yaprak paket olduğunda ve otomatik olarak işaretlendiğinde, tarafından seçilir pkg autoremove.

Kurulu bir paketi otomatik değil olarak işaretlemek şu şekilde yapılabilir:

# pkg set -A 0 devel/cmake

4.4.11. Paket Veritabanını Geri Yükleme

Geleneksel paket yönetim sisteminden farklı olarak, pkg kendi paket veritabanı yedekleme mekanizmasını içerir. Bu işlevsellik varsayılan olarak etkindir.

Periyodik komut dosyasının paket veritabanını yedeklemesini devre dışı bırakmak için, periodic.conf(5)daily_backup_pkgdb_enable="NO" içinde ayarlayın .

Önceki bir paket veritabanı yedeğinin içeriğini geri yüklemek için /path/to/pkg.sql dosyasını yedeğin konumuyla değiştirerek aşağıdaki komutu çalıştırın :

# pkg backup -r /path/to/pkg.sql

Periyodik komut dosyası tarafından alınan bir yedeği geri yüklüyorsanız, geri yüklenmeden önce sıkıştırması açılmalıdır.

pkg veritabanının manuel yedeğini çalıştırmak için /path/to/pkg.sql yerine uygun bir dosya adı ve konumu koyarak aşağıdaki komutu çalıştırın:

# pkg backup -d /path/to/pkg.sql

4.4.12. Eski Paketleri Kaldırma

Varsayılan olarak, pkg, ikili paketleri pkg.conf(5)PKG_CACHEDIR ile tanımlanan bir önbellek dizininde saklar Yalnızca en son yüklenen paketlerin kopyaları tutulur. pkg'nin eski sürümleri önceki tüm paketleri korudu. Bu güncel olmayan ikili paketleri kaldırmak için şunu çalıştırın:

# pkg clean

Önbelleğin tamamı çalıştırılarak temizlenebilir:

# pkg clean -a

4.4.13. Kilitleme ve Kilit Açma Paketleri

pkg-lock(8), paketleri yeniden kurulmaya, değiştirilmeye veya silinmeye karşı kilitlemek için kullanılır. pkg-unlock(8) adlı paketlerin kilidini açar. Her iki varyantın da yalnızca şu anda yüklü olan paketler üzerinde etkisi vardır. Sonuç olarak, bu tür bir kurulum kilitli bir paketin güncellenmesini gerektirmedikçe, bu mekanizmayı kullanarak yeni bir paketin kurulumunu engellemek mümkün değildir.

Örneğin, kilitlemek için nginx-lite:

# pkg lock nginx-lite

Ve kilidini açmak için nginx-lite:

# pkg unlock nginx-lite

4.4.14. Paket Meta Verilerini Değiştirme

FreeBSD Ports Collection içindeki yazılımlar, büyük sürüm numarası değişikliklerinden geçebilir. Bunu ele almak için, pkg, paket kökenlerini güncellemek için yerleşik bir komuta sahiptir. Bu, örneğin, lang/python3'ün lang/python311 olarak yeniden adlandırılması ve böylece lang/python3'ün artık version'u temsil etmesi yararlı olabilir 3.11.

Yukarıdaki örnek için paket kaynağını değiştirmek için şunu çalıştırın:

# pkg set -o lang/python3:lang/python311

Başka bir örnek olarak, lang/ruby31'i lang/Ruby32 olarak güncellemek için şunu çalıştırın:

# pkg set -o lang/ruby31:lang/ruby32

Paket kökenlerini değiştirirken, değiştirilen kaynak ile pakete bağımlı olan paketleri yeniden yüklemek önemlidir. Bağımlı paketlerin yeniden yüklenmesini zorlamak için şunu çalıştırın:

# pkg install -Rf lang/ruby32

4.5. Bağlantı Noktaları Koleksiyonunu Kullanma

Bağlantı Noktaları Koleksiyonu, bir dizi e-posta Makefiles, yama ve açıklama dosyasıdır. Bu dosyaların her seti, FreeBSD'de ayrı bir uygulamayı derlemek ve kurmak için kullanılır ve port olarak adlandırılır .

Varsayılan olarak, Bağlantı Noktaları Koleksiyonunun kendisi /usr/ports.

Ports Collection'ı kurmadan ve kullanmadan önce, Ports Collection'ı yazılım yüklemek için pkg yoluyla sağlanan ikili paketlerle birlikte kullanmanın genellikle tavsiye edilmediğini lütfen unutmayın. pkg, varsayılan olarak, bağlantı noktası ağacının üç aylık şube sürümlerini izler, HEAD'i değil. Bağımlılıklar, HEAD'deki bir bağlantı noktası için üç aylık şube sürümündeki muadili ile karşılaştırıldığında farklı olabilir ve bu, pkg tarafından kurulan bağımlılıklar ile Bağlantı Noktaları Koleksiyonundan olanlar arasında çatışmalara neden olabilir. Ports Collection ve pkg'nin birlikte kullanılması gerekiyorsa Ports Collection ve pkg'nizin port ağacının aynı dal sürümünde olduğundan emin olun.

Bağlantı Noktaları Koleksiyonu, yazılım kategorileri için dizinler içerir. Her kategorinin içinde, bireysel uygulamalar için alt dizinler bulunur. Her uygulama alt dizini, FreeBSD'ye bu programı nasıl derleyeceğini ve kuracağını söyleyen, port iskeleti adı verilen bir dizi dosya içerir . Her bağlantı noktası iskeleti şu dosyaları ve dizinleri içerir:

  • Makefile : uygulamanın nasıl derlenmesi gerektiğini ve bileşenlerinin nereye kurulması gerektiğini belirten ifadeler içerir.

  • distinfo : bağlantı noktasını oluşturmak için indirilmesi gereken dosyaların adlarını ve sağlama toplamlarını içerir.

  • files/ : bu dizin, programın FreeBSD'de derlenmesi ve kurulması için gereken yamaları içerir. Bu dizin, bağlantı noktasını oluşturmak için kullanılan diğer dosyaları da içerebilir.

  • pkg-descr : programın daha ayrıntılı bir açıklamasını sağlar.

  • pkg-plist : bağlantı noktası tarafından kurulacak tüm dosyaların listesi. Ayrıca bağlantı noktası sistemine, kaldırma sırasında hangi dosyaların kaldırılacağını söyler.

Bazı bağlantı noktaları, pkg-messageözel durumları işlemek için veya diğer dosyaları içerir. Bu dosyalar ve genel olarak bağlantı noktaları hakkında daha fazla ayrıntı için, FreeBSD Porter's Handbook'a bakın .

Bağlantı noktası, distfileBağlantı noktası oluşturmanın ayıklama kısmı, indirilen kaynağı otomatik olarak /usr/ports/distfiles.

4.5.1. Bağlantı Noktaları Koleksiyonunu Yükleme

Bir uygulamanın bir bağlantı noktası kullanılarak derlenebilmesi için önce Bağlantı Noktaları Koleksiyonunun yüklenmesi gerekir. FreeBSD kurulumu sırasında kurulmadıysa, kurmak için aşağıdaki yöntemlerden birini kullanın:

Prosedür: Git Yöntemi

Bağlantı noktası ağacı üzerinde daha fazla denetime ihtiyaç duyulursa veya yerel değişikliklerin sürdürülmesi gerekiyorsa veya FreeBSD-CURRENT çalıştırılıyorsa Git, Bağlantı Noktaları Koleksiyonunu elde etmek için kullanılabilir. Git'in ayrıntılı açıklaması için Git Primer'a bakın .

  1. Port ağacını kontrol etmek için kullanılabilmesi için Git'in kurulu olması gerekir. Port ağacının bir kopyası zaten mevcutsa Git'i şu şekilde kurun:

    # cd /usr/ports/devel/git
    # make install clean

    Bağlantı noktası ağacı yoksa veya paketleri yönetmek için pkg kullanılıyorsa, Git bir paket olarak kurulabilir:

    # pkg install git
  2. Port ağacının HEAD dalının bir kopyasına göz atın:

    # git clone https://git.FreeBSD.org/ports.git /usr/ports
  3. Veya üç ayda bir şubenin bir kopyasına göz atın:

    # git clone https://git.FreeBSD.org/ports.git -b 2020Q3 /usr/ports
  4. Gerektiğinde, /usr/portsilk Git kontrolünden sonra güncelleyin:

    # git -C /usr/ports pull
  5. Gerektiğinde /usr/portsfarklı bir üç aylık şubeye geçin:

    # git -C /usr/ports switch 2020Q4

4.5.2. Bağlantı Noktalarını Yükleme

Bu bölüm, yazılımı yüklemek veya kaldırmak için Bağlantı Noktaları Koleksiyonunu kullanmayla ilgili temel yönergeleri sağlar. Kullanılabilir hedeflerin ve ortam değişkenlerinin ayrıntılı açıklaması bağlantı noktalarında (7)make mevcuttur .

Herhangi bir bağlantı noktasını derlemeden önce, önceki bölümde açıklandığı gibi Bağlantı Noktaları Koleksiyonunu güncellediğinizden emin olun. Herhangi bir üçüncü taraf yazılımın yüklenmesi güvenlik açıklarına neden olabileceğinden, bağlantı noktasıyla ilgili bilinen güvenlik sorunları için önce https://vuxml.freebsd.org/ adresini kontrol etmeniz önerilir . Alternatif olarak, yeni bir bağlantı noktası kurmadan önce çalıştırın pkg audit -FBu komut, günlük güvenlik sistemi denetimi sırasında otomatik olarak bir güvenlik denetimi ve güvenlik açığı veritabanı güncellemesi yapacak şekilde yapılandırılabilir. Daha fazla bilgi için pkg-audit(8) ve periyodik(8)' e bakın .

Bağlantı Noktaları Koleksiyonunu kullanmak, çalışan bir İnternet bağlantısını varsayar. Ayrıca süper kullanıcı ayrıcalığı gerektirir.

Bağlantı noktasını derlemek ve yüklemek için, yüklenecek bağlantı noktasının dizinine geçin ve make installistemde yazın. Mesajlar ilerlemeyi gösterecektir:

# cd /usr/ports/sysutils/lsof
# make install
>> lsof_4.88D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===>  Extracting for lsof-4.88
...
[extraction output snipped]
...
>> Checksum OK for lsof_4.88D.freebsd.tar.gz.
===>  Patching for lsof-4.88.d,8
===>  Applying FreeBSD patches for lsof-4.88.d,8
===>  Configuring for lsof-4.88.d,8
...
[configure output snipped]
...
===>  Building for lsof-4.88.d,8
...
[compilation output snipped]
...

===>  Installing for lsof-4.88.d,8
...
[installation output snipped]
...
===>   Generating temporary packing list
===>   Compressing manual pages for lsof-4.88.d,8
===>   Registering installation for lsof-4.88.d,8
===>  SECURITY NOTE:
      This port has installed the following binaries which execute with
      increased privileges.
/usr/local/sbin/lsof
#

Arttırılmış ayrıcalıklarla çalışan bir program olduğundan lsof, kurulurken bir güvenlik uyarısı görüntülenir. Kurulum tamamlandığında, bilgi istemi döndürülecektir.

PATHBazı kabuklar , bu komutların yürütülebilir dosyasına yönelik arama işlemlerini hızlandırmak için ortam değişkeninde listelenen dizinlerde bulunan komutların bir önbelleğini tutar . Kabuk kullanıcıları, yeni kurulan bir komutun tam yolunu belirtmeden kullanılabilmesi için tcshyazmalıdır . Bunun yerine kabuk için rehashkullanın Daha fazla bilgi için kabuğun belgelerine bakın.hash -rsh

Yükleme sırasında, derleme sırasında kullanılan tüm geçici dosyaları içeren çalışan bir alt dizin oluşturulur. Bu dizini kaldırmak, disk alanından tasarruf sağlar ve daha sonra bağlantı noktasının daha yeni sürümüne yükseltirken sorun yaşama olasılığını en aza indirir:

# make clean
===>  Cleaning for lsof-88.d,8
#

Bu fazladan adımı kaydetmek için bunun yerine make install cleanbağlantı noktasını derlerken kullanın.

4.5.2.1. Port Kurulumunu Özelleştirme

Bazı bağlantı noktaları, uygulama bileşenlerini etkinleştirmek veya devre dışı bırakmak, güvenlik seçenekleri sağlamak veya diğer özelleştirmelere izin vermek için kullanılabilecek oluşturma seçenekleri sunar. Örnekler arasında www/firefox ve security/gpgme yer alır . Bağlantı noktası, yapılandırılabilir seçeneklere sahip diğer bağlantı noktalarına bağlıysa, varsayılan davranış kullanıcıdan bir menüden seçenekleri seçmesini istemek olduğundan, kullanıcı etkileşimi için birkaç kez duraklayabilir. Bunu önlemek ve tüm yapılandırmayı tek bir grupta yapmak için make config-recursivebağlantı noktası iskeleti içinde çalıştırın. Ardından, make install [clean]bağlantı noktasını derlemek ve yüklemek için çalıştırın.

kullanılırken config-recursive, yapılandırılacak bağlantı noktalarının listesi all-depends-listhedef tarafından toplanır. make config-recursiveTüm bağımlılık seçeneklerinin yapılandırıldığından emin olmak için, tüm bağımlı bağlantı noktası seçenekleri tanımlanana ve bağlantı noktası seçenekleri ekranları görünmeyene kadar çalıştırmanız önerilir .

Bir bağlantı noktası oluşturulduktan sonra bu seçenekleri eklemek, kaldırmak veya değiştirmek için bir bağlantı noktasının oluşturma seçenekleri menüsünü yeniden ziyaret etmenin birkaç yolu vardır. Yöntemlerden biri, cdbağlantı noktasını içeren dizine girmek ve make configBaşka bir seçenek kullanmaktır make showconfigmake rmconfigBaşka bir seçenek , seçilen tüm seçenekleri kaldıracak ve baştan başlamanıza izin verecek olan yürütmektir . Tüm bu seçenekler ve diğerleri portlarda(7) ayrıntılı olarak açıklanmıştır .

Bağlantı noktası sistemi, çeşitli ortam değişkenlerini destekleyen kaynak dosyaları indirmek için fetch(1)' i kullanır. FTP_PASSIVE_MODEFreeBSD sistemi bir güvenlik duvarı veya FTP/HTTP proxy arkasındaysa FTP_PROXY, , ve değişkenlerinin FTP_PASSWORDayarlanması gerekebilir. Desteklenen değişkenlerin tam listesi için fetch(3)' e bakın .

İnternete her zaman bağlı olamayan kullanıcılar için, tüm dist dosyalarını almak için içinde veya gibi bir kategori içinde veya belirli bağlantı noktası iskeleti içinde make fetchçalıştırılabilir . Bir bağlantı noktasının herhangi bir bağımlılığı varsa, bu komutu bir kategoride veya bağlantı noktaları iskeletinde çalıştırmanın başka bir kategorideki bağlantı noktalarının dist dosyalarını getirmeyeceğini unutmayın . Bunun yerine, bir bağlantı noktasının tüm bağımlılıkları için dağıtım dosyalarını da getirmek için kullanın./usr/ports/usr/ports/netmake fetch-recursive

Nadir durumlarda, örneğin bir kuruluşun yerel distfiles havuzuna sahip olması gibi, değişken MASTER_SITESMakefileKullanırken alternatif konumu belirtin:

# cd /usr/ports/directory
# make MASTER_SITE_OVERRIDE= \
ftp://ftp.organization.org/pub/FreeBSD/ports/distfiles/ fetch

WRKDIRPREFIXve değişkenleri PREFIX, varsayılan çalışma ve hedef dizinlerini geçersiz kılabilir. Örneğin:

# make WRKDIRPREFIX=/usr/home/example/ports install

bağlantı noktasını derleyecek /usr/home/example/portsve altındaki her şeyi yükleyecektir /usr/local.

# make PREFIX=/usr/home/example/local install

bağlantı noktasını derleyecek /usr/portsve /usr/home/example/localVe:

# make WRKDIRPREFIX=../ports PREFIX=../local install

ikisini birleştirecek.

Bunlar çevresel değişkenler olarak da ayarlanabilir. Bir çevresel değişkenin nasıl ayarlanacağına ilişkin talimatlar için kabuğunuzun kılavuz sayfasına bakın.

4.5.3. Kurulu Bağlantı Noktalarını Kaldırma

Yüklü bağlantı noktaları kullanılarak kaldırılabilir pkg deleteBu komutun kullanımına ilişkin örnekler pkg-delete(8) kılavuz sayfasında bulunabilir .

Alternatif olarak, make deinstallbağlantı noktasının dizininde çalıştırılabilir:

# cd /usr/ports/sysutils/lsof
# make deinstall
===>  Deinstalling for sysutils/lsof
===>   Deinstalling
Deinstallation has been requested for the following 1 packages:

	lsof-4.88.d,8

The deinstallation will free 229 kB
[1/1] Deleting lsof-4.88.d,8... done

Bağlantı noktası kaldırılırken mesajları okumanız önerilir. Bağlantı noktasının kendisine bağlı herhangi bir uygulaması varsa, bu bilgi görüntülenecek ancak kaldırma işlemi devam edecektir. Bu gibi durumlarda, bağımlılıkların kırılmasını önlemek için uygulamayı yeniden yüklemek daha iyi olabilir.

4.5.4. Bağlantı Noktalarını Yükseltme

Zamanla, yazılımın daha yeni sürümleri Bağlantı Noktaları Koleksiyonunda kullanılabilir hale gelir. Bu bölümde, hangi yazılımın yükseltilebileceğinin nasıl belirleneceği ve yükseltmenin nasıl gerçekleştirileceği açıklanmaktadır.

Yüklü bağlantı noktalarının daha yeni sürümlerinin mevcut olup olmadığını belirlemek için "Git Yöntemi" nde açıklanan güncelleme komutunu kullanarak bağlantı noktası ağacının en son sürümünün yüklendiğinden emin olun Aşağıdaki komut, güncelliğini yitirmiş kurulu bağlantı noktalarını listeleyecektir:

# pkg version -l "<"

Yükseltmeyi denemeden önce, /usr/ports/UPDATINGdosyanın başından itibaren bağlantı noktalarının en son yükseltildiği veya sistemin kurulduğu tarihe en yakın tarihi okuyun. Bu dosya, dosya biçimi değişiklikleri, yapılandırma dosyalarının konumlarındaki değişiklikler veya önceki sürümlerle herhangi bir uyumsuzluk gibi şeyler dahil olmak üzere, kullanıcıların bir bağlantı noktasını güncellerken karşılaşabilecekleri ve gerçekleştirmeleri gerekebilecek çeşitli sorunları ve ek adımları açıklar. Yükseltilmesi gereken bağlantı noktalarından herhangi biriyle eşleşen yönergeleri not edin ve yükseltmeyi gerçekleştirirken bu yönergeleri izleyin.

4.5.4.1. Bağlantı Noktalarını Yükseltme ve Yönetme Araçları

Bağlantı Noktaları Koleksiyonu, gerçek yükseltmeyi gerçekleştirmek için birkaç yardımcı program içerir. Her birinin güçlü ve zayıf yönleri vardır.

Tarihsel olarak, çoğu kurulum Portmaster veya Portupgrade kullanıyordu. Synth daha yeni bir alternatiftir.

Belirli bir sistem için hangi aracın en iyi olduğu sistem yöneticisine bağlıdır. Bu araçlardan herhangi birini kullanmadan önce verilerinizi yedeklemeniz önerilir.

4.5.4.2. Portmaster'ı Kullanarak Portları Yükseltme

portlar-mgmt/portmaster kurulu portları yükseltmek için çok küçük bir yardımcı programdır. Diğer portlara veya veritabanlarına bağımlı olmadan FreeBSD temel sistemi ile kurulan araçları kullanmak için tasarlanmıştır. Bu yardımcı programı bir bağlantı noktası olarak yüklemek için:

# cd /usr/ports/ports-mgmt/portmaster
# make install clean

Portmaster dört port kategorisi tanımlar:

  • Kök bağlantı noktası: Bağımlılığı yoktur ve diğer bağlantı noktalarına bağımlı değildir.

  • Ana bağlantı noktası: bağımlılığı yoktur, ancak diğer bağlantı noktaları buna bağlıdır.

  • Şube bağlantı noktası: bağımlılıkları vardır ve diğer bağlantı noktaları buna bağlıdır.

  • Yaprak bağlantı noktası: bağımlılıkları vardır, ancak başka hiçbir bağlantı noktası buna bağlı değildir.

Bu kategorileri listelemek ve güncellemeleri aramak için:

# portmaster -L
===>>> Root ports (No dependencies, not depended on)
===>>> ispell-3.2.06_18
===>>> screen-4.0.3
        ===>>> New version available: screen-4.0.3_1
===>>> tcpflow-0.21_1
===>>> 7 root ports
...
===>>> Branch ports (Have dependencies, are depended on)
===>>> apache22-2.2.3
        ===>>> New version available: apache22-2.2.8
...
===>>> Leaf ports (Have dependencies, not depended on)
===>>> automake-1.9.6_2
===>>> bash-3.1.17
        ===>>> New version available: bash-3.2.33
...
===>>> 32 leaf ports

===>>> 137 total installed ports
        ===>>> 83 have new versions available

Bu komut, tüm eski bağlantı noktalarını yükseltmek için kullanılır:

# portmaster -a

Varsayılan olarak Portmaster, mevcut bağlantı noktasını silmeden önce bir yedekleme paketi oluşturur. Yeni sürümün kurulumu başarılı olursa, Portmaster yedeği siler. Kullanma, -bPortmaster'a yedeği otomatik olarak silmemesi talimatını verir. Ekleme -i, Portmaster'ı etkileşimli modda başlatır ve her bir bağlantı noktasını yükseltmeden önce onay ister. Diğer birçok seçenek mevcuttur. Kullanımlarıyla ilgili ayrıntılar için portmaster(8) kılavuz sayfasını okuyun .

Yükseltme işlemi sırasında hatalarla karşılaşılırsa, -ftüm bağlantı noktalarını yükseltmek ve yeniden oluşturmak için ekleyin:

# portmaster -af

Portmaster, sisteme yeni bağlantı noktaları kurmak için de kullanılabilir ve yeni bağlantı noktasını oluşturmadan ve kurmadan önce tüm bağımlılıkları yükseltir. Bu işlevi kullanmak için, Bağlantı Noktaları Koleksiyonunda bağlantı noktasının konumunu belirtin:

# portmaster shells/bash

Ports-mgmt/portmaster hakkında daha fazla bilgi pkg-descr, .

4.5.4.3. Portupgrade Kullanarak Bağlantı Noktalarını Yükseltme

portlar-mgmt/portupgrade, portları yükseltmek için kullanılabilecek başka bir yardımcı programdır. Bağlantı noktalarını yönetmek için kullanılabilecek bir dizi uygulama yükler. Ancak, Ruby'ye bağımlıdır. Bağlantı noktasını yüklemek için:

# cd /usr/ports/ports-mgmt/portupgrade
# make install clean

pkgdb -FBu yardımcı programı kullanarak bir yükseltme gerçekleştirmeden önce, kurulu bağlantı noktaları listesini kullanarak taramanız ve rapor ettiği tüm tutarsızlıkları düzeltmeniz önerilir .

Sistemde yüklü olan tüm eski bağlantı noktalarını yükseltmek için portupgrade -aAlternatif olarak, -iher bir yükseltmenin onaylanması için istenecekleri ekleyin:

# portupgrade -ai

Kullanılabilir tüm bağlantı noktaları yerine yalnızca belirli bir uygulamayı yükseltmek için Belirli bir uygulamanın gerektirdiği tüm bağlantı noktalarını ilk olarak yükseltmeye dahil etmek çok önemlidir :portupgrade pkgname-R

# portupgrade -R firefox

Dahil edilirse -P, Portupgrade içinde listelenen yerel dizinlerde mevcut paketleri arar PKG_PATHHiçbiri yerel olarak mevcut değilse, paketleri uzak bir siteden getirir. Paketler yerel olarak bulunamazsa veya uzaktan getirilemezse, Portupgrade bağlantı noktalarını kullanır. Bağlantı noktalarını tamamen kullanmaktan kaçınmak için -PPBu son seçenek seti, Portupgrade'ye hiçbir paket yoksa iptal etmesini söyler:

# portupgrade -PP gnome3

-PHerhangi bir şey oluşturmadan veya kurmadan bağlantı noktası distfiles veya paketleri (belirtilmişse) almak için -FMevcut tüm anahtarlar hakkında daha fazla bilgi için, için kılavuz sayfasına bakın portupgrade.

Port-mgmt/portupgrade hakkında daha fazla bilgi pkg-descr.

4.5.5. Bağlantı Noktaları ve Disk Alanı

Bağlantı Noktaları Koleksiyonunu kullanmak, zamanla disk alanını kullanır. Bir bağlantı noktası oluşturup kurduktan sonra, make cleanbağlantı noktası iskeleti içinde çalışmak geçici dizini temizleyecektir work-KPortmaster bir port yüklemek için kullanılırsa, belirtilmediği sürece bu dizini otomatik olarak kaldıracaktır . Portupgrade kuruluysa, bu komut workPort Koleksiyonunun yerel kopyasında bulunan tüm dizinleri kaldıracaktır:

# portsclean -C

Ayrıca, güncelliğini yitirmiş kaynak dağıtım dosyaları zamanla birikir /usr/ports/distfilesArtık herhangi bir bağlantı noktası tarafından başvurulmayan tüm dist dosyalarını silmek üzere Portupgrade'i kullanmak için:

# portsclean -D

Portupgrade, şu anda sistemde yüklü olan herhangi bir bağlantı noktası tarafından referans verilmeyen tüm dist dosyalarını kaldırabilir:

# portsclean -DD

Portmaster kuruluysa şunu kullanın:

# portmaster --clean-distfiles

Varsayılan olarak, bu komut etkileşimlidir ve kullanıcıdan bir dist dosyasının silinip silinmeyeceğini onaylamasını ister.

Bu komutlara ek olarak, portlar-mgmt/pkg_cutleaves, artık ihtiyaç duyulmayan kurulu portları kaldırma görevini otomatikleştirir.

4.6. Poudriere ile Paket Oluşturma

BSDPoudriere , FreeBSD paketlerini oluşturmak ve test etmek için lisanslı bir yardımcı programdır. Yalıtılmış derleme ortamları kurmak için FreeBSD hapishanelerini kullanır. Bu hapishaneler, kurulu olduğu sistemden farklı FreeBSD sürümleri için paketler oluşturmak için ve ayrıca ana bilgisayar bir amd64 sistemiyse i386 için paketler oluşturmak için kullanılabilir. Paketler oluşturulduktan sonra, resmi aynalarla aynı düzendedirler. Bu paketler, pkg(8) ve diğer paket yönetim araçları tarafından kullanılabilir .

Poudriere, port-mgmt/poudriere paketi veya portu kullanılarak kurulur . Kurulum, örnek bir yapılandırma dosyası içerir /usr/local/etc/poudriere.conf.sampleBu dosyayı /usr/local/etc/poudriere.confKopyalanan dosyayı yerel yapılandırmaya uyacak şekilde düzenleyin.

Poudriere çalıştıran sistemde gerekli olmamakla birlikte ZFSfaydalıdır. Ne zaman ZFSkullanıldığı, ZPOOLiçinde belirtilmeli /usr/local/etc/poudriere.confve FREEBSD_HOSTyakındaki bir aynaya ayarlanmalıdır. Tanımlama, derlemeyi önbelleğe almak ve sık derlenen kod için oluşturma sürelerini azaltmak için devel/ccacheCCACHE_DIR kullanımını etkinleştirir . Poudriere veri kümelerini Diğer yapılandırma değerleri için varsayılanlar yeterlidir./poudriere

Algılanan işlemci çekirdeği sayısı, kaç yapının paralel olarak çalışacağını tanımlamak için kullanılır. Alanla RAMveya takas alanıyla yeterli sanal bellek sağlayın. Sanal bellek biterse, derleme hapishaneleri durur ve yıkılır, bu da garip hata mesajlarına yol açar.

4.6.1. Hapishaneleri ve Liman Ağaçlarını Başlat

Konfigürasyondan sonra, gerekli FreeBSD ağacı ve bağlantı noktası ağacı ile bir hapishane kuracak şekilde poudriere'yi başlatın. Kullandığınız hapishane -jve -vFreeBSD/amd64 çalıştıran sistemlerde mimari , veya -aile ayarlanabilir Varsayılan, ile gösterilen mimaridir .i386amd64uname

# poudriere jail -c -j 13amd64 -v 13.1-RELEASE
[00:00:00] Creating 13amd64 fs at /poudriere/jails/13amd64... done
[00:00:00] Using pre-distributed MANIFEST for FreeBSD 13.1-RELEASE amd64
[00:00:00] Fetching base for FreeBSD 13.1-RELEASE amd64
/poudriere/jails/13amd64/fromftp/base.txz              125 MB 4110 kBps    31s
[00:00:33] Extracting base... done
[00:00:54] Fetching src for FreeBSD 13.1-RELEASE amd64
/poudriere/jails/13amd64/fromftp/src.txz               154 MB 4178 kBps    38s
[00:01:33] Extracting src... done
[00:02:31] Fetching lib32 for FreeBSD 13.1-RELEASE amd64
/poudriere/jails/13amd64/fromftp/lib32.txz              24 MB 3969 kBps    06s
[00:02:38] Extracting lib32... done
[00:02:42] Cleaning up... done
[00:02:42] Recording filesystem state for clean... done
[00:02:42] Upgrading using ftp
/etc/resolv.conf -> /poudriere/jails/13amd64/etc/resolv.conf
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching public key from update4.freebsd.org... done.
Fetching metadata signature for 13.1-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 124 patches.....10....20....30....40....50....60....70....80....90....100....110....120.. done.
Applying patches... done.
Fetching 6 files... done.
The following files will be added as part of updating to
13.1-RELEASE-p1:
/usr/src/contrib/unbound/.github
/usr/src/contrib/unbound/.github/FUNDING.yml
/usr/src/contrib/unbound/contrib/drop2rpz
/usr/src/contrib/unbound/contrib/unbound_portable.service.in
/usr/src/contrib/unbound/services/rpz.c
/usr/src/contrib/unbound/services/rpz.h
/usr/src/lib/libc/tests/gen/spawnp_enoexec.sh
The following files will be updated as part of updating to
13.1-RELEASE-p1:
[…]
Installing updates...Scanning //usr/share/certs/blacklisted for certificates...
Scanning //usr/share/certs/trusted for certificates...
 done.
13.1-RELEASE-p1
[00:04:06] Recording filesystem state for clean... done
[00:04:07] Jail 13amd64 13.1-RELEASE-p1 amd64 is ready to be used
# poudriere ports -c -p local -m git+https
[00:00:00] Creating local fs at /poudriere/ports/local... done
[00:00:00] Checking out the ports tree... done

Poudriere, tek bir bilgisayarda birden çok yapılandırmayla, birden çok hapishanede ve farklı bağlantı noktası ağaçlarından bağlantı noktaları oluşturabilir. Bu kombinasyonlar için özel konfigürasyonlara setler denir port-mgmt/poudriere veya port-mgmt/poudriere-devel yüklendikten sonraki ayrıntılar için poudriere(8)' in ÖZELLEŞTİRME bölümüne bakın .

make.confBurada gösterilen temel yapılandırma /usr/local/etc/poudriere.d, . Bu örnekteki dosya adı, hapishane adı, bağlantı noktası adı ve set adı birleştirilerek oluşturulur: 13amd64-local-workstation-make.confSistem ve bu yeni dosya, derleme hapishanesi tarafından kullanılanı make.confoluşturmak için derleme zamanında birleştirilir .make.conf

İnşa edilecek paketler şuraya girilir 13amd64-local-workstation-pkglist:

editörler/emac'ler
geliştirme/git
port yönetimi/pkg
...

Belirtilen bağlantı noktaları için seçenekler ve bağımlılıklar yapılandırılır:

# poudriere options -j 13amd64 -p local -z workstation -f 13amd64-local-workstation-pkglist

Son olarak, paketler oluşturulur ve bir paket deposu oluşturulur:

# poudriere bulk -j 13amd64 -p local -z workstation -f 13amd64-local-workstation-pkglist

Çalışırken Ctrl+'yat basmak, derlemenin mevcut durumunu görüntüler. /poudriere/logs/bulk/jailnamePoudriere ayrıca , yapı bilgilerini görüntülemek için bir web sunucusuyla kullanılabilecek dosyalar da oluşturur .

Tamamlandıktan sonra, yeni paketler artık poudriere deposundan kurulum için hazırdır.

Poudriere kullanımı hakkında daha fazla bilgi için poudriere(8)' e ve ana web sitesine bakın, https://github.com/freebsd/poudriere/wiki .

4.6.2. Bir Poudriere Deposu Kullanmak için pkg İstemcilerini Yapılandırma

Resmi havuzun yanı sıra her iki özel havuzu da kullanmak mümkün olsa da, bazen resmi depoyu devre dışı bırakmak yararlı olabilir. Bu, resmi yapılandırma dosyasını geçersiz kılan ve devre dışı bırakan bir yapılandırma dosyası oluşturarak yapılır. /usr/local/etc/pkg/repos/FreeBSD.confAşağıdakileri içeren oluşturun :

Ücretsiz BSD: {
	etkin: hayır
}

İstemci makinelere HTTP yoluyla bir poudriere havuzu sunmak genellikle en kolay yoldur. Paket dizinini sunmak için bir web sunucusu kurun, örneğin: /usr/local/poudriere/data/packages/13amd6413amd64yapının adı buradadır.

Paket deposunun URL'si: ise http://pkg.example.com/13amd64, depo yapılandırma dosyası /usr/local/etc/pkg/repos/custom.confşöyle görünür:

gelenek: {
	url: "http://pkg.example.com/13amd64",
	etkin: evet,
}

4.7. Kurulum Sonrası Hususlar

Yazılımın bir ikili paketten mi yoksa bağlantı noktasından mı yüklendiğine bakılmaksızın, üçüncü taraf uygulamalarının çoğu yüklemeden sonra bir düzeyde yapılandırma gerektirir. Aşağıdaki komutlar ve konumlar, uygulamayla birlikte neyin yüklendiğini belirlemeye yardımcı olmak için kullanılabilir.

  • Çoğu uygulama /usr/local/etc, . Bir uygulamanın çok sayıda yapılandırma dosyasına sahip olduğu durumlarda, bunları tutmak için bir alt dizin oluşturulur. Genellikle, .sampleKonfigürasyon dosyaları gözden geçirilmeli ve muhtemelen sistemin ihtiyaçlarını karşılayacak şekilde düzenlenmelidir. Bir örnek dosyayı düzenlemek için önce uzantısı olmadan kopyalayın .sample.

  • Dokümantasyon sağlayan uygulamalar, belgeyi kurar /usr/local/share/docve birçok uygulama da kılavuz sayfalarını kurar. Devam etmeden önce bu belgelere başvurulmalıdır.

  • /etc/rc.confBazı uygulamalar, uygulamaya başlamadan önce eklenmesi gereken hizmetleri çalıştırır . Bu uygulamalar genellikle /usr/local/etc/rc.dDaha fazla bilgi için Hizmetleri Başlatma bölümüne bakın .

    Tasarım gereği, uygulamalar kurulum sırasında başlangıç ​​komut dosyalarını çalıştırmaz veya kaldırma veya yükseltme sonrasında durdurma komut dosyalarını çalıştırmaz. Bu karar bireysel sistem yöneticisine bırakılmıştır.

  • csh(1) kullanıcıları, rehashbilinen ikili listeyi kabuklarda yeniden oluşturmak için çalıştırılmalıdır PATH.

  • pkg infoUygulamayla birlikte hangi dosyaların, kılavuz sayfalarının ve ikili dosyaların yüklendiğini belirlemek için kullanın .

4.8. Bozuk Bağlantı Noktalarıyla Başa Çıkma

Bir bağlantı noktası oluşturulmadığında veya kurulmadığında aşağıdakileri deneyin:

  1. Sorun Raporu veritabanında bağlantı noktası için bekleyen bir düzeltme olup olmadığını görmek için arama yapın Öyleyse, önerilen düzeltmeyi uygulamak sorunu çözebilir.

  2. Limanın bakımcısından yardım isteyin. Bakımcının e-posta adresini bulmak için bağlantı noktası iskeletini yazın make maintainerveya bağlantı noktasını okuyun . MakefileBakımcıya gönderilen e-postada hataya yol açan çıktıyı eklemeyi unutmayın.

    Bazı bağlantı noktaları bir kişi tarafından değil, bunun yerine bir posta listesi tarafından temsil edilen bir grup koruyucusu tarafından korunur . Bu adreslerin tümü olmasa da çoğu, freebsd-listname@FreeBSD.org gibi görünür . Lütfen bir e-posta gönderirken bunu dikkate alın.

    Özellikle,ports @FreeBSD.org tarafından sağlanan bağlantı noktaları belirli bir kişi tarafından sağlanmamaktadır. Bunun yerine, herhangi bir düzeltme ve destek, bu posta listesine abone olan genel topluluktan gelir. Her zaman daha fazla gönüllüye ihtiyaç vardır!

    E-postaya yanıt gelmezse, FreeBSD Sorun Raporlarını Yazma bölümündeki talimatları kullanarak bir hata raporu göndermek için Bugzilla'yı kullanın .

  3. Düzelt! Kapıcının El Kitabı, ara sıra bozulan bağlantı noktasını düzeltebilmeniz veya hatta kendi bağlantı noktanızı gönderebilmeniz için bağlantı noktaları altyapısı hakkında ayrıntılı bilgiler içerir!

  4. İkili Paket Yönetimi için pkg Kullanımı bölümündeki yönergeleri kullanarak bağlantı noktası yerine paketi kurun .


Son değiştirilme tarihi : 12 Şubat 2023, Mateusz Piotrowski tarafından

Hiç yorum yok:

Yorum Gönder

FreeBSD Bölüm 4. Uygulamaları Yükleme

   Bölüm 4. Uygulamaları Yükleme: Paketler ve Bağlantı Noktaları 4.1.  özet FreeBSD, temel sistemin bir parçası olarak zengin bir sistem ara...