Depo oluşturmak için gerekli olan “aptly” ve diğer paketlerin kurulumu için konsolda;
sudo apt install aptly graphviz haveged rng-tools -y
Daha sonra “aptly” kullanıcısı oluşturulur;
sudo adduser aptly
komut sonrası şifre girilir(Şifre aptly)
Yeni parolayı girin:*Şifre*
Yeni parolayı tekrar girin:
passwd: şifre başarıyla güncellendi
aptly için kullanıcı bilgileri değiştiriliyor
diğer bilgiler girilerek işlem tamamlanır. Aptly kullanıcısına geçilir;
su aptly
aptly publish list
gpg --list-keys
komutları sıra ile çalıştırılır. Ardından yetkili kullanıcıya
su -
şirfe girilerek giriş yapılır. Aşağıdaki komutlar sıra ile çalıştırılarak sonuçlanmaları beklenir;
rngd -f -r /dev/urandom
chown aptly /dev/pts/0
daha sonra;
exit
komutu ile çıkış yapılır.
GPG key oluşturmak için;
gpg --generate-key
komutu çalıştırılır. Real name, E-mail address bilgileri girilir;
Örnek:
Real name:Omer Cakmak Repo Signing Key
Email address:farukomercakmak@gmail.com
You selected this USER-ID:
"Omer Cakmak Repo Signing Key <farukomercakmak@gmail.com>"
Change (N)ame, (E)mail, or (O)kay/(Q)uit?
bu soruya “O” yanıtı verilir.
Aşağıdaki sorulara(iki defa sorulur), ikisinde de şifre girilmeden OK ve <Yes, protection is not needed> cevabını verilmelidir.
Please enter the passphrase to
protect your new key
Passphrase: ________________________________________
<OK> <Cancel>
sonra;
You have not entered a passphrase - this is in general a bad idea!
Please confirm that you do not want to have any protection on your key.
<Yes, protection is not needed> <Enter new passphrase>
Bu işlemler sonrasında ekrana şifreleri döker.
public and secret key created and signed.
pub rsa2048 2018-01-11 [SC] [expires: 2020-01-11]
D8F56BA73E2BD1234569EBA7055860123A2C6965
D8F56BA73E2BD1234569EBA7055860123A2C6965
uid Omer Cakmak Repo Signing Key <farukomercakmak@gmail.com>
sub rsa2048 2018-01-11 [E] [expires: 2020-01-11]
Yukarıda görüntülenen şifre alınarak
gpg --armor --export D8F56BA73E2BD1234569EBA7055860123A2C6965 > omercakmak-archive-keyring.gpg
gpg --export-secret-key D8F56BA73E2BD1234569EBA7055860123A2C6965 > secret.key
gpg --import secret.key
komuru çalıştırılır.
cd ~ && mkdir local-packages && cd local-packages
Burada oluşturulacak dizinler istenilen yapıda olabilir, kullanım kolaylığı açısından ayrı dizinlerde tutulabilir.
mkdir plugins && cd plugins
komutu ile plugins dizini oluşturulur. Paketler wget veya scp vb yöntemlerde ile paketler bu adrese çekilir.
Ev dizinine gidilerek;
cd ..
aptly repo create -component="main" omer-cakmak
aptly repo add -force-replace=true omer-cakmak ./local-packages
aptly publish repo -origin="Pardus" -label="Omer Cakmak" -architectures=amd64 -distribution="testing" -component="main" omer-cakmak omercakmak
komutları çalıştırılır.
Depo oluşturma bitti, yayına almak için yetkili kullanıcıya giriş yapılır;
su -
sudo apt install apache2 -y
cd /var/www/html/ && sudo rm -rf index.html
sudo ln -s /home/aptly/.aptly/public/omercakmak omercakmak
sudo cp -fr /home/aptly/omercakmak-archive-keyring.gpg .
komutları ile gpg anahtarı da yayına alınır. Herhangi bir tarayıcıdan ip adresi yazılarak içerik görüntülenebilir.
##İstemcilerde Yapılacaklar##
Öncelikle gpg anahtarı indirilerek eklenmelidir;
wget http://161.9.194.188/omercakmak-archive-keyring.gpg && sudo apt-key add omercakmak-archive-keyring.gpg && rm omercakmak-archive-keyring.gpg
sudo add-apt-repository 'deb http://161.9.194.188/omercakmak testing main'
sudo apt update
komutaları sonrası paketleri;
apt search paket_adi
komutu ile görülebilir.
##Depo Güncelleme##
Yeni paketler local-packages altına atıldıktan sonra aptly kullanıcısı ile ev dizininde iken;
aptly repo add -force-replace=true omer-cakmak ./local-packages
aptly publish update -force-overwrite=true testing omercakmak
komutları çalıştırılmalıdır. Bu işlemlerden sonra “Publish for local repo omercakmak/testing (origin: Pardus, label: Omer Cakmak) [amd64] publishes {main: [omer-cakmak]} has been successfully updated.” sonucu alınmalıdır.
##Paket Eksiltme##
Yukarıda paket ekleme sonrası depo güncelleme yapılmıştı. Diyelimki paketi kullanımdan kaldıracaksınız, bunu için paket local-packages dizininden kaldırıldıktan sonra
aptly repo remove omercakmak paket_adi
şeklinde paket silinir, daha sonra
aptly publish update -force-overwrite=true testing omercakmak
şeklinde tekrar depo yayına alınır.