Linux Türevi Sistemlerinde Paket Hazırlama

Giriş

Bu makalede tüm kullanıcıların anlayabileceği şekilde bir debian paketinin nasıl hazırlanacağına değineceğim. Debian tabanlı sistemlerde hali hazırdaki base paket deposunda çok geniş bir paket seti olmasına rağmen, bazen olmayan bir uygulamayı yükleme ihtiyacı hasıl olabiliyor. Böyle bir durumda uygulamayı kaynak koddan kurabileceğiniz gibi, uygulamayı .deb paketi haline getirmek sureti ile de paket yöneticisi üzerinden doğrudan kurabilirsiniz.

Ayrıca, bazen de paket deposunda yer alan bir paketin kurulum değerleri bizler için yeterli olmayabilir dolayısı ile kendi paketimizi hazırlamak isteriz. Örneğin, squid3 debian paket depolarında var ve kuruluma hazır fakat bu kurulum ile squid için ihtiyaç duyabileceğimiz sslbump özelliği gelmiyor, bir seçeneğiniz kaynak koddan kurmak iken diğer bir seçenek ise bunu paket olarak hazırlamak.

 

Paket Sistemi Nedir ve Faydaları

Linux kullanıcıları ve sistem yöneticileri gereksinim duydukları programları, driver vb. sistem araçları ile bağımlılıklarını kurmak için paket deposundan faydalanırlar.

Kullanıcıların bir uygulamayı kolay kurup yönetmesi için, ( güncelleme, kaldırma, versiyon tabiki vb.) oluşturulan hazır kurulumlar paket olarak ifade edilmektedir.

Örneğin, linux tabanlı işletim sisteminize ( ubuntu, debian vb. ) chrome uygulamasını kurmak istediğinizde, google’ın chrome için indirme adresini bulmak, sisteme indirmek ve ön gereksinimleri tamamlandıktan sonra kurmak için vakit kaybetmenize gerek olmadan, hali hazırda paket depolarında yer alan hazır kurulum paketinden faydalanarak kurmak ciddi zaman kazandırır ve olası hataların önüne geçer. “apt-get install chromium” ile kurmak saniyeler sürer.

 

Linux Sistemlerde Bilinen Paket Yönetim Sistemleri

  • APT, ( Advenced Package Tool ) : APT ‘nin amacı ise debian tabanlı linux dağıtımlarını kullanan kullanıcıların hayatını kolaylaştırmak ve sistem paket yönetiminin daha iyi anlaşılır bir şekilde yapılmasını sağlamaktır.
  • YUM, ( Yellowdog Updater Modified ) : Red Hat türevi işletim sistemlerinde paket yönetimi için kullanılmaktadır. Yum paket yönetimi özellikleri arasında paket kurmak, paket kaldırmak, paket bilgisini görüntülemek, güncelleme, paket yükseltmek gibi özellikler yer almaktadır.
  • APTITUDE : Bu paket yöneticisi ise eskilerde özellikle bağımlılık çözerek kaldırma işlemlerinde daha işlevsel aynı zamanda iyi bir paket yöneticisiydi. Bu paket yöneticisi ( apt, yum vb.) diğer paket yöneticiler arasında çok fazla farklar bulunmamaktadır. Bazı ufak tefek kullanım değişikliği haricinde hepsi aynı işlevi görmektedirler.
  • PKG : FreeBSD 10 işletim sistemi ile yeni gelen paket yönetimidir. Bu paket yönetim aracının özellikleri arasında, paket kurmak, kaldırmak, güncellemek, paketi kilitlemek gibi özellikler yer almaktadır.

 

Linux Sistemlerde Bilinen Paket Türleri

Aşağıda linux türevi sistemlerde sık kullanılan paket türleri yer almaktadır.

  • .rpm : Bu paket türü Red Hat tarafından linux için geliştirilmiş aynı zamanda birçok güçlü özellikleri nedeniyle birçok linux dağıtımına uyarlanmıştır.
  • .deb : Bu paket türü ise debian tabanlı linux işletim sistemleri için oluşturulmuş bir paket türüdür.

 

Geliştirme için Kullanılacak Araçlar

