wd's blog

approx เป็นซอฟต์แวร์ที่ใช้เก็บแพกเกจ deb ที่ apt จะมาเรียกไปติดตั้ง ใครมีเครื่องลินุกซ์ที่ใช้แพกเกจ apt ในหน่วยงานตั้งแต่สองเครื่องขึ้นไป ควรติดตั้งไว้ที่เครื่องเซิร์ฟเวอร์เป็นอย่างยิ่ง

จากการทดลองใช้งานพบว่า ช้ากว่า apt-proxy (ซึ่งช่วงหลังมีปัญหาตายบ่อยมาก) แต่เสถียรกว่าเยอะ ใช้พอร์ต 9999 เป็นพอร์ตเดียวกับ apt-proxy ทำให้ปรับใช้แทน apt-proxy ได้อย่างง่ายดาย

เริ่มติดตั้ง

ที่เครื่องเซิร์ฟเวอร์

สมมุติว่าเซิร์ฟเวอร์ชื่อ server1.example.com ไอพี 192.168.1.5

เริ่มติดตั้งด้วย

Topic: 

ปรับปรุงจาก ทำเครื่องคัดลอกแผ่นซีดีแบบลูกทุ่ง

ทำบนเดเบียน Lenny โดยจะปรับให้สามารถเขียนแผ่น DVD ได้ด้วย มีการเปลี่ยนแปลงสคริปต์เล็กน้อย แต่คราวนี้ขอเขียนขั้นตอนแบบเริ่มใหม่ตั้งแต่ต้น

มีปัญหาเรื่อง cups พิมพ์ผ่านเครือข่ายไม่ได้ เป็นอยู่เครื่องเดียว ไม่ทราบว่าเป็นเพราะอะไร

แก้ชั่วคราวด้วยการสร้างซ็อกเก็ตสำหรับรับงานพิมพ์ผ่านเครือข่าย (เผื่อเอาไว้เวลาอัปเกรดรุ่นบนเดเบียนแล้ว cups ชอบตายด้วย)

เอาความรู้จาก debian: ปรับปรุง HylaFax Client โดยใช้ perl สร้างเครื่องพิมพ์เทียมขึ้นมา โดย

ที่เครื่องปรินต์เซิร์ฟเวอร์

สร้างไฟล์ perl รับงานพิมพ์ผ่าน socket สมมุติว่าเครื่องพิมพ์ชื่อ brother ติดตั้งไดรเวอร์ไว้เรียบร้อยแล้ว เราจะสร้างสคริปต์สำหรับรับงานพิมพ์ผ่านทาง socket ที่พอร์ต 5692

Topic: 

deiban: ติดตั้งสแกนเนอร์เครือข่าย

ใช้แพกเกจชุด sane ในการทำให้แสกนเนอร์ที่ติดตั้งอยู่ที่เครื่องเซิร์ฟเวอร์ สามารถใช้งานผ่านเครือข่ายได้

ทำที่เครื่องเซิร์ฟเวอร์

สมมุติว่าชื่อ server.example.com
ไอพี 192.168.1.1
ใช้งานเครือข่ายภายใน 192.168.1.0/24
และติดตั้งสแกนเนอร์ไว้แล้ว

ติดตั้งแพกเกจ sane และ inetd

# aptitude install sane sane-utils openbsd-inetd

ปรับให้ saned ทำงาน

debian: lenny/etch
package: apache2.2 (2.2.9-10+lenny1/2.2.3-4+etch6)

สมมุติว่าเซิร์ฟเวอร์ภายนอก ชื่อ www.example.com มีการติดตั้ง apache2 ไว้แล้ว และเซิร์ฟเวอร์ภายใน ชื่อ internal.example.com มีการติดตั้ง apache2 ไว้แล้วเช่นกัน ต้องการให้ผู้ใช้ภายนอกเรียกเว็บที่ internal.example.com ได้

ทำที่เครื่องเซิร์ฟเวอร์ภายนอกอย่างเดียว โดยใช้มอดูล proxy_http

Topic: 

ปรับปรุงจาก ทดลองทำ HylaFAX Client

ครั้งก่อนมีปัญหาว่า daemon ถูกรันโดย root ใน runlevel ที่อยู่ในสถานะอักขระ (text mode) ซึ่งยังไม่มีการกำหนดค่าตัวแปรแวดล้อม $DISPLAY

