Devtoolsu Arch Linuxta Kullanma

Devtools paketi aslen Güvenilir Kullanıcılar için resmi depolar için uygun paketler oluşturması amacıyla yapılmıştır. Bununla birlikte, sıradan kullanıcılar tarafından AUR paketleri, hatta değiştirilmiş resmi paketler oluşturmak için de kullanılabilir.

AUR'yi anlamak da dahil olmak üzere genel olarak AUR'yi anlamak ve kullanmak için bu kılavuza başvurun PKGBUILD. Bu doküman, yalnızca bir paketi derlemeyi seçtiğiniz yöntemse Devtools'a özgü adımları gösterir.

Devtools /var/lib/archbuild/<TARGET>/root, yalnızca paket gruplarını içeren baseve içinde bulunan ayrı bir temiz Arch kurulumunu korur base-devel. Bu temiz kurulum yoksa, otomatik olarak oluşturur. Varsa, içindeki tüm paketleri otomatik olarak günceller. Devtools bir paket oluşturmak için kullanıldığında, bu temiz kurulumun bir kopyasıyla başlar, gerekli paketleri yalnızca kopyaya yükler, kaynak kodunu içine kopyalar, derleme ve paketlemeyi gerçekleştirir ve yalnızca ortaya çıkan paketi kopyalar, resmi depolarda bulunanlarla aynı şekilde.

Devtools'un makepkgdoğrudan koşmaya göre avantajları var . Bir avantajı, yaptığınız base-develpaketin derlenmesi için ana sisteminize asla sarılmaması, ancak çalıştırılmaması gereken diğer paketlerin olmasıdır. Bu, periyodik olarak yükseltilmesi ve endişeleri olması için daha az pakettir. Her ne kadar birincil olarak Arch paketi koruyucular için bir fayda olsa da, bu işlem a'nın PKGBUILDyanlış olduğu durumlarda kolayca ortaya çıkar ; örneğin, bir bağımlılığın, ana sistemin zaten yüklü olduğu bir bağımlılığın listelenmemesi gibi. Ayrıca, paket oluşturmada daha hızlı bir makine kullanabilir ve elde edilen paketi, bina makinesinin kurulumunu kirletmeden çalıştıracak daha yavaş bir makineye kopyalayabilirsiniz.

Ana dezavantaj, temiz kökün her zaman orada olmasıdır, yaklaşık 800MB alır ve genellikle tek bir kopya daha fazla yer kaplar. Not eğer /var/lib/archbuild/kullanımları Btrfs, Btrfs anlık olmanın kapalı temiz kök başlar kopyası, bu dosyalar çift aralık yapmayız böylece. Temiz kök, her paket hazırlandığında yeniden kurulmasını önlemek için her zaman orada tutulur.

Devtools Kullanarak Derleme

Devtools'u yükleyin:

# pacman -S devtools

Bir paket oluşturmak için Devtools şunları içerir archbuild, ancak bunu doğrudan çalıştırmazsınız. Ayrıca simgelerini de içerir {extra, gnome-unstable, kde-unstable, staging, testing}-x86_64-build. Kullanmak istediğiniz symlink, archbuildhangi hedefi kullanmak istediğinizi belirlemek için denetlenecek şekilde kullanılır. Resmi depolarda yayınlanmış olandan daha yeni sürümlere sahip olabilecek bu kararsız / aşamalandırma / test havuzlarını kullanmak için çalıştırılabilir. AUR olmayan paketler için resmi depoları kullanmak için PKGBUILD, örneğin dizini içeren dizinde git cloneaşağıdakileri çalıştırın:

$ extra-x86_64-build

Not: Bu kılavuzun geri kalan kısmına değinilecektir extra-x86_64-build.

Çalışmayı bitirdikten sonra sonuçlar aşağıdakiler olacaktır:

  • /var/lib/archbuild/extra-x86_64/root- Sadece paket grupları ve ile güncel bir kurulum olan temiz bir kroot .basebase-devel
  • /var/lib/archbuild/extra-x86_64/<USERNAME>- Bu bir derleme kroketi içerecektir . Bu, temiz krootun, inşa edilen paketi oluşturmak veya çalıştırmak için gereken bağımlılıkların yanı sıra kaynak kodu, derleme sonuçları ve paketinin bir kopyasıdır.
  • İçinde bulunduğunuz dizin paketi ve derleme günlük dosyalarını ve indirilen kaynak kodlarını içerecektir.