Aşağıda bir .deb paketi hazırlamak için gerekli olan araçların ne işe yaradıkları anlatılmıştır.

  • dpkg-dev : Debian kaynak paketlerini açmak (unpack), derlemek (build), karşıya yükleme (upload), için gerekli araçları içerir.
  • file : Bu araç bir dosyanın türünü belirlemek için kullanılır. ( file dosya_ismi )
  • gcc : GNU projesi tarafından üretilen ve çeşitli programlama dillerini destekleyen bir derleyici sistemidir. Bu paket  ayrıca C önişlemcisi ve nesne dosyalarını çevirmek ve ilintilemek için kullanılan araçları içeren binutils gibi çeşitli paketlere’de nüfuz eder.
  • g++ : GNU C++ derleyicisi, eğer program C++ ile yazılmışsa gereklidir.
  • libc6-dev : GCC ‘nin nesne dosyaları oluştururken ilintilemesi gereken C kütüphaneleri ve başlık dosyaları.
  • make : Genellikle bir programın derlenmesi, kurulması, sistemden kaldırılması, derlenmiş olan dosyaları silmesi gibi işlemlerde kullanılır.
  • patch : Bu araç farklılıklar listesi içeren bir dosyayı alır ( diff uygulaması tarafından oluşturulmuş ) ve onu orjinal dosyaya uygular, sonucunda da yamalı sürüm üretilir.
  • perl : Genellikle linux türevi sistemlerde en çok kullanılan betik dillerinden biridir.
  • devscripts : Bu paket, paket bakımcılarına yardımcı olabilecek bazı betikler içermektedir.
  • fakeroot : Bu araç yapım derleme aşamasının bazı yerlerinde root gibi davranmanıza izin vermektedir.
  • gnupg : Paketleri sayısal olarak imzalamayı sağlayan bir araçtır.
  • pbuilder : Bu paket chroot ortamını oluşturmak ve bakımını yapmak için gerekli paketleri içerir.
  • Lintian : Debian paketi yaptıktan sonra genel hataları bilmenizi sağlayan ve bulduğu hataları açıklayan debian paket denetimcisidir.
  • Linda : Buda bir başka debian paket denetimcisidir.
  • dh-make ve debhelper : dh-make örnek paketinizin iskeletini oluşturmak için gereklidir ve paketi oluştururken ‘de debhelper araçlarından bazılarını kullanacaktır.

 

Debian Tabanlı Sistemler için Paket Oluşturma

Debian (.deb) Paketi Nedir ?

Debian paketleri, ilgili komutları ya da özellikleri uygulamak için gerekli tüm dosyaları içeren paketlerdir.

Debian paketleri ikiye ayrılır;

  • Binary packages : Bu paket içerisinde çalıştırılabilir dosyalar, konfigürasyon dosyaları, man/info sayfaları ve diğer dokümanlar bulunur. İkili paketler genellikle .deb uzantısı ile ayırt edilir ve dpkg komutu ile kurulum yapılır.
  • Source packages : Kaynak paketleri, bu paketin yapısını belirten .dsc dosyası, orjinal kaynak kodunu arşiv içerisinde bulunduran .orig.tar.gz dosyası ve dosyadaki debian-spesifik değişiklikleri içeren .diff.gz dosyasından oluşan paketlerdir.

 

Bağımlılık Nedir ?

Bağımlılık o paketin çalışabilmesi/derlenebilmesi için gereken paketlerdir.

İki çeşit bağımlılık vardır;

  • Build Dependency : Paketin derlenebilmesi için gereken paketler.
  • Runtime Dependency : Paketin çalışabilmesi için gereken paketler.

 

Debian (.deb) Paketi Oluşturmak için Ön Gereksinimler

Bir debian paketi hazırlamak için bazı ek paketlerin sisteme kurulması gerekmektedir. Paketlerin sisteme düzgün bir şekilde yüklendiğinden emin olunuz. Öncelikle sistem depolarını güncelleyip ardından güncellemeleri aldıktan sonra ikinci komutu kullanarak gerekli araçlar sisteme kurulabilir.

NOT : Paketlerin düzgün bir şekilde sisteme kurulduklarından emin olunuz. Bu komutu kullanarak kontrol edebilirsiniz ( dpkg -s paket_ismi ).

root# apt-get update ; apt-get upgrade -y
root# aptitude install build-essential binutils fakeroot lintian debhelper dh-make devscripts patch libc6-dev file checkinstall makefile

 

Paket Seçimi

