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.
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.
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
nginx
paket ve bir paket olarak mevcuttur .nginx-lite
Bir 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 |
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/pkg
aka 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 pkg
. Ek 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, Quarterly
kullanı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, Latest
paketlerin 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 |
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.
4.4.4. Paket Arama
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
Artık ihtiyaç duyulmayan paketler pkg-delete(8) ile kaldırılabilir .
Ö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-list
içinde bildirilen bir diğer ad komutudur /usr/local/etc/pkg.conf
. Sistemin paket veri tabanını sorgulamak için kullanılabilecek daha pek çok şey vardır. Örneğin, pkg prime-origins
yukarı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) |
Ö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:
|
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ı, distfile
. Bağ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:
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 |
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 install
istemde 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.
PATH
Bazı 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 tcsh
yazmalıdır . Bunun yerine kabuk için rehash
kullanın . Daha fazla bilgi için kabuğun belgelerine bakın.hash -r
sh
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 |
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-recursive
bağ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 |
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, cd
bağlantı noktasını içeren dizine girmek ve make config
. Başka bir seçenek kullanmaktır make showconfig
. make rmconfig
Baş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_MODE
FreeBSD sistemi bir güvenlik duvarı veya FTP/HTTP proxy arkasındaysa FTP_PROXY
, , ve değişkenlerinin FTP_PASSWORD
ayarlanması 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/net
make fetch-recursive
Nadir durumlarda, örneğin bir kuruluşun yerel distfiles havuzuna sahip olması gibi, değişken MASTER_SITES
, Makefile
. Kullanırken alternatif konumu belirtin:
# cd /usr/ports/directory
# make MASTER_SITE_OVERRIDE= \
ftp://ftp.organization.org/pub/FreeBSD/ports/distfiles/ fetch
WRKDIRPREFIX
ve 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/ports
ve altındaki her şeyi yükleyecektir /usr/local
.
# make PREFIX=/usr/home/example/local install
bağlantı noktasını derleyecek /usr/ports
ve /usr/home/example/local
. Ve:
# 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 delete
. Bu komutun kullanımına ilişkin örnekler pkg-delete(8) kılavuz sayfasında bulunabilir .
Alternatif olarak, make deinstall
bağ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, |
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, |
Yükseltme işlemi sırasında hatalarla karşılaşılırsa, -f
tü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 -F
Bu 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 -a
. Alternatif olarak, -i
her 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_PATH
. Hiç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 -PP
. Bu son seçenek seti, Portupgrade'ye hiçbir paket yoksa iptal etmesini söyler:
# portupgrade -PP gnome3
-P
Herhangi bir şey oluşturmadan veya kurmadan bağlantı noktası distfiles veya paketleri (belirtilmişse) almak için -F
. Mevcut 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 clean
bağlantı noktası iskeleti içinde çalışmak geçici dizini temizleyecektir work
. -K
Portmaster bir port yüklemek için kullanılırsa, belirtilmediği sürece bu dizini otomatik olarak kaldıracaktır . Portupgrade kuruluysa, bu komut work
Port 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/distfiles
. Artı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
BSD
Poudriere , 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.sample
. Bu dosyayı /usr/local/etc/poudriere.conf
. Kopyalanan dosyayı yerel yapılandırmaya uyacak şekilde düzenleyin.
Poudriere çalıştıran sistemde gerekli olmamakla birlikte ZFS
faydalıdır. Ne zaman ZFS
kullanıldığı, ZPOOL
içinde belirtilmeli /usr/local/etc/poudriere.conf
ve FREEBSD_HOST
yakı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 RAM
veya 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 -j
ve -v
. FreeBSD/amd64 çalıştıran sistemlerde mimari , veya -a
ile ayarlanabilir . Varsayılan, ile gösterilen mimaridir .i386
amd64
uname
# 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.conf
Burada 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.conf
. Sistem ve bu yeni dosya, derleme hapishanesi tarafından kullanılanı make.conf
oluş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/jailname
Poudriere 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.conf
Aş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/13amd64
, 13amd64
yapı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,.sample
. Konfigü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/doc
ve birçok uygulama da kılavuz sayfalarını kurar. Devam etmeden önce bu belgelere başvurulmalıdır./etc/rc.conf
Bazı uygulamalar, uygulamaya başlamadan önce eklenmesi gereken hizmetleri çalıştırır . Bu uygulamalar genellikle/usr/local/etc/rc.d
. Daha 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ı,
rehash
bilinen ikili listeyi kabuklarda yeniden oluşturmak için çalıştırılmalıdırPATH
.pkg info
Uygulamayla 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:
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.
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 maintainer
veya bağlantı noktasını okuyun .Makefile
Bakı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 .
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!
İ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