Sonunda, " Checking PKGBUILD" ve " Checking <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz" işaretlerini görebilirsiniz. Bunlardan sonraki herhangi bir satır namcap, otomatik olarak hatalı biçimlendirilmiş PKGBUILDdosyalar, paketin kullanılmadığı dahil edilen bağımlılıklar, paketin kullanılmadığı dahil olmayan bağımlılıklar ve daha fazlası gibi sorunları arar . Yanlış pozitifler genellikle tarafından oluşturulur namcap, ancak şeyleri araştırmak için harika bir araçtır. Paketiniz düzgün çalışıyorsa namcap, bakıcıya bakmadığınız ve bir değişiklik yapılması gerektiği doğrulanmadığı sürece bakımcının çıktı alması için uyarılması iyi bir fikir değildir .

pacmanPaketi, resmi depolarda veya yerel bir depoda oldukları sürece çalıştırmak için gereken bağımlılıkları yükleyecek şekilde yüklemek için kullanabilirsiniz .

Burada açıklandığı gibi bir Yerel Depo kullanın veya dosyayı doğrudan yükleyin:

# pacman -U <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz

extra-x86_64-buildTekrar, şimdi ya da daha sonra bu ya da başka bir paketle tekrar çalıştırırsanız , gerekirse temiz krootu güncelleyecek, yapı krokisini silecek ve temiz krootun yeni bir kopyası olacak ve aynı işlemi gerçekleştirecektir. Dizininiz hala son kez indirilen kaynak koduna sahipse, dizini kullanır. Paket bir gelişimsel AUR paketiyse, yeniden klonlamak yerine yeni değişiklikler çekecektir.

Dahili olarak, dahili olarak çağıran extra-x86_64-buildçalışır . Seçenekler aşağıdakileri içerir:makechrootpkgmakepkgextra-x86_64-build

  • -c: Temiz chro /var/lib/archbuild/extra-x86_64/ve tüm build chro dizinleri de dahil olmak üzere tüm dizini kaldırarak ve yeniden oluşturarak krootları temizleyin. Bu, yalnızca temiz kroot bozulursa veya Devtools, geriye dönük uyumluluğu bozacak şekilde yükseltilirse nadiren gereklidir.
  • -r <dir>: /var/lib/archbuild/extra-x86_64/Kökleri içermekten farklı bir dizin kullanın .

Herhangi argümanlar extra-x86_64-buildsonra --geçirilir makechrootpkgdahili olarak bunu kullandığında,. Çeşitli argümanlar her zaman otomatik olarak geçirilen extra-x86_64-buildiçin makechrootpkg. Bu otomatik argümanlar -r <value given to extra-x86_64-build -r option if given, /var/lib/archbuild/extra-x86_64 otherwise> -c -n. makechrootpkgYapı krootunu çıkarmayı ve onu temiz krootun yeni bir kopyasını yapmayı ve namcapbaşarılı bir şekilde inşa edilirse paket üzerinde çalıştırmayı söylerler . Geçirilebilir Yaygın kullanılan seçenektir makechrootpkgolduğunu -l <copy name>. Bu, <USERNAME>birden çok kopyayı korumak veya aynı anda birden çok paketi derlemek için yararlı olan, yapı krokisine verilecek dizin adıdır .

Herhangi argümanlar makechrootpkgsonra --geçirilir makepkgdahili olarak paketi oluşturmak için kullanır zaman. İlk kez makepkgçalıştırılırsa makechrootpkg, kaynak dosyaları indirmek ve bütünlük kontrolleri yapmak için kendi değiştirilemez seçenekleriyle yapılır; böylece bu koşuda hiçbir şey iletilemez. Bu ishal makepkgpaketi oluşturmak için ikinci kez ve her zaman otomatik olarak geçer makepkgsavlarını --syncdeps --noconfirm --log --holdver --skipintegsöyler makepkgsırasında onay istemek için değil, inşa chroot içinde, otomatik bina ve paket kullanmak için gerekli bağımlılıkları eksik yüklemek pacman, metne inşa sürecini log Ayrıca stdout, sürüm kontrol sisteminde kaynak kodunu güncellemeyin ve kaynak dosya doğrulama kontrolleri yapmayın.

Aşağıdaki formu kullanarak bunları birbirine zincirleyebilirsiniz:

$ extra-x86_64-build <DEVTOOLS-OPTIONS> -- <MAKECHROOTPKG-OPTIONS> -- <MAKEPKG-OPTIONS>

/var/lib/archbuildGeçici bir dizinmiş gibi davranılabileceğini unutmayın . Birden fazla Vultr sabit sürücünüz varsa, buraya bir RAID0 (şerit) dosya sistemi takmaya değer. Çok fazla RAM'iniz varsa, RAM destekli bir dosya sistemi de takabilirsiniz tmpfs. Bir paket oluşturulduktan sonra, koştuğunuz dizine kopyalanır extra-x86_64-buildve isterseniz bu noktada silebilirsiniz /var/lib/archbuild. Bir sonraki çalıştırma daha yavaş olacaktır, çünkü yeni bir temiz kök oluşturması gerekecektir. Alternatif olarak, bir /var/lib/archbuild/<USERNAME>sonraki Devtools çalıştırması tarafından otomatik olarak silinmeden önce yapı krootundan fazla alan kazanmak için silebilirsiniz . Yani, burada monte edilmiş bir RAID0 dosya sisteminiz başarısız olsa bile, kaybedeceğiniz en büyük şey bir derleme olacaktır.

