ymp Paket Sistemi

ymp paket yapma uygulamasıdır.  Detayları https://gitlab.com/sulix/ adresinden öğrenebilirsiniz.

Bu paket sistemi ile kaynak koddan paketler oluşturabiliyoruz. Bir paket oluşturmak için aşağıdaki adımları uygulamalıyız.

0-Docker Kurulumu

sudo apt update

sudo apt install docker

sudo apt install docker.io

sudo apt install docker-compose


1- İmaj İndirme

sudo docker pull registry.gitlab.com/turkman/devel/assets/docker-images docker indirilir..

2-İmaj Çalıştırma

sudo docker run -it registry.gitlab.com/turkman/devel/assets/docker-images /bin/sh çalıştırılır..

burada volume bağlanmak istenebilir. Bunun için;

sudo docker  run -it -v /home/by/depo:/bay/  registry.gitlab.com/turkman/devel/assets/docker-images /bin/sh

 mevcut çalışan sistemin home/by/depo konumunu docker içinde /bay adındaki konumuna bağladık..

Dikkat edilmesi gereken nokta run -it  parametresinden sonra -v /home/by/depo:/bay/ yazılmalıdır.

Bu işlemden sonra exit yapın çıkın.

Daha Sonra;

sudo docker ps -a

çıkan id değeri: 5cca49321aa3

sudo docker start 5cca49321aa3

sudo docker attach 5cca49321aa3  şeklinde çalıştırınız..

3-Güncellemeler yapılır.

ymp repo --update --ignore-gpg
sorun olursa(meb hattında ssl kaynaklıdır..) --ignore-ssl eklenmeli yani;
ymp repo --update --ignore-ssl --ignore-gpg komutu kullanılmalı...

4- Gerekli Paketler Kuruluyor..

ymp it @sys.devel @dev.util bash --no-emerge
ERROR: Quarantine validation failed hatasını veririrse
ymp it @sys.devel @dev.util bash --no-emerge --ignore-quarantine

Eğer ssl(meb hattından dolayı) hata verirse
ymp it @sys.devel @dev.util bash nano coreutils --no-emerge --ignore-quarantine --ignore-ssl komutunu vermemiz gerekmektedir...

@sys.devel sisteme ait paketler
@dev.util geliştirme paketleri toplu paketlerin önünde @ var
sonra bash nano coretuils kurduk hepsini tek satırda
 

5-Paket Yapımı

https://gitlab.com/sulix/devel/sources/ymp/-/blob/master/doc/ympbuild.rst adresinden paket yapımı aşamaları öğrenilebilir.

Şimdi basit bir paket yapalım...

Paket yapımı için ymp template komutu kulllanılmalı

ymp template komutunda name source output zorunlu;

Komut detayı için ymp temlate --help komutunu kullanabilirsiniz...

6-Hello Paketi Şablonu Oluşturma

https://ftp.gnu.org/gnu/hello/hello-2.11.tar.gz adresteki hello paketini yapalım...
Bunun için;

ymp template --name=hello  --version=2.11 --email=bk@gmail.com --maintainer=bk --source=https://ftp.gnu.org/gnu/hello/hello-2.11.tar.gz --output=abc

burada abc adında bir klasör oluşturacak ve içine paket için paket şablonu oluşturacak.. 

7-Paket Yapımı

Eğer bir önceki adım hatasız oluşmuşsa sonraki komutumuzu verelim..

 ymp build abc bu komut paketi oluşturacaktır...
meb hattındaysanız 
 ymp build abc --ignore-ssl komutunu vermelisiniz.. komut sonucunda aşağıdaki gibi bir çıktı alırsınız.. 


Burada Reveiced:3b25*******2930 değeri /abc/ympbuild dosyasının içerisineki md5sums içeriğine yazmalıyız...


Aşağıdaki gibi md5sums kısmını düzeltmeliyiz...
Önceki hali;

Sonraki hali;
 Dosyayı kaydedip çıktıktan sonra tekrar 
 ymp build abc --ignore-ssl komutunu vermeliyiz... Aşağıda hatasız bir şekilde paketin oluştuğunu görüyoruz..


Ayrıca dikkat edilmesi gerekenler;
source=https://ftp.gnu.org/gnu/hello/hello-2.11.tar.gz kaynak dosyasına göre ympbuild dosyasının düzenlenmiş olması gerekmektedir..
Bunlar;
-version='2.11' olmalı
-name='hello' olmalı

Eğer hatasız işlemler tamamlanırsa /abc dizini altına ymp uzantılı dosyalar oluşturacaktır..

8-Paket Kurulumu

:
ymp it /abc/hello_2.11_1_x86_64.ymp komutuyla paket kurulabilir.. Aşağıdaki resimde abc altındaki hello paketini kuruyoruz..
Eğer paket kurulumu hatasız olmuşsa; İşte mutlu son...
Paketi tekrar kurmak istersek

ymp it /abc/hello_2.11_1_x86_64.ymp --reinstall komutunu kullanmalıyız..

9-Paket Yaparken Diğer Yapacağımız Ayarlar

Bu örneğimizde hello projesini kullanmıştık. Şimdi hello projesinin paket şablonu abc/ympbuild dosyasında bazı ayarlamalar yapmamız gerekmektedir.
Bu ayarlar aşağıda mavi renkte gözüken satırları önceki hali ve sonraki hali olan dosya ayarlarını aşağıda verilmiştir.
Önceki hali;

#!/usr/bin/env bash
name='hello'
release='1'
version='2.11'
url='https://example.org'
description='Package description missing'
email='bk@gmail.com'
maintainer='bk'
license=('GPLv3')
source=('https://ftp.gnu.org/gnu/hello/hello-2.11.tar.gz')
depends=()
makedepends=()
md5sums=('3b2508b671581c47f4eb5b131bc22930')
group=()
uses=()
arch=('x86_64')
cd $name-$version
setup(){
   ./configure --prefix=/usr \
       --libdir=/usr/lib64/
}
build(){
   make -j`nproc`
}
package(){
   make install -j`nproc`
}


Sonraki halini kırmızı olarak gösterilmiştir.

#!/usr/bin/env bash
name='hello'
release='1'
version='2.11'
url='https://example.org'
description='simple c code project'
email='bk@gmail.com'
maintainer='bk'
license=('GPLv3')
source=("https://ftp.gnu.org/gnu/hello/hello-$version.tar.gz")
depends=()
makedepends=()
md5sums=('3b2508b671581c47f4eb5b131bc22930')
group=(app.shell)
uses=()
arch=('x86_64')
cd $name-$version
setup(){
   ./configure --prefix=/usr \
       --libdir=/usr/lib64/
}
build(){
   make -j`nproc`
}
package(){
   make install -j`nproc`
}

* description kısmına paketi tanıtan basit bir ifade.
* source kısmında $version kullanıldı. $ ifadesiyle başlayan değişkenlerin yazılabilmesi için tek tırnak yerine çift tırnak kullanılmalı.
group kısmına ise paketin hangi kategoride olacağını ifade eden bilgiler yazılmalıdır. Yukarıdaki örnekte paket app klasörünün altındaki shell klasörü altına hello adında bir klasör yapılıp abc/ympbuild konumundaki dosya main/app/shell/hello/ympbuild şeklinde ayarlanmalıdır.
 

10-Paketin Bağımlı Oolduğu Kütüphaneleri Listeleme

detect-dep  hello komutuyla hello uygulamasının bağımlılıkları listelenebilir.

Yorum Gönder

Daha yeni Daha eski