ติดตั้ง debconf-utils บน ubuntu 16.04 server

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 15-09-2560
ดูแลโดย WIBOON

เพื่อจะได้คำสั่ง debconf-get-selections ใช้ในการตรวจเช็คว่ามีค่าตัวแปรอะไรบ้างที่ต้องใช้ในการติดตั้งโปรแกรมแบบที่เรียกว่า noninteractive (no prompts)

ติดตั้ง

$ sudo su -
# apt install debconf-utils


สมมติว่าเราต้องการเขียน script ที่จะติดตั้ง mysql-server ให้เราไปที่เครื่องที่มี mysql-server
ใช้คำสั่งเพื่อเช็คว่าการติดตั้ง mysql-server ต้องใส่ค่า input อะไรบ้าง

# debconf-get-selections | grep mysql-server 


เมื่อเราจะติดตั้ง mysql server v 5.7 แบบ noninteractive (no prompts) ในเครื่องใหม่
สมมติตั้ง password เป็น abc123

$ sudo su -
# echo "mysql-server-5.7 mysql-server/root_password password abc123" | debconf-set-selections
# echo "mysql-server-5.7 mysql-server/root_password_again password abc123" | debconf-set-selections
# DEBIAN_FRONTEND=noninteractive apt install -y mysql-server

หากต้องการทดสอบคำสั่งอีกรอบ ให้ลบดังนี้

# apt purge mysql-server

หลังจากคำสั่ง purge แล้ว mysql-server จะยังคงมีข้อมูลเก็บอยู่ที่ /var/lib/mysql ซึ่งรวมทั้ง password ที่ติดตั้งอันปัจจุบันนั้นด้วย
หากเราลองติดตั้ง mysql-server อีกรอบ แต่เปลี่ยน password เช่น จาก abc123 เป็น 123abc เราจะพบว่ามันยังคงเป็น abc123 เมื่อทดสอบเข้าด้วยคำสั่ง mysql -u root -p
ดังนั้น หากเป็นการทดสอบ ให้ลบไฟล์ด้วยคำสั่งนี้

# rm -rf /var/lib/mysql


References:
debconf-get-selections http://www.microhowto.info/howto/perform_an_unattended_installation_of_a_debian_package.html