แต่เวลาซ็อกเก็ตถูกเรียกใช้ จะถูกเรียกใช้โดยผู้ใช้ที่ runlevel ที่อยู่ในสถานะกราฟฟิก โดย GTK+ จะมาดูว่าต้องแสดงผลที่จอไหน จากตัวแปรแวดล้อม $DISPLAY นี้ ทำให้โปรแกรมตาย

ซึ่งต้องแก้ปัญหาด้วยการใช้คำสั่ง $ sudo /etc/init.d/pyla-printd restart จากเทอร์มินัล จึงจะแก้ปัญหานี้ได้

ตอนใหม่นี้ เราจะไม่ตั้งให้เรียกจาก runlevel แล้ว แต่จะตั้งให้รันจาก gnome-session ของผู้ใช้เลย ทำให้แก้ปัญหาเรื่องต้องเริ่มเซอร์วิสใหม่ได้

แต่เพื่อป้องกันการสับสน จะขอเริ่มใหม่เลย

Topic: 

ติดตั้ง slony1 บน etch และ lenny เบื้องต้น

slony เป็นแพกเกจส่วนขยายของ PostgreSQL ที่ใช้ทำหน้าที่สำเนาฐานข้อมูลปัจจุบันขณะ แบบใช้ตัวแม่และตัวลูก (master to multiple slaves replication system) เหมาะสำหรับงานที่ต้องกระจายการทำงาน คืออ่านจากตัวลูกหลายตัว เขียนที่ตัวแม่ตัวเดียว หรืองานที่ต้องการสำรองข้อมูลแบบปัจจุบันขณะ

เนื่องจากปัญหา initramfs ไม่ยอมสร้างไฟล์ initrd.img ทำให้ dpkg ค้างบูตไม่ได้

บูตด้วยแผ่นติดตั้ง netinst ของ lenny ทำตามขั้นตอนไปเรื่อย ๆ จนถึงขั้นแบ่งพาร์ติชั่นดิสก์ แล้วจึงออกสู่เชลล์ busybox

เนื่องจากเชลล์ busybox ไม่ฉลาดเหมือน bash จึงต้องใส่พารามิเตอร์ตามลำดับ

ถึงแม้ Epson จะมีไดรเวอร์มาให้ แต่ก็เป็นแพกเกจแบบ rpm ของ RedHat ทำให้การติดตั้งยังไม่สะดวกเท่าที่ควร

หน้าเว็บอยู่ที่ Avasys official Epson drivers ซึ่งถ้านำมาแปลงด้วยโปรแกรม alien ก็อาจจะได้ แต่ที่ผมยกมาเป็นตัวอย่าง จะเป็นการปรุงด้วยเดเบียนโดยตรง

ตามตัวอย่าง ผมใช้เดเบียนรุ่น sid ซึ่งใช้ gcc-4.3 นะครับ

ติดตั้งแพกเกจสำหรับปรุง deb และ xsane

$ sudo aptitude install devscripts libsane-dev xsane

เอาไฟล์ซอร์สและแพตช์มาคอมไพล์

$ wget http://lx1.avasys.jp/iscan/2.11.0/iscan_2.11.0-1.tar.gz
$ wget http://aur.archlinux.org/packages/iscan/iscan/iscan-gcc43-fix.patch
$ tar zvxf iscan_2.11.0-1.tar.gz
$ cd iscan-2.11.0/
$ patch -Np0 -i ../iscan-gcc43-fix.patch
$ debuild -us -uc

จะได้ไฟล์ .deb ต้องติดตั้งด้วยพารามิเตอร์เพิ่มเติม เพราะแพกเกจนี้ ขัดกับแพกเกจ libsane-extras

หมายเหตุจาก webmaster: คุณ wd เขียนบทความชุดนี้ไว้ได้เกือบแปดเดือนแล้วครับ แต่ webmaster ตรวจไม่เสร็จสักที ตอนนี้ก็ยังไม่เสร็จ แต่เห็นว่าดองไว้นานก็น่าเสียดาย จึงเผยแพร่ทั้งที่ยังตรวจไม่เสร็จไปก่อน

เอามาจาก Python Tutorial

ตั้งใจเขียนให้อ่านสนุก ๆ นะครับ อย่าจริงจัง

Pages

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้