Wednesday, May 23, 2012

FreeBSD: สภาวะแวดล้อมการทำงาน single user mode

จากทั้งสองตอนที่ผ่านมา ไม่ว่าจะเป็น single user mode หรือ การเพิ่ม hard disk ก็พอเพียงที่จะนำไปสู่สาระในเรื่องการทำงานภายใต้สภาพแวดล้อมโดดเดี่ยว เป็นอิสระจากการรบกวนของ process อื่นๆที่ไม่จำเป็นกันได้แล้ว

ต้นเหตุของเรื่อง เกิดจากการ compile แล้วเครื่องดับไปเพราะความร้อนที่ตัว cpu สูงมาก เลยตัดใจมาทำงานใน single user mode เพื่อลดการทำงานของ process ที่ไม่เกี่ยวข้อง ที่ไม่จำเป็นออกไปให้หมด

ปกติ มะไฟ กำหนดให้ compile โปรแกรมพวก ports ทั้งหลายไว้ที่ partition อื่น ที่ไม่ใช่ /usr/ports โดยกำหนดเป็น ตัวแปรสภาพแวดล้อม ดังนี้

${WRKDIRPREFIX}

และที่สำหรับเก็บพวก source files ในรูปของ .tar.gz ก็เก็บไว้ที่ตามแต่ตัวแปรสภาพแวดล้อมจะชี้ไป ซึ่งตัวแปรสภาพแวดล้อมนี้คือ

${DISTDIR}

แล้วก็ส่วนที่เป็นสันดาน หรือนิสัยแปลกๆอีกอย่างคือ เมื่อ compile โปรแกรมได้แล้ว มักจะเก็บไว้เป็น packages ไปเสียด้วยเลย และก็เช่นกัน เก็บไว้ที่ไหน ก็ตามแต่ตัวแปรสภาพแวดล้อมจะชี้ไป ซึ่งทาง FreeBSD เขาก็กำหนดมาให้แล้วว่า เป็นตัวแปรชื่อ

${PACKAGES}

เหล่านี้ ดังนี้ เป็นต้น และก็ไม่ต้องแปลกใจว่า จะไปกำหนดให้ชี้ไปที่ไหน ตามนี้เลยครับ อย่างที่นึก อย่างที่คาดเดากันไว้แหละ

WRKDIRPREFIX=/kaitag/MNI
DISTDIR=/kaitag/distfiles
PACKAGES=/kaitag/packages

สามบรรทัดข้างบนนี้ ให้ท่านเขียนไว้ในแฟ้ม /etc/make.conf เลยครับ

อ้อๆ ทั้งสามสาระบบแฟ้มนั้น เป็นเจ้าของโดย root:wheel น่ะครับ ไม่งั้น เขียนลงไม่ได้

ลักษณะนิสัยอีกประการ (ที่อาจจะสร้างเสริมมาโดยหลักสูตรใหม่มั้ง) คือเมื่อเวลาสร้างโลกนั้น ระบบจะเขียนลงไปในสาระบบแฟ้ม /usr/obj ที่ดูทีไร ก็ไม่ชอบใจเลย เลยขอยักไปไว้ใน /kaitag/obj ด้วยเสียเลย โดยกำหนดให้เป็น ตัวแปรสภาพแวดล้อม ชื่อ MAKEOBJDIRPREFIX และให้เขียนไว้ที่แฟ้ม /root/.profile ดังนี้ครับ

MAKEOBJDIRPREFIX=/kaitag/obj
export MAKEOBJDIRPREFIX

ทั้งนี้ก็เพื่อว่า เมื่อท่านลงสู่ single user mode แล้ว จะได้ไม่ต้องมาเสียเวลาเขียนอีก

สรุป

มีใครสงสัยอะไรมั้ย
สำหรับแฟ้ม /root/.profile นั้น ขอให้ท่านเพิ่มบรรทัดดังต่อไปนี้น่ะครับ และ หวังว่ายังคงจำกันได้

MAKEOBJDIRPREFIX=/kaitag/obj
export  MAKEOBJDIRPREFIX

alias  rm='rm  -i'
alias  mv='mv  -i'
alias  cp='cp  -i'
alias  ll='ls  -lA'

set  -o  vi
set  autolist

และสำหรับแฟ้ม /etc/make.conf ขอให้เพิ่มบรรทัดดังต่อไปนี้น่ะครับ

WRKDIRPREFIX=/kaitag/MNI
DISTDIR=/kaitag/distfiles
PACKAGES=/kaitag/packages

ก็คงพอให้ท่านทำงานได้ และหวังว่า คงไม่ลืม ๔ คำสั่งแรก หลังจากได้รับ shell เมื่อก้าวลงสู่ single user mode แล้ว

# swapon -a
# adjkerntz -i
# mount -a
# umount /home

ก็คงจบสาระที่วางไว้เพียงเท่านี้ และขอได้รับการขอบคุณจาก มะไฟ  สำหรับเวลาที่ท่านสละมาอ่าน
ลป. หวังว่าคงจำวิธีการ และ ข้อกำหนดในการเก็บ packages ได้น่ะครับ ว่า ท่านต้องสร้างสาระบบแฟ้ม ${PACKAGES}/All ไว้ก่อนด้วย โดยสั่งเพียงหนเดียว
#  mkdir  -p  ${PACKAGES}/All

No comments:


View My Stats