Devtools Yapılandırma Dosyaları

Devtools yapılandırma dosyalarıyla ilgili dikkat edilmesi gereken birkaç özellik vardır. Bunlar, ve /usr/share/devtools/gibi bulunur :makepkg-x86_64.confpacman-extra.conf

  • For /etcgibi dosyalar makepkg.confve pacman.confgüvenle yerde düzenleyebilir ve paket yükseltildiğinde, bu değişiklikleri üzerine yazılmaz. Bunun yerine, yeni yapılandırma dosyalarını (önceki sürümden değiştirildiyse) ile biter .pacnew. Bununla birlikte, Devtools yapılandırma dosyaları /usr/share/kullanıcı tarafından düzenlenmesi amaçlanmamıştır, bu nedenle Devtools yükseltildiğinde, sizi uyarmadan bu dosyalarda yaptığınız değişikliklerin tamamen üzerine yazılır. Bu davranışta bir değişiklik önerildi ve reddedildi, çünkü bu, paketlerin hepsi aynı derleme ayarlarına sahip resmi depolara gönderilmesine yardımcı oluyor.
  • Değeri için MAKEFLAGS, PACKAGERve {SRC,SRCPKG,PKG,LOG}DESTalınan /etc/makepkg.confyerine /usr/share/devtools/makepkg-x86_64.conf.

Yerel Depo

Oluşturduğunuz diğer paketlere bağımlılığı olan paketler pacmanoluşturuyorsanız, derleme chrootu içinde çalıştırıldığında bağımlılıkları bulabilmesi için yerel bir havuz kullanmanız gerekir .

Yerel bir havuz ayarlamak için bu kılavuzun "Yerel Depo" bölümüne bakın.

Özel bir hedef oluşturun:

# ln -s archbuild /usr/bin/custom-x86_64-build
# cp /usr/share/devtools/pacman-{extra,custom}.conf

Düzenleyin /usr/share/devtools/pacman-custom.confve sonuna aşağıdakileri ekleyin:

[archLocalRepo]
SigLevel = Optional TrustAll
Server = file:///archLocalRepo

Düzen /etc/pacman.confve aşağıdakileri ekleyin. Bu, dizini chroot içine bağlanmış şekilde zorlar:

CacheDir    = /var/cache/pacman/pkg/ /archLocalRepo/

Şimdi extra-x86_64-buildkullanmak yerine şunu kullanın:

$ custom-x86_64-build

Her zaman özel hedefi kullanmak istiyorsanız, /var/lib/archbuild/extra-x86_64-build/dizinde artık varsa dizini silebilirsiniz /var/lib/archbuild/custom-x86_64-build/.

Daha Hızlı Paket

Dişli paketlemeyi etkinleştirmenin /usr/share/devtools, resmi olarak desteklenmeyen yapılandırma dosyalarını düzenlemeyi içerdiğini unutmayın , bu nedenle Devtools her yükseltildiğinde bu değişikliği yapmanız gerekir.

Devtools, paketin tamamını bir arşiv biçiminde birleştirir. Varsayılan olarak, sıkıştırma .tar.xziçin tek bir iş parçacığı kullanır xz.

Çoklu CPU sistemlerinde, xzdüzenleyerek birden çok iş parçacığının kullanılmasına izin verebilir /usr/share/devtools/makepkg-x86_64.confve aşağıdaki satırı değiştirebilirsiniz:

COMPRESSXZ=(xz -c -z -)

Sanal çekirdekleriniz kadar çok iş parçacığına izin vermek için:

COMPRESSXZ=(xz -c -z - --threads=0)

Genel sistem performansı üzerindeki etkiyi azaltmak için hepsi değil birden fazla sanal çekirdek kullanılmasına izin vermek için belirli bir sayı ekleyin:

COMPRESSXZ=(xz -c -z - --threads=21)

Sahip olduğunuz sanal çekirdek sayısından daha fazla iş parçacığı belirtmek performansı düşürür.

Paket dosyasının (büyük olasılıkla) daha büyük olduğunu düşünmüyorsanız, düzenleyerek sıkıştırmayı devre dışı bırakın /usr/share/devtools/makepkg-x86_64.confve aşağıdaki satırı değiştirin:

PKGEXT='.pkg.tar.xz'

Aşağıdaki gibi görünecek şekilde değiştirin:

PKGEXT='.pkg.tar'


Leave a Comment

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların önüne # ve bir

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların başına # işareti gelir. th