Bir .deb paketi hazırlamadan önce aşağıdaki kontrolleri yapmanızı öneriyorum. Bu adımları eksiksiz tamamladığınızdan emin olun.

  • Hazırlanacak paketin debian depolarında olup olmadığını kontrol edebilirsiniz. Paket depolarında aramak için ( apt-cache search paket_ismi ) komutunu kullanabilir. Eğer paket paket var ise direkt ( apt-get install paket_ismi ) ile sisteme kurabilirsiniz.
  • Hazırlanacak programın ne tür bir lisansa sahip olduğunu kontrol edebilirsiniz. Özel bir lisansa sahip ise programın sahibinden bizzat izin almanız gerekir. Fakat programın lisansı GNU GPL veya GPL lisansı ise program üzerinde istediğinizi yapabilirsiniz ancak kaynak kodu kapatmamak şartıyla. Daha fazla bilgi için bakınız.
  • Hazırlanacak programın .deb uzantılı paketin debian depolarına girmesini sağlayabilirsiniz. Bunun için [email protected] mail listesi üzerinden görüşebilirsiniz.
  • Programın sistem için bir güvenlik zafiyeti oluşturmadığından emin olunuz. Eğer güvenlik zafiyeti var ise programı .deb paketine dönüştürdükten sonra, linux tabanlı işletim sistemlerine direkt kurulursa o sistem için bir güvenlik zafiyeti oluşturacaktır.

 

Kaynak Koddan Kurulum

Bu makalede örnek olarak kullanılan araç bzip2 aracıdır. Bu örneğimde bzip2 aracını kaynak koddan sisteme kurup daha sonra bunu .deb paketi haline getirmek yer alıyor.

Bu makaleyi yazarken tüm çalışmaları aşağıdaki işletim sistemi üzerinde gerçekleştirdim. Farklı linux dağıtımlarında, komutlar ve bağımlılıklar değişiklik gösterebilir.

Kullanılan işletim sistemi özellikleri;

Distribütör ID : Debian
Açıklama : Debian GNU/Linux 8.1 (jessie)
Sürüm : 8.1
Kod adı : jessie

Başlayalım

İlk önce herhangi bir dizin içerisinde kurulum adında bir dizin oluşturulur ve içerisine girilir hemen ardından örnek olarak kullanılacak araç indirilir. Bu örnekte /home dizini içerisinde kurulum adında bir dizin oluşturulmuştur ve içerisine girilmiştir, ardından araç indirilmiştir.

root# cd /home/ ; mkdir kurulum ; cd kurulum
 
root# wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz  

Sisteme kurulacak olan aracı tar komutu ile kurulum adlı dizin içerisine açalım ve açılan dizine girelim.

root# tar xvf bzip2-1.0.6.tar.gz
 
root# cd bzip2-1.0.6  

Genellikle tüm programların kaynak kodu ile birlikte INSTALL ve README dosyaları gelmektedir. Bir programın ne işe yaradığını, nasıl çalıştığını, nasıl kurulacağını, bağımlılıkları gibi bilgileri bilmiyorsanız bu dosyaları okumanızda fayda var.

NOT : Aşağıdaki adımları uygularken bzip2-1.0.6/ dizini içerisinde olmalısınız.

root#  make
 
root#  make install 

 

Debian (.deb) Paketi Oluşturma

Sisteme kurduğumuz bzip2 aracını .deb paketine dönüştürmek için aşağıdaki komutu kullanabiliriz. Aşağıdaki menüde değişiklik yapmak istediğimiz bilgiye ait numarayı girerek ilgili alanı düzenleyebiliriz. Bir şey değiştirmek istemiyorsak doğrudan enter tuşuna basarak devam edebiliriz.

NOT : Burada dh_make komutunu kullanmadım, çünkü çok eskide kaldı onun yerine debmake, checkinstall araçları daha rahat, kullanışlı olduğu için bu aracı kullanacağım.

root# checkinstall -D make install

