การติดตั้งซอฟต์แวร์ต่างๆในลินุกซ์จะเรียกว่าเป็นการติดตั้งแพคเกจ ซึ่งในแต่ละแพคเกจจะประกอบด้วยโปรแกรมหลายๆโปรแกรม อันเนื่องมาจากแนวทางในการพัฒนาซอฟต์แวร์ในลินุกซ์จะเป็นการพัฒนาในลักษณะเป็นโปรแกรมย่อยๆที่ทำหน้าที่แตกต่างกันไป ผู้ที่พัฒนาซอฟต์แวร์จะเรียกใช้งานโปรแกรมย่อยๆเหล่านั้นในการพัฒนาซอต์แวร์ที่ต้องการอีกทีหนึ่ง 

     ลินุกซ์แต่ละดิสโทรจะมีเครื่องมือสำหรับใช้ในการจัดการเรื่องการติดตั้งแพคเกจมาให้อยู่แล้ว และจะจัดเตรียมแพคเกจต่างๆไว้ที่คลังแพคเกจ (software repository) เพื่อให้เราเลือกติดตั้งได้ด้วยตนเองโดยใช้เครื่องมือที่จัดเตรียมไว้ให้ แต่ในบางกรณีเราอาจต้องการติดตั้งแพคเกจที่ไม่ได้มีอยู่ในคลังของแต่ละดิสโทรที่เราใช้งาน ดังนั้นเราจะต้องคอมไพล์และติดตั้งแพคเกจเองจากไฟล์โปรแกรมต้นฉบับ (software) ของซอฟต์แวร์นั้นๆ

     ขั้นตอนคร่าวๆของการคอมไพล์และติดตั้งซอฟต์แวร์ด้วยตนเองประกอบด้วย 

1. การดาวน์โหลดไฟล์โปรแกรมต้นฉบับ (source code file) ของซอฟต์แวร์ที่ต้องการ  

2. การเรียกใช้คำสั่ง configue เพื่อสร้าง configuration file

3. การตรวจสอบและติดตั้งแพคเกจที่เกี่ยวข้อง (dependency package)

4. การเรียกใช้คำสั่ง make เพื่อคอมไพล์แพคเกจที่ต้องการ

การดาวน์โหลดไฟล์โปรแกรมต้นฉบับ (source code file)

     เราสามารถดาวน์โหลดโปรแกรมต้นฉบับได้จากเว็บต้นทางของซอฟต์แวร์ที่เราต้องการ หลายๆซอฟต์แวร์ใช้ github ในการควบคุมเวอร์ชั่นในขั้นตอนการพัฒนาซอฟต์แวร์ ซึ่งเราก็สามารถหาโปรแกรมต้นฉบับของซอฟต์แวร์เหล่านั้นได้จาก github นั่นเอง ไฟล์โปรแกรมต้นฉบับที่ดาวน์โหลดมามักจะอยู่ในรูปไฟล์บีบอัด เช่น xxxx.tar.gz ซึ่งเราสามารถขยายไฟล์ได้ด้วยคำสั่ง tar เช่น tar -xzvf xxxx.tar.gz 

การติดตั้งเครื่องมือสำหรับการคอมไพล์แพคเกจ

     ลินุกซ์แต่ละดิสโทรจะมีเครื่องมือที่ใช้ในการคอมไพล์และติดตั้งแพคเกจเรียกว่า build essential package เราจะต้องติดตั้งเครื่องมือดังกล่าวก่อนที่จะเริ่มคอมไพล์และติดตั้งแพคเกจได้ สำหรับ Ubuntu และ Debian family เราสามารถติดตั้งเครื่องมือดังกล่าวด้วยคำสั่ง sudo apt install build-essential ในการติดตั้งแพคเกจ buil-essestial จะรวมถึงการติดตั้ง dependency package อื่นๆ อย่างเช่น g++ ด้วย 

การใช้คำสั่ง configue 

     ในไฟล์โปรแกรมต้นฉบับที่เราดาวน์โหลดมาจะมีไฟล์สคริปที่เรียกว่า configuration script file โดยหน้าที่ของไฟล์สคริปจะดำเนินการตรวจสอบลินุกซ์ที่เราใช้งานเพื่อกำหนดว่าจะต้องมีแพคเกจอะไรที่จะต้องติดตั้งเพิ่มเติมเพื่อให้สามารถคอมไพล์ไฟล์ต้นฉบับได้อย่างถูกต้อง การเรียกใช้งานทำได้โดยเข้าไปที่ไดเร็คทอรี่ที่เราขยายไฟล์ออกมาแล้วใช้คำสั่ง ./configure ถ้าไฟล์สคริปพบว่าลินุกซ์ของเราไม่มีแพคเกจที่ต้องการจะแจ้งให้เราทราบเมื่อการดำเนินการตรวจสอบเสร็จสิ้น นอกจากจะแจ้งถึงแพคเกจที่ไม่พบแล้วบางครั้งไฟล์สคริปจะแนะนำทางแก้ไขให้เราด้วย เช่น แจ้งให้เราเรียกไฟล์สคริปอีกครั้งด้วยออปชั่นที่จะละเลยแพคเกจดังกล่าวในการตรวจสอบเพื่อให้ดำเนินการสามารถทำไปได้จนจบ ดังนั้นเราเลือกได้ว่าจะติดตั้งแพคเกจตามที่ไฟล์สคริปบอกหรือใช้ออบชั่นในการละเลยแพคเกจในขั้นตอนการตรวจสอบก็ได้ เมื่อผ่านขั้นตอนนี้ไปแล้วจะได้ผลลัพธ์เป็นไฟล์สคริปชื่อ makefile ซึ่งในไฟล์จะเป็นคำสั่งต่างๆที่ต้องใช้ในการคอมไพล์แพคเกจ การติดตั้งแพคเกจที่ไม่มีเราทำได้โดยใช้คำสั่ง sudo apt install package-name

การคอมไพล์และติดตั้งแพคเกจ

     ในแพคเกจ build-essential จะมีโปรแกรมชื่อ make ซึ่งจะทำหน้าที่ในการคอมไพล์แพคเกจ โดยจะใช้ข้อมูลจาก makefile เราใช้คำสั่ง  make เพื่อเริ่มต้นในการคอมไพล์แพคเกจ หลังจากที่คอมไพล์แพคเกจเรียบร้อยโดยที่ไม่มีข้อผิดพลาด เราสามารถติดตั้งแพตเกจโดยใช้คำสั่ง sudo make install