Portage

    Portage, Gentoo'nun resmi paket yöneticisi ve dağıtım sistemidir. Gentoo tabanlı işletim sistemleri ve Gentoo'nun bir nevi kalbidir. Portage gelişmiş bağımlılık çözünürlüğü, yazılımın kaynaktan esnek oluşturmasını ve yüklemesini sağlar. Bunlarla beraber ikili dosya üretme, yönetme ve dağıtma işlevlerine sahiptir. 

 Portage, yazılımları Gentoo ebuild deposundan ve gerekirse herhangi bir ek depodan indirir. Portage'in paket yönetimi için birçok komutu vardır. Bunlardan biri emerge komutudur. 

 

Portage Güncellemeleri 

Gentoo'nun güncel kalması için Portage'ın güncel olması gerekir. Eğer Portage güncelse, Gentoo'nun düzenli güncellemesi sonucunda Portage sorunsuz bir şekilde otomatik olarak güncellenir. 

Bazen ise Portage güncellemeleri, sistemin geri kalanından önce Portage güncellemesini gerekli kılabilir. Portage güncelleme mesajı için Portage'ı senkronize ettikten sonra aşağıda gösterilen mesaj karşınıza çıkar ve bu mesaj görmezden gelinmemelidir:

 


  * An update to portage is available. It is _highly_ recommended
  * that you update portage now, before any other packages are updated.

  * To update portage, run 'emerge --oneshot sys-apps/portage' now.

 

Portage'i güncellemek için mesajda gösterildiği gibi güncellenir (eğer sizde belirtilen mesaj bu örnekten farklı ise o komuta göre güncelleme yapın.):

 

root # emerge --ask --oneshot sys-apps/portage


Eğer portage güncellemesinde herhangi bir sorun yaşıyorsanız buraya tıklayın.

 

Portage'i Yapılandırma  

Portage /etc/portage dizinin içinde düzenlemeler yapılabilir. Portage'i yapılandırmak için birçok dosya vardır ancak genel yapılandırma dosyası /etc/portage/make.conf dosyasıdır.

 Bununla beraber bir de make.globals dosyası vardır. bu dosya /usr/share/portage/config/make.globals içindedir.  make.globals dosyası, Portage tarafından sağlanan birçok varsayılan yapılandırma değerleri içerir.

 

 

Portage Kullamımı

Portage'in sistem yönetimi ve bakımına yardımcı olacak birçok farklı araç ve yardımcı program vardır. Bu araçları tek tek sıralayalım:


1-archive.conf = archive.conf'un amacı, yapılandırma dosyasını dispatch-conf dosyasına kaydeder.

2-dispatch-conf = dispatch-conf'un amacı, yapılandırma dosyası güncellemelerini yönetmek için kullanılır. Daha fazlası için buraya tıklayabilirsiniz.

3-ebuild = ebuild komutu Portage'in çeşitli ebuild işlevlerini çalıştırır. Daha fazlası için buraya tıklayabilirsiniz.

4-emaint = emaint komutu, paket yönetimi ile ilgili sistem sağlığını ve bakımını yapar.



Emerge

emerge, portage'in komut satırı arayüzüdür. Emerge komutunun birçok seçeneği vardır. Tüm seçenekleri görmek için man komutu ile bakabilirsiniz:

user $ man emerge


Aşağıya emerge komutu için bir örnek verelim. Seçenekler için -atv ekleyeceğim. atv, --ask --verbose --tree parametrelerin kısaltılışıdır. emerge komutunun şöyle bir avantajı var, --ask parametresi ile paketin bağımlılık ağacını ve ayrıntılı bilgilerini ekranda gösterebilir:

root # emerge -avt package    
These are the packages that would be merged, in reverse order:

Calculating dependencies... done! 
[ebuild      U ] category/package-3.0-r2[2.0] USE="enabled -disabled toggled* new%
{-unavailable}" MAKE_OPTIONS="-disabled" 777kB
[ebuild      UD] category/package-2.0[3.0] 777kB
[ebuild     R  ] category/package-1.0 777kB
[ebuild    N   ] category/package-0.5 777kB

Total 4 packages [1 new, 1 reinstall, 1 upgrade, 1 downgrade], Size of downloads: 3108 kB

Would you like to merge these packages? [Yes/No]:


--ask: --ask seçeneği çok kullanışlıdır. İşlem başlamadan önce indirmek istenen paketlerin gözden geçirilmesine imkan verir.

 

--verbose: --verbose ise Portage'in ne yapacağı hakkında daha ayrıntılı bilgiler verir.


Emerge ile Paket Aramak

 emerge ile paket aramak için --search seçeneği kullanılır. Örnek olarak --search ile discord paketini aratalım ve çıktısına bakalım:

user $ emerge --search discord 
 
These are the packages that would be merged, in reverse order:
Searching..
 
* net-im/discord-bin [ Masked ]
   Latest version available: 0.0.17
   Latest version installed: [Not Installed ]
   Size of files: 75,299 kB
   Homepage:      https://discordapp.com
   Description:   All-in-one voice and text chat for gamers
   License:       All-right-reserved
   
[ Applications found: 1 ]
   



Emerge ile Paket Silmek

emerge ile paket silmek için --depclean komutu kullanılır. Örnek olarak cgit paketini --depclean ile kaldıralım ve çıktısına bakalım:

user $ emerge --ask --depclean www-apps/cgit

Calculating dependencies... done!
>>> Calculating removal order...

>>> These are the packages that would be unmerged:

www-apps/cgit
            selected: 1.2.3-r100
            protected: none
            omitted:   none
            
All selected packages: =www-apps/cgit-1.2.3-r100

>>> "Selected" packages are slated for removal
>>> "Protected" and "omitted" packages will not be removed

Would you like to unmerge these packages? [Yes/No]: Yes
>>> Waiting 5 seconds before starting...
>>> {Control-C to abort}...
>>> Unmerging in: 5 4 3 2 1
>>> Unmerging (1 of 1) www-apps/cgit-1.2.3-r100...

Packages Instaled:	309
Packages in world:  13
Packages in system: 43
Required packages:  309
Number removed:     1

    * Messages for packages www-apps/cgit-1.2.3-r100
    * GNU info directory index is up-to-date.
   

Comments