Arch User Repository (Türkçe)
Arch User Repository (AUR - Arch Kullanıcı Deposu), Arch Linux kullanıcıları için topluluk tarafından yönetilen bir depodur. İçerisinde, bir paketi kaynak kodundan makepkg ile derlemenizi ve ardından pacman aracılığıyla yüklemenizi sağlayan paket açıklamaları (PKGBUILD dosyaları) barındırır. AUR, topluluktan gelen yeni paketleri organize etmek, paylaşmak ve popüler paketlerin resmi extra deposuna dahil edilme sürecini hızlandırmak amacıyla oluşturulmuştur. Bu belge, kullanıcıların AUR'a nasıl erişebileceğini ve ondan nasıl yararlanabileceğini açıklamaktadır.
Resmi depolara giren birçok yeni paket serüvenine ilk olarak AUR'da başlar. Kullanıcılar AUR'da kendi paket derleme dosyalarını (PKGBUILD ve ilgili diğer dosyalar) toplulukla paylaşabilirler. AUR topluluğu, buradaki paketler için oy kullanma hakkına sahiptir. Eğer bir paket yeterince popüler hale gelirse—uygun bir lisansa ve iyi bir paketleme tekniğine sahip olması şartıyla—extra deposuna dahil edilebilir (böylece pacman ile doğrudan veya Arch derleme sistemi üzerinden erişilebilir hale gelir).
PKGBUILD dosyaları tamamen resmiyetsizdir ve kapsamlı bir güvenlik taramasından geçirilmemiştir. Bu dosyalardan doğabilecek tüm riskler kullanıcının kendisine aittir.Başlarken
Kullanıcılar, AUR Web Arayüzü üzerinden PKGBUILD dosyalarını arayabilir ve indirebilirler. Bu PKGBUILD'ler, makepkg kullanılarak yüklenebilir paketler haline getirilir ve ardından pacman ile sisteme kurulur.
- base-devel paket grubunun sisteminizde kurulu olduğundan emin olun.
- En yaygın soruların yanıtları için #Sıkça sorulan sorular bölümüne göz atın.
- AUR'dan paket derlemeden önce, derleme sürecini sisteminize göre optimize etmek için
/etc/makepkg.confdosyasını düzenlemek isteyebilirsiniz. Çok çekirdekli işlemciye sahip sistemlerdeMAKEFLAGSdeğişkenini ayarlayarak, sıkıştırma için birden fazla çekirdek kullanarak veya farklı bir sıkıştırma algoritması seçerek paket derleme sürelerinde gözle görülür bir hızlanma sağlayabilirsiniz. Kullanıcılar ayrıcaCFLAGSdeğişkeni aracılığıyla donanıma özel derleyici optimizasyonlarını da etkinleştirebilirler. Daha fazla bilgi için makepkg#Optimization makalesine bakın.
Eğer AUR SSH kimlik doğrulamasını ayarladıysanız, AUR ile SSH üzerinden de etkileşime geçmeniz mümkündür: Kullanılabilir komutların listesi için ssh aur@aur.archlinux.org help komutunu yazabilirsiniz.
Paketleri Kurma ve Yükseltme
AUR'dan paket kurmak nispeten basit bir süreçtir. Temel olarak adımlar şunlardır:
-
PKGBUILDdosyasını ve gerekliyse systemd servisleri veya yamalar gibi diğer gerekli dosyaları içeren derleme dosyalarını edinin (genellikle kaynak kodun kendisini değil, betiğini indirirsiniz). -
PKGBUILDve beraberindeki dosyaların kötü amaçlı veya güvenilmez olmadığını doğrulamak için kodları kontrol edin. - Dosyaların kaydedildiği dizinde
makepkgkomutunu çalıştırın. Bu komut kaynak kodu indirecek, derleyecek ve paketleyecektir. - Paketi sisteminize kurmak için
pacman -U paket_dosyasıkomutunu çalıştırın.
Önkoşullar
İlk olarak, base-devel paket grubunu kurarak gerekli araçların sisteminizde mevcut olduğundan emin olun; bu meta paket, kaynak koddan derleme yapmak için ihtiyaç duyulan make ve diğer araçları bağımlılık olarak içerir.
Ardından, uygun bir derleme dizini seçin. Derleme dizini, paketin kaynak kodundan oluşturulacağı herhangi bir klasör olabilir. Aşağıdaki bölümlerdeki örneklerde derleme dizini olarak ~/builds kullanılacaktır.
Derleme Dosyalarını Edinme
Paketi AUR içinde bulun. Bu işlem, AUR ana sayfasının üst kısmındaki arama alanı kullanılarak yapılır. Arama listesinde uygulamanın adına tıklamak, paketle ilgili bilgilerin yer aldığı sayfayı açar. Doğru paket olduğunu onaylamak için açıklamayı okuyun, paketin en son ne zaman güncellendiğine dikkat edin ve bırakılan yorumları gözden geçirin.
Bir paketin derleme dosyalarını edinmek için birkaç yöntem vardır:
- Paketin AUR sayfasındaki "Package Details" (Paket Detayları) kısmında "Git Clone URL" olarak etiketlenen git deposunu kopyalayın (clone). Bu en çok tercih edilen yöntemdir; en büyük avantajı, gelecekte
git pullkomutuyla paketi kolayca güncelleyebilmenizdir:
$ git clone https://aur.archlinux.org/paket_adı.git
- AUR sayfasının sağ tarafındaki "Package Actions" başlığı altında bulunan "Download snapshot" bağlantısına tıklayarak veya terminalden bir anlık görüntü (snapshot) indirin:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/paket_adı.tar.gz
- Note İndirilen arşiv dosyası sıkıştırılmıştır ve ayıklanması gerekir (tercihen AUR derlemeleri için ayırdığınız bir dizinde):
tar -xvf paket_adı.tar.gz
- Her paketin bir dalda (branch) yer aldığı GitHub üzerindeki salt okunur archlinux/aur mirror deposunu kullanın. Yalnızca ilgili paketin dalını kopyalamanız önerilir (tüm depoyu çekmek çok büyük boyutta olduğu için performans düşecektir). Bunu şu iki yöntemden biriyle yapabilirsiniz:
-
git clone --single-branchkullanarak:$ git clone --branch paket_adı --single-branch https://github.com/archlinux/aur.git
- Deponun kısmi bir kopyasını çekip (
git clone --depth=1) dalları seçerek ekleyin:
-
$ git clone --depth=1 https://github.com/archlinux/aur.git; cd aur
$ git remote set-branches --add origin paket_adı
$ git fetch
$ git switch paket_adı
Gerekirse PGP Kamu Anahtarı Edinme
PKGBUILD dosyasının `source` dizisinde .sig veya .asc biçiminde bir imza dosyası olup olmadığını kontrol edin. Eğer varsa, PKGBUILD içindeki validpgpkeys dizisinde listelenen kamu anahtarlarından (public keys) birini edinin. Daha fazla bilgi için makepkg#Signature checking makalesine bakın.
Paketi Derleme
Terminalde, paketin PKGBUILD dosyasını barındıran dizine geçiş yapın:
$ cd paket_adı
PKGBUILD dosyasını, varsa .install dosyalarını ve diğer ek dosyaları kötü amaçlı veya tehlikeli komutlara karşı dikkatlice kontrol edin. Şüpheye düşerseniz paketi derlemeyin ve forumlarda ya da e-posta listesinde tavsiye isteyin. Geçmişte bazı paketlerde kötü amaçlı kodlar bulunmuştur. Kullanıcıların PKGBUILD içeriğini taramasına yardımcı olmak için traurAUR ve ks-aur-scannerAUR gibi birkaç araç mevcut olsa da, bunlar dikkatli bir manuel doğrulamanın yerini tutamaz.Verilen tüm dosyaların içeriğini inceleyin. Örneğin, PKGBUILD içeriğini sayfalayıcı bir araç olan less ile görüntülemek için şunu yapın:
$ less PKGBUILD
- Son git commit'inden bu yana yapılan değişiklikleri görmek için
git showkomutunu kullanabilirsiniz. - Değişiklikleri vimdiff kullanarak görmek için
git difftool @~..@ --tool=vimdiffkomutunu çalıştırın. vimdiff kullanmanın avantajı, neyin değiştiğine dair göstergelerle birlikte her dosyanın tüm içeriğini yan yana görebilmenizdir.
Paketi oluşturun. Dosyaların içeriğini manuel olarak onayladıktan sonra, normal bir kullanıcı olarak (root olmadan) makepkg komutunu çalıştırın. Bazı yararlı parametreler (flags):
-
-s/--syncdepsderleme işlemine başlamadan önce eksik bağımlılıkları pacman ile otomatik olarak çözer ve kurar. Eğer paket başka AUR paketlerine bağımlıysa, onları önce manuel olarak kurmanız gerekir. -
-i/--installpaket başarıyla derlenirse otomatik olarak sisteme kurar. Bu, genellikle manuel yapılan bir sonraki adımı atlamanızı sağlar. -
-r/--rmdepsderleme bittikten sonra sadece derleme aşamasında gerekli olan (build-time) bağımlılıkları sistemden kaldırır. Ancak paket bir sonraki sefer güncellenirken bu bağımlılıkların tekrar kurulması gerekebilir. -
-c/--cleanderleme bittikten sonra artık ihtiyaç duyulmayan geçici derleme dosyalarını temizler. Bu dosyalar genellikle sadece derleme sürecindeki hataları ayıklarken (debugging) gereklidir.
git clean -dfx komutunu kullanabilirsiniz.Paketi Kurma
Derlenen paket artık pacman ile kurulabilir hale gelmiştir:
# pacman -U paket_adı-versiyon-mimari.pkg.tar.zst
- Eğer
makepkg.confdosyanızdakiPKGEXT(paket uzantısı) ayarını değiştirdiyseniz, paket dosyasının uzantısı biraz farklı olabilir. - Yukarıdaki örnek derleme sürecinin yalnızca kısa bir özetidir. Daha fazla ayrıntı için makepkg ve Arch derleme sistemi makalelerini okumanız şiddetle tavsiye edilir.
makepkg --packagelist komutunu kullanabilirsiniz.Paketleri Yükseltme (Upgrading)
Paketin PKGBUILD dosyasını içeren dizinde, öncelikle dosyaları ve değişiklikleri güncellemek için şu komutu çalıştırmalısınız:
$ git pull
Ardından bir önceki derleme ve kurulum talimatlarını aynen uygulayın.
Hesap Durumu
Askıya Alma (Suspension)
Bir Paket Sorumlusu (Package Maintainer) bir kullanıcının profilini düzenlerken "Suspended" (Askıya Alındı) alanını işaretleyebilir. Bir kullanıcı askıya alındığında şunları yapamaz:
- https://aur.archlinux.org adresine giriş yapamaz.
- Bildirimleri alamaz.
- Git arayüzü ile etkileşime giremez.
İnaktiflik (Inactivity)
Kendi hesabınızı veya bir Paket Sorumlusu olarak başka bir hesabı düzenlerken "Inactive" (İnaktif) alanı ayarlanabilir. İnaktif hesaplar iki temel amaçla kullanılır:
- Kullanıcının hesap sayfasında inaktif olarak işaretlendiği tarihi göstermek.
- Yeni oylamalar ve teklifler için inaktiflik durumlarına göre güncel aktif Paket Sorumlusu sayısını belirlemek.
Geri Bildirim ve Etkileşim
Paketlere Yorum Yapma
AUR Web Arayüzü, kullanıcıların PKGBUILD geliştiricisine iyileştirmeler için öneriler ve geri bildirimler sunmasını sağlayan bir yorum sistemine sahiptir.
PKGBUILD içerikleri yapıştırmaktan kaçının: Bunlar hızla güncelliğini yitirir ve gereksiz yer kaplar. Bunun yerine, bu dosyaları paket sorumlusuna e-posta ile gönderin veya bir pastebin servisi kullanın.Yorumları biçimlendirmek için Python-Markdown aracı temel Markdown sözdizimi desteği sağlar.
- Bu entegrasyon, resmi sözdizimi kuralları ile zaman zaman bazı farklılıklar gösterebilir.
- Paketin Git deposuna ait commit karmaları (hashes) ve Flyspray hata takip biletlerine yapılan atıflar otomatik olarak bağlantıya (link) dönüştürülür.
- Uzun yorumlar daraltılır ve istendiğinde genişletilebilir.
Paketler İçin Oy Kullanma
Tüm Arch kullanıcıları için en basit ama en etkili etkinliklerden biri, AUR'da gezinirken en sevdikleri paketler için web arayüzü üzerinden **oy kullanmaktır**. AUR'daki tüm paketler, bir Paket Sorumlusu tarafından üstlenilerek extra deposuna dahil edilmeye adaydır ve oy sayısı bu süreçteki en önemli kriterlerden biridir; bu yüzden oy vermek herkesin çıkarınadır!
Paketleri incelerken "Vote for this package" (Bu pakete oy ver) seçeneğini görebilmek için AUR web sitesine üye olmanız gerekir. Kayıt olduktan sonra, komut satırından aur-auto-vote-gitAUR aracı yardımıyla da oy kullanabilirsiniz.
Alternatif olarak, eğer AUR SSH kimlik doğrulamasını ayarladıysanız, SSH anahtarınızı kullanarak doğrudan komut satırından da oy verebilirsiniz. Bu sayede AUR şifrenizi kaydetmenize veya her seferinde yazmanıza gerek kalmaz:
$ ssh aur@aur.archlinux.org vote paket_adı
Paketleri Güncelliğini Yitirmiş (Out-of-date) Olarak İşaretleme
Bir paketin yeni bir sürümü çıktığında, öncelikle paketi *out-of-date* olarak işaretlemeli ve paketin neden güncel olmadığına dair detayları, tercihen yeni sürüm duyurusunun veya kaynak tarball dosyasının bağlantılarını ekleyerek belirtmelisiniz.
Ayrıca paket sorumlusuna doğrudan e-posta yoluyla da ulaşmayı deneyebilirsiniz. Eğer paket sorumlusundan *iki hafta* içinde bir yanıt alınamazsa, paketin sahipsiz kalması için bir "orphan" (öksüz) talebinde bulunabilirsiniz. Detaylar için AUR submission guidelines#Requests makalesine bakın.
pkgver değiştiği için güncelliğini yitirmiş sayılmazlar; bunları bu şekilde işaretlemeyin, aksi takdirde paket sorumlusu işareti kaldırıp sizi görmezden gelecektir. AUR sorumluları sadece pkgver değerini yükseltmek için commit atmamalıdır.Paket Derleme Sürecinde Hata Ayıklama (Debugging)
- Herhangi bir şey derlemeden önce sisteminizi yükselterek derleme ortamınızın güncel olduğundan emin olun.
- base-devel grubunun kurulu olduğundan emin olun.
- Derleme işlemine başlamadan önce gerekli tüm bağımlılıkları kontrol etmek ve kurmak için
makepkgkomutunu-sseçeneğiyle çalıştırın. - Varsayılan makepkg yapılandırmasını deneyin.
- Yaygın sorunlar için Makepkg#Troubleshooting makalesine bakın.
Bir paketi derlerken sorun yaşıyorsanız, öncelikle paketin PKGBUILD dosyasını ve AUR sayfasındaki yorumları okuyun.
PKGBUILD dosyasının kendisi herkes için bozuk olabilir. Sorunu kendi başınıza çözemezseniz, durumu paket sorumlusuna bildirin (örneğin aldığınız hataları AUR sayfasındaki yorumlar kısmında paylaşarak). Ayrıca AUR Sorunları, Tartışmaları ve PKGBUILD Talepleri forumundan da yardım isteyebilirsiniz.
Sorunun nedeni her zaman çok bariz olmayabilir. Özelleştirilmiş CFLAGS, LDFLAGS ve MAKEFLAGS ayarları derleme hatalarına yol açabilir. Kendi sistem yapılandırmanızdan kaynaklanan sorunları önlemek için paketleri clean chroot (temiz bir chroot ortamı) içinde derleyin. Eğer derleme işlemi temiz chroot içinde de başarısız oluyorsa, sorun muhtemelen PKGBUILD dosyasının kendisindedir.
namcap aracının kullanımı hakkında Creating packages#Checking package sanity makalesine bakın. Bir PKGBUILD dosyasını inceletmek isterseniz, Paket Sorumlularından ve diğer AUR üyelerinden geri bildirim almak için dosyayı aur-general e-posta listesinde veya Paket Oluşturma ve Düzenleme forumunda paylaşabilirsiniz. Ayrıca Libera Chat ağındaki #archlinux-aur IRC kanalından da yardım alabilirsiniz.
Paket Gönderme (Submitting)
Kullanıcılar, Arch Kullanıcı Deposu'nu kullanarak kendi PKGBUILD dosyalarını paylaşabilirler. Detaylar için AUR submission guidelines makalesine bakın.
Web Arayüzü Çevirisi
AUR Web Arayüzünün Türkçe ve diğer dillere çevrilmesi ve bu çevirilerin sürdürülmesi hakkında bilgi edinmek için AUR kaynak ağacındaki i18n.md dosyasına göz atın.
Tarihçe
Başlangıçta yalnızca ftp://ftp.archlinux.org/incoming dizini vardı ve insanlar sadece PKGBUILD dosyasını, gerekli ek dosyaları ve derlenmiş paketin kendisini sunucuya yükleyerek katkıda bulunuyorlardı. Paket ve ilgili dosyalar, bir "Güvenilir Kullanıcı" (Trusted User - daha sonra adı Paket Sorumlusu olarak değiştirildi) programı görüp üstlenene kadar orada kalırdı.
Daha sonra Güvenilir Kullanıcı Depoları (Trusted User Repositories) doğdu. Topluluktaki belirli kişilerin, herkesin kullanabilmesi için kendi depolarını barındırmasına izin verildi. AUR, bu temel üzerine hem daha esnek hem de daha kullanışlı olmak amacıyla genişletildi. Aslında, AUR sorumlularına, isimleri Paket Sorumlusu (Package Maintainer) olarak değiştirilene kadar TU (Trusted User) deniyordu.
8 Haziran 2015 ile 8 Ağustos 2015 tarihleri arasında AUR, 3.5.1 sürümünden 4.0.0 sürümüne geçiş yaptı ve PKGBUILD'leri yayınlamak için Git depolarının kullanımını başlattı. Mevcut paketler, sorumluları tarafından yeni altyapıya manuel olarak taşınmadığı sürece sistemden kaldırıldı.
AUR3 Paketleri İçin Git Depoları
GitHub'daki AUR Arşivi, geçiş sırasında AUR 3'te bulunan her paket için bir depoya sahiptir. Alternatif olarak, aynı hizmeti sağlayan aur3-mirror deposu da mevcuttur.
Sıkça Sorulan Sorular
AUR'da ne tür paketlere izin verilir?
AUR'daki paketler yalnızca "derleme betikleridir", yani pacman için ikili dosyalar (binaries) oluşturma tarifleridir. Çoğu durumda, içeriğin lisans şartlarına uyduğunuz sürece, yararlılık ve kapsam yönergelerine tabi olarak her şeye izin verilir. İndirme bağlantısı verilmesine izin verilmeyen (yeniden dağıtılamaz içerikler) diğer durumlarda, kaynak olarak yalnızca dosya adının kendisini kullanabilirsiniz. Bu, kullanıcıların paketi derlemeden önce kısıtlı kaynak dosyasına derleme dizininde zaten sahip olmasını gerektirir. Şüpheye düşerseniz sorun.
AUR'daki paketler için nasıl oy kullanabilirim?
Bkz. #Paketler için oy kullanma.
Paket sorumlusu (Package maintainer) nedir?
Bkz. Arch terminology#Package maintainer.
Arch Kullanıcı Deposu (AUR) ile extra deposu arasındaki fark nedir?
Arch Kullanıcı Deposu, kullanıcıların gönderdiği tüm PKGBUILD dosyalarının saklandığı ve makepkg ile manuel olarak derlenmesi gereken yerdir. PKGBUILD'ler yeterli topluluk ilgisi gördüğünde ve bir Paket Sorumlusu desteğini aldığında, ikili paketlerin doğrudan pacman ile kurulabileceği extra deposuna (Paket Sorumluları tarafından yönetilir) taşınır.
AUR'daki bir paket güncelliğini yitirmiş, ne yapmalıyım?
Bkz. #Paketleri güncelliğini yitirmiş (Out-of-date) olarak işaretleme.
Bu sırada, PKGBUILD dosyasını yerel olarak düzenleyerek paketi kendiniz güncellemeyi deneyebilirsiniz. Bazen güncellemeler derleme veya paketleme sürecinde değişiklik gerektirmez; bu durumlarda sadece pkgver veya source dizisini güncellemek yeterlidir.
makepkg çalıştırdığımda paket derlenmiyor, ne yapmalıyım?
Muhtemelen çok basit bir şeyi gözden kaçırıyorsunuz; bkz. #Paket derleme sürecinde hata ayıklama (Debugging).
"ERROR: One or more PGP signatures could not be verified!" hatası alıyorum, ne yapmalıyım?
Büyük olasılıkla, indirilen dosyaları doğrulamak için kişisel anahtar zincirinizde (keyring) gerekli kamu anahtarlarına sahip değilsiniz. Detaylar için Makepkg#Signature checking makalesine bakın.
Nasıl PKGBUILD oluşturabilirim?
Öncelikle AUR submission guidelines#Rules of submission yönergelerine danışın, ardından creating packages makalesini inceleyin.
Göndermek istediğim bir PKGBUILD var, hata olup olmadığını birisi kontrol edebilir mi?
Paketinizi incelemeye sunmak için birkaç kanal mevcuttur; bkz. #Paket derleme sürecinde hata ayıklama (Debugging).
Bir PKGBUILD'in extra deposuna girmesini nasıl sağlarım?
Genellikle bir paketin extra deposuna taşınması için en az 10 oy gerekir. Ancak, bir Paket Sorumlusu bir paketi desteklemek isterse, paket doğrudan depoda kendine yer bulabilir.
Gerekli minimum oy sayısına ulaşmak tek şart değildir; paketi sürdürmek isteyen bir paket sorumlusunun olması gerekir. Paket Sorumluları, binlerce oyu olsa bile bir paketi extra deposuna taşımak zorunda değildir.
Genellikle çok popüler bir paketin AUR'da kalmasının nedenleri şunlardır:
- Arch Linux depolarında zaten o paketin başka bir sürümünün bulunması
- Lisansının yeniden dağıtıma izin vermemesi
- AUR yardımcı programları (AUR helpers) tanım gereği desteklenmez.
Ayrıca bkz. Rules for Packages Entering the extra repository
Tekrarlanan derleme süreçlerini nasıl hızlandırabilirim?
Bkz. Makepkg#Improving build times.
"foo" ile "foo-git" paketleri arasındaki fark nedir?
Birçok AUR paketi "kararlı" (stable) sürüm ve "kararsız" (unstable) geliştirme sürümleriyle gelir. Geliştirme paketleri genellikle Sürüm Kontrol Sistemlerini belirten bir son eke sahiptir ve düzenli kullanım için tasarlanmamışlardır, ancak yeni özellikler veya hata düzeltmeleri sunabilirler. Bu paketler yalnızca siz makepkg çalıştırdığınızda mevcut en son kaynak kodu indirdiğinden, AUR'daki pkgver() değerleri yukarı akıştaki (upstream) değişiklikleri yansıtmaz. Aynı şekilde, bu paketler hiçbir VCS kaynağı üzerinde bir özgünlük sağlama toplamı (checksum) gerçekleştiremez.
Ayrıca bkz. System maintenance#Use proven software packages.
Bir paket AUR'dan neden kaybolur?
Paketin bir Paket Sorumlusu tarafından üstlenilmiş ve artık extra deposuna taşınmış olması muhtemeldir.
Paketler, gönderim kurallarına uymadıkları takdirde silinebilirler. Silinme nedeni için aur-requests arşivlerine göz atabilirsiniz.
Kurulu paketlerimden hangilerinin AUR'dan kaldırıldığını nasıl öğrenebilirim?
En basit yol, paketin AUR sayfasının HTTP durumunu kontrol etmektir:
$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)
Tüm AUR paketlerinin bir listesini nasıl alabilirim?
- https://aur.archlinux.org/packages.gz
-
python3-aurAUR paketindeki
aurpkglistaracını kullanarak - New AUR Metadata Archives