*****************************************
**** Debian package creation selected ***
*****************************************
This package will be built according to these values:
0 -  Maintainer: [ [email protected] ]
1 -  Summary: [ Benim örnek .deb paketim. ]
2 -  Name:    [ bzip2 ]
3 -  Version: [ 1.0.6 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ bzip2-1.0.6 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ bzip2 ]
Enter a number to change any of them or press ENTER to continue:
Installing with make install...
========================= Installation results ===========================
if ( test ! -d /usr/local/bin ) ; then mkdir -p /usr/local/bin ; fi
if ( test ! -d /usr/local/lib ) ; then mkdir -p /usr/local/lib ; fi
if ( test ! -d /usr/local/man ) ; then mkdir -p /usr/local/man ; fi
chmod a+r /usr/local/man/man1/bzmore.1
chmod a+r /usr/local/man/man1/bzdiff.1
echo ".so man1/bzgrep.1" > /usr/local/man/man1/bzegrep.1
======================== Installation successful ==========================
Copying documentation directory...
./
./LICENSE
./README.TXT
./CHANGES
Copying files to the temporary directory...OK
Compressing man pages...OK
Building file list...OK
Deleting temp dir...OK
**********************************************************************
Done. The new package has been installed and saved to
/home/kurulum/bzip2-1.0.6/bzip2_1.0.6-1_amd64.deb
You can remove it from your system anytime using:
     dpkg -r bzip2
***********************************************************************  

Yukarıdaki çıktıda gördüğünüz üzere bzip2 paketimiz hazırlanmış demektir. Hazırladığımız .deb paketine /home/kurulum/bzip2-1.0.6/bzip2_1.0.6-1_amd64.deb yolundan ulaşabiliriz. Silmek istersek dpkg -r bzip2 komutunu kullanabiliriz.

 

Debian (.deb) Paketini Test Etmek

Hazırladığımız .deb paketini diğer bir debian tabanlı işletim sistemine scp aracını vb. araçlarına kullanarak yollayabiliriz ve aşağıdaki komutu kullanarak sisteme hazırladığımız paketi kurabilir, test edebiliriz. Bunun sonunda zamandan tasavvuf etmiş olacağız ve her seferinden kaynak koddan kurma derdimiz olmayacak.

root# dpkg -i bzip2_1.0.6-1_amd64.deb

 

Varolan Bir Debian (.deb) Paketini Güncelleme

Hazırladığımız .deb paketinin güncellemesini almak istersek aşağıdaki komutu kullanabiliriz.

root# apt-get install apt-file -y
 
root# apt-file update bzip2_1.0.6-1_amd64.deb 

 

Manuel Debian (.deb) Paketi Oluşturma

Bu bölümde ise herhangi bir aracın kaynak kodunu kullanmadan, kendi dosyalarımızı oluşturup bash ile bu dosyaların içerisine gerekli olan komutları yazıp, bize ait bir .deb paketi hazırlayacağız.

Konuya başlamadan önce kullanacağımız dosyaların ne işe yaradıklarına bakalım;

DEBIAN/control : Bu dosya yazmış olduğumuz uygulamanın ismini, versiyonunu, boyutu, açıklama, bağımlılıklarının yazıldığı dosyadır. Bu dosyanın içeriği aşağıdaki gibidir.

 

Package : Uygulamanın adı.

Version : Uygulamanının versiyon numarası.

Source : Uygulamanın adı yazılabilir.

Section : Uygulamanın hangi kategoriye girdiği.

Priority : Uygulamanın sistem için gerekliliği.

Maintainer : Geliştiricini mail adresi veya ismi.

Architecture : Hangi mimariler için olduğu.

Depends : Hangi paketlere bağımlılık duyduğu. Burada paket isimlerini virgül (,) ile ayırıyoruz.

Description : Uygulamanın ne ile alakalı olduğunu veren ufak bir yazı yazılabilir.

 

DEBIAN/preinst : Bu dosya uygulama kurulurken çalışan ilk dosyadır. Bu dosyanın içine genellikle güncelleme yapılırken yedek alma komutları yazılır. Bu komutları bash ile vb. bir başka dil ile yazabilirsiniz.

DEBIAN/postinst : Bu dosya ise preinst dosyasından sonra çalışan bir dosyadır. Bu dosyanın içerisine uygulamayı kurduktan sonra yapılacak işlemler için komutlar yazılır.

DEBIAN/postrm or DEBIAN/prerm: Bu iki dosyadan herhangi birisi ise uygulamanın sistemden kaldırmak için yazacağınız komutların olduğu dosyalardır.

DEBIAN/copyright : Debian için bu dosya bir paket hakkında lisans bilgisini içermektedir. Debian Özgür Yazılım Rehberi sitesinden lisans dağıtımı kısmını inceleyebilirsiniz.