Mumble Sunucusunu Arch Linuxta Kur

Mumble Sunucusunu Arch Linuxta Kur

Bu eğitimde Arch Linux üzerinde bir Mumble sunucusunun (Murmur) nasıl kurulacağı açıklanmaktadır. Bu öğreticide yapılan her şey kök kullanıcı olarak yapılır. Kurulum ve

Btrfs Snapshot ile Arch Linux Kurulumu

Btrfs Snapshot ile Arch Linux Kurulumu

Önsöz Arch Linux, üstün teknolojisi ve esnek yapılandırması ile bilinen genel amaçlı bir dağıtımdır. Btrfs anlık görüntüleri ile

Arch Linux Webserverda HTTPS Nasıl Kullanılır

Arch Linux Webserverda HTTPS Nasıl Kullanılır

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Çalışan bir web sunucusu, Apache veya Nginx Sudo erişim Komutları gerekli t

Arch Linux Üzerinde Paket Oluşturma (AUR dahil)

Arch Linux Üzerinde Paket Oluşturma (AUR dahil)

Arch Linuxta resmi depolar şunlardır: çekirdek, ekstra ve topluluk. Bu paketler zaten derlenmiştir ve pacman aracılığıyla kurulur. Th için

Arch Linuxu Vultr Sunucusuna Kurma

Arch Linuxu Vultr Sunucusuna Kurma

Vultr, mükemmel şablonlarına ek olarak kendi özel resminizi kullanmanıza izin veren harika bir işlevsellik sunar.

Arch Linuxta Spigot Sunucusunu Kurun

Arch Linuxta Spigot Sunucusunu Kurun

Bu eğitimde Arch Linuxta Spigot kullanarak bir Minecraft sunucusunun nasıl kurulacağı açıklanmaktadır. Bu öğretici, normal bir kullanıcı (root değil) ve hav olduğunuzu varsayar.

Vultr Sunucusuna 2019 Arch Linux Kurulumu

Vultr Sunucusuna 2019 Arch Linux Kurulumu

Giriş Arch Linux, daha popüler dağıtımlardan daha küçük, ancak yine de güçlüdür. Felsefesi oldukça farklı, avantajları ve

Bir Arch Linux Web Sunucusuna Python 3.7 Kurulumu

Bir Arch Linux Web Sunucusuna Python 3.7 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Çalışan bir web sunucusu, Apache veya Nginx Sudo erişimi: Komutlar gerektirir

Bir Arch Linux Web Sunucusuna PHP 7.3 Kurulumu

Bir Arch Linux Web Sunucusuna PHP 7.3 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Çalışan bir web sunucusu, Apache veya Nginx Sudo erişimi. Komutlar gerektirir

Arch Linuxta Makepkg kullanma

Arch Linuxta Makepkg kullanma

Doğrudan makepkg kullanırsanız, sisteminizi biraz kirletir. Base-devel paket grubu kurulmalıdır. Bu şekilde, varsayılan olarak, bağımlılıklar

Arch Linuxa MongoDB 4.0 Kurulumu

Arch Linuxa MongoDB 4.0 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın) Sudo erişimi: Kök olarak çalıştırılması gereken komutların önüne # ve bir

Arch Linuxa MariaDB 10.3 veya MySQL 8.0 Kurulumu

Arch Linuxa MariaDB 10.3 veya MySQL 8.0 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi: Kök olarak çalıştırılması gereken komutların önüne # ve bir

Bir Arch Linux Web Sunucusuna Perl 5.28 Kurulumu

Bir Arch Linux Web Sunucusuna Perl 5.28 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Çalışan bir web sunucusu, Apache veya Nginx Sudo erişimi: Komutlar gerektirir

Counter-Strike: Arch of Linuxta Global Offensive (CSGO) Sunucusu Kurma

Counter-Strike: Arch of Linuxta Global Offensive (CSGO) Sunucusu Kurma

Bu eğitimde Arch Linuxta Counter-Strike: Global Offensive sunucusunun nasıl kurulacağı açıklanmaktadır. Bu eğiticide standart bir kullanımla oturum açtığınız varsayılmaktadır

Arch Linuxta Team Fortress 2 Sunucusu Kurma

Arch Linuxta Team Fortress 2 Sunucusu Kurma

Bu eğitimde Arch Linux üzerinde Team Fortress 2 sunucusunun nasıl kurulacağı açıklanmaktadır. Sudo erişimi olan kök olmayan bir kullanıcı hesabıyla oturum açtığınızı varsayıyorum

Arch Linux Üzerinde Apache 2.4 Kurulumu

Arch Linux Üzerinde Apache 2.4 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu. Daha fazla bilgi için bu kılavuza bakın. Sudo erişimi. Kök ar olarak çalıştırılması gereken komutlar

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun