errcpile_samba

Error Compile Samba di CentOS

Hari ini saya ingin mengupgrade Samba yang sudah running di CentOS Domain Controller meski masih ada beberapa bug di CentOS maupun Samba saya tetep menggunakan dua mortir ini sebagai domain controller dan file server. Proses compile samba tidak semudah seperti pada samba versi 3.4.6, di samba 3.5.0 ini ada beberapa parameter yang harus disesuaikan dengan CentOS agar bisa di-compile dengan lancar.Pada saat pertama kali meng-compile samba 3.5.0 dan bermaksud ingin membuat binary rpm file, maka saya menjalankan ./makerpms, namun muncul error seperti dibawah ini:

makerpms.sh: Getting Ready to build release package
error: Failed build dependencies:
keyutils-devel is needed by samba-3.5.0-1.x86_64
makerpms.sh: Done.

Setelah saya periksa, package keyutils-devel sebenarnya telah terinstal, bukan keyutils-devel melainkan keyutils-libs-devel dari sini terjadi ketidak sesuaian nama package yang dibutuhkan oleh samba dan nama package yang available di CentOS. Dari hasil test seperti ini:

# rpm -qa | grep keyutils
keyutils-1.2-1.el5
keyutils-libs-devel-1.2-1.el5
keyutils-libs-1.2-1.el5

Nah, untuk menghilangkan error atau missing dependencies diatas adalah dengan menyesuaikan atau mengubah nama di samba.spec, edit file di ../samba-3.5.0/packaging/RHEL/samba.spec

# vi samba.spec

kemudian cari keyutils-devel dan rename menjadi keyutils-libs-devel maka masalah pertama sudah dapat diatasi… :)

Error selanjutnya adalah bug issue:

Linking bin/smbclient
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `PC’
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `tgetflag’
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `tgetent’
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `UP’
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `tputs’
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `tgoto’
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `tgetnum’
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `BC’
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libreadline.so: undefined reference to `tgetstr’
collect2: ld returned 1 exit status
make: *** [bin/smbclient] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.51781 (%build)

RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.51781 (%build)
makerpms.sh: Done.

Masalah diatas ditengarai karena readline di CentOS tidak mendeklarasikan dependency curses / termcap, dan juga ada issue yang memuat masalah ini:

https://bugzilla.samba.org/show_bug.cgi?id=6984

https://bugzilla.redhat.com/show_bug.cgi?id=499837

How to fix? Tambahkan:

LDFLAGS=”-Wl,–no-as-needed” pada saat configure…

Dua masalah diatas sepertinya belum cukup juga, masalah ini yang hingga artikel ini dimuat belum solved :(

+ cd ..
+ install -m 755 nsswitch/libnss_winbind.so /var/tmp/samba-3.5.0-root/lib64/libnss_winbind.so.2
+ install -m 755 nsswitch/libnss_wins.so /var/tmp/samba-3.5.0-root/lib64/libnss_wins.so.2
+ cd /var/tmp/samba-3.5.0-root/lib64
+ ln -sf libnss_winbind.so.2 libnss_winbind.so
+ ln -sf libnss_wins.so.2 libnss_wins.so
+ /bin/rm -rf ‘/var/tmp/samba-3.5.0-root/usr/lib*/samba/security’
+ echo 127.0.0.1 localhost
+ install -m644 setup/samba.log /var/tmp/samba-3.5.0-root/etc/logrotate.d/samba
+ install -m644 setup/swat /var/tmp/samba-3.5.0-root/etc/xinetd.d/swat
+ install -m644 setup/samba.sysconfig /var/tmp/samba-3.5.0-root/etc/sysconfig/samba
+ install -m755 setup/smb.init /var/tmp/samba-3.5.0-root/etc/rc.d/init.d/smb
+ install -m755 setup/winbind.init /var/tmp/samba-3.5.0-root/etc/rc.d/init.d/winbind
+ install -m644 setup/samba.pamd /var/tmp/samba-3.5.0-root/etc/pam.d/samba
+ install -m755 setup/smbprint /var/tmp/samba-3.5.0-root/usr/bin
+ install -m644 setup/smbusers /var/tmp/samba-3.5.0-root/etc/samba/smbusers
+ install -m644 setup/smb.conf /var/tmp/samba-3.5.0-root/etc/samba/smb.conf
+ install -m755 source3/bin/mount.cifs /var/tmp/samba-3.5.0-root/sbin/mount.cifs
+ install -m755 source3/bin/umount.cifs /var/tmp/samba-3.5.0-root/sbin/umount.cifs
install: cannot stat `source3/bin/umount.cifs’: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.5962 (%install)

RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.5962 (%install)
makerpms.sh: Done.

Karena tak kunjung mendapat solusi mengenai hal ini, dan karena di samba versi 3.4.6 masih terdapat bug ini maka saya menggunakan samba 3.2.15 yang justru tidak bermasalah.

Leave a Reply

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


*