DEBIAN/rules : Debian paketiniz için bir Makefile dosyasıdır. Bir debian paketi dpkg komutu ile kurulurken bu dosyadaki bilgilere göre kurulur.

DEBIAN/changelog : Bu dosya, programın gelişimini anlatan bir seyir defteridir. Programın kaynağından bağımsız bir şeyler yaptıysanız veya bazı hataları giderdi iseniz bu dosyanın içerisine yazabilirsiniz.

DEBIAN/readme & DEBIAN/install : Bu iki dosya kullanıcıları bilgilendirmek için kullanılmaktadır. Genellikle bu dosyanın içerisine programın nasıl kurulacağını veya ne işe yaradığını yazabilirsiniz.

Başlayalım

İlk önce /home dizini içerisinde deneme adında bir dizin oluşturulur.

root# mkdir /home/ibrahim/deneme  

ardından dosya.tar.gz adlı bir dosya oluşturun içerisinde bir tane test.txt dosya olsun. Daha sonra aşağıdaki komut kullanılarak deneme adlı dizin içerisinde tmp adında bir dizin oluşturulur ve oluşturulan dosya.tar.gz dosyasını oluşturduğumuz bu tmp dizini içerisine atılır.

NOT : tar.gz dosyası gerekli olan yere atıldıktan sonra açılmamalıdır. Dosyanın içeriğini görmek isterseniz tar tf dosya.tar.gz komutu kullanılabilir.

root# mkdir /home/ibrahim/deneme/tmp
 
root# cp /home/ibrahim/Downloads/dosya.tar.gz /home/ibrahim/deneme/tmp/  

Daha sonra aşağıdaki komut kullanılarak /home/ibrahim/deneme/ adlı dizin içerisine DEBIAN (DEBIAN adı ile oluşturulurmalıdır !) adında bir klasör oluşturulur. Hemen ardından oluşturduğumuz DEBIAN dizini içerisine girip, gerekli olan dosyalar oluşturulur.

root# mkdir /home/ibrahim/deneme/
root# cd /home/ibrahim/deneme/DEBIAN
root# touch control postinst prerm
root# ls -l

 

Control dosyası

Bu dosya uygulamanın ismini, versiyonunu, boyutu, bağımlılıkları gibi bilgilerin yazıldığı dosyadır. Bu dosyanın içeriği aşağıdaki gibidir. Aşağıdaki gibi yazdıktan sonra CTRL+O kombinasyonuna basıp ardından enter tuşuna basarak kaydedilir ardından çıkmak için ise CTRL+X kombinasyonuna basabilirsiniz.

NOT : Bu alanda kendinize göre yeni alanlar ekleyebilir veya üzerlerinde değişiklik yapabilirsiniz.

root# nano control

Package: deneme
Version: 1.1.1
Architecture: all
Essential: no
Section: web
Priority: optional
Depends: php5 (>=2.3), php5-mysql
Maintainer: İbrahim UÇAR
Description: Bu benim örnek .deb paketim.

 

Preinst dosyası

Bu dosya ise, uygulama kurulurken çalışan ilk dosyadır. Genellikle bu dosyanın içerisine güncelleme yapılırken veya yedek alma gibi komutlar yazılır. Bu dosya benim örneğimde olmadığı için bu dosyayı kullanmayacağım. Bir uygulamanın güncellemesinin kontrol edilmesi istiyorsanız bu dosyayı mutlaka oluşturup gerekli olan komut yazmanız gerekir.

 

Postinst dosyası

Bu dosya ( preinst ) dosyasından sonra çalışan dosyadır. Bu dosyanın içerisine uygulama kurulduktan sonra yapılacak işlemler yazılır. Aşağıda bash ile yazılmış örnek komutlar bulunmaktadır. Kısaca açıklamak gerekirse, paket sisteme kurulduktan sonra /tmp dizini içerisine deneme adında bir dizin oluşturulacak, ardından bir üst dizinde yer alan dosya.tar.gz adlı dosyayı oluşturulan /tmp/deneme adlı dizin içerisine açacaktır.

root# nano postinst

#!/bin/sh
DOSYA=dosya.tar.gz
DIZIN=deneme
mkdir -p "/tmp/$DIZIN"
tar xf "/tmp/$DOSYA" -C "/tmp/$DIZIN/"

 

Postrm & Prerm dosyaları

Bu iki dosya isimleri birbirinden farklı fakat aynı işlevi görmektedirler. Bu iki dosyadan herhangi birisinin içerisine uygulamayı sistemden kaldırmak için komutlar yazacağız. Aşağıdaki bash komutlarını prerm adlı dosyanın içerisine yazıyoruz. Bir kullanıcı ( dpkg -r, apt-get remove ) komutları kullanıp bir programı sistemden kaldırınca çalışacak olan dosya aşağıdaki gibidir.

NOT : Benim örneğimde /tmp/deneme adlı dizini silmek yer almaktadır. Ve ona göre bash komutu yazılmıştır.

root# nano prerm

#!/bin/sh
if [ "$1" = "remove" ]; then
       rm -rf /tmp/deneme
fi


Şimdi ise .deb paketi nasıl oluşturulur bunu inceleyeceğiz. Aşağıdaki komutlardan herhangi birisini kullanarak .deb paketi oluşturma işlemini tamamlamış olacağız ve elimizde kendimize ait bir debian paketi olacaktır.

  • Birinci komutta varolan dizin ismi ile .deb paketinin oluşturulmasını sağladık.
  • İkinci komutta ise farklı bir isim belirterek verilen isim ile oluşturulmasını sağladık.
root# dpkg-deb --build /home/ibrahim/deneme/
dpkg-deb: building package `deneme' in `deneme.deb'.
root# ls
deneme deneme.deb
root# dpkg-deb --build /home/ibrahim/deneme/  deneme.1.2.3.deb
dpkg-deb: building package `deneme' in `deneme.1.2.3.deb'.
root# ls
deneme deneme.1.2.3.deb

Oluşturmuş olduğumuz .deb paketini sisteme kurmak istersek aşağıdaki komutu kullanabiliriz.

root# dpkg -i deneme.deb
veya
root# dpkg -i deneme.1.2.3.deb

Eğer sisteme kurduğumuz paketi silmek istersek aşağıdaki komutu kullanabiliriz.

root# dpkg -r deneme.deb

veya
root# dpkg -r deneme.1.2.3.deb

 

Test Aşaması

Bu aşamada ise elle yapmış olduğumuz .deb paketinin çalışıp/çalışmadığının kontrolünü yapacağız. Aşağıdaki adımları takip edebilirsiniz.

Aşağıdaki komutu kullandıktan sonra /tmp/ dizini içerisine deneme adlı bir dizin oluşturulacak ardından dosya.tar.gz dosyası /tmp/deneme adlı dizin içerisine açılacaktır.

Eğer bu adımlar eksik ise herhangi bir yerde bir hata yapmış olabilirsiniz. Aşağıda görüldüğü üzere herhangi bir problem yok başarılı bir şekilde gerekli olan dosya gerekli olan yere açılmıştır.

root# dpkg -i deneme.1.2.3.deb

( Reading database ... 130889 files and directories currently installed.)
Preparing to unpack deneme.1.2.3.deb ...
Unpacking deneme (1.4.2) ...
Setting up deneme (1.4.2) …
root# ls -alh /tmp/deneme/ibrahimucar/
-rwxrwxr-x 1 ibrahim ibrahim 67 Nov  6 04:37 test.txt


Eğer kurmuş olduğumuz bu .deb paketini sistemden kaldırmak istersek aşağıdaki komutu kullanabiliriz. Daha sonra
/tmp/deneme/ibrahimucar dizini içerisine bakabiliriz ve öyle bir dosyanın var olmadığını görebiliriz.

root# dpkg -r deneme.1.2.3
( Reading database ... 130889 files and directories currently installed.)
Preparing to unpack deneme.1.2.3.deb ...
Unpacking deneme (1.4.2) ...
Setting up deneme (1.4.2) …

root# ls -alh /tmp/deneme/ibrahimucar/
ls: cannot access /tmp/deneme/ibrahimucar/: No such file or directory

 

Dizin Yapısını Görüntülemek

Son olarak tüm işlemler bittikten sonra oluşturduğumuz dizinin yapısını görmek istersek aşağıdaki komutu kullanabiliriz.

root# tree deneme

├── DEBIAN
│   ├── conffiles
│   ├── control
│   ├── postinst
│   └── prerm
└── tmp
   └── dosya.tar.gz
2 directories, 5 files

Sevgiler. <3

Tagged with: , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*

two × two =

Archives

Tweets