tzdata 2024a-0+deb11u1

Upgrade package บน raspberrypi วันนี้มี package ที่ต้อง update แต่มีปัญหาอยู่ เจ้า package อันนั้นก็คือ

tzdata 2024a-0+deb11u1

ซึ่ง upgrade ไปแล้วจะได้ผลประมาณนี้

Fetched 13.2 MB in 1min 14s (180 kB/s)                                                                                                                                                                             
Reading package lists... Done                                                                                                                                                                                      
Reading package lists... Done                                                                                                                                                                                      
Building dependency tree... Done                                                                                                                                                                                   
Reading state information... Done                                                                                                                                                                                  
Calculating upgrade... Done                                                                                                                                                                                        
The following packages will be upgraded:                                                                                                                                                                           
  tzdata                                                                                                                                                                                                           
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.                                                                                                                                                     
Need to get 0 B/304 kB of archives.                                                                                                                                                                                
After this operation, 931 kB of additional disk space will be used.                                                                                                                                                
apt-listchanges: Reading changelogs...                                                                                                                                                                             
Preconfiguring packages ...                                                                                                                                                                                        
(Reading database ... 52286 files and directories currently installed.)                                                                                                                                            
Preparing to unpack .../tzdata_2024a-0+deb11u1_all.deb ...                                                                                                                                                         
Unpacking tzdata (2024a-0+deb11u1) over (2023c-5) ...                                                                                                                                                              
dpkg: error processing archive /var/cache/apt/archives/tzdata_2024a-0+deb11u1_all.deb (--unpack):                                                                                                                  
 unable to open '/usr/share/zoneinfo/posix/Africa/Abidjan.dpkg-new': No such file or directory                                                                                                                     
Errors were encountered while processing:                                                                                                                                                                          
 /var/cache/apt/archives/tzdata_2024a-0+deb11u1_all.deb                                                                                                                                                            
needrestart is being skipped since dpkg has failed                                                                                                                                                                 
E: Sub-process /usr/bin/dpkg returned an error code (1)                                                                                                                                                            

ตรวจสอบดูแล้ว คิดว่าย้อนกลับไปใช้ตัวเก่าจะดีกว่า

cj@pi01:~ $ apt-cache policy tzdata                                                                                                                                                                                
tzdata:                                                                                                                                                                                                            
  Installed: 2023c-5                                                                                                                                                                                               
  Candidate: 2024a-0+deb11u1                                                                                                                                                                                       
  Version table:                                                                                                                                                                                                   
     2024a-0+deb11u1 500                                                                                                                                                                                           
        500 http://ftp.jaist.ac.jp/raspbian bullseye/main armhf Packages                                                                                                                                           
 *** 2023c-5 500                                                                                                                                                                                                   
        500 http://ftp.jaist.ac.jp/raspbian bookworm/main armhf Packages                                 
        100 /var/lib/dpkg/status                    

ติดตั้ง version 2023c-5 โดยการใช้คำสั่ง

sudo apt install tzdata=2023c-5       

จบ

sysdig and strace

มี application อยู่ 2 ตัวที่ใช้สำหรับ trace ว่า โปรแกรมตัวนึงมันติดต่อผ่าน network ไปที่ไหนบ้าง

  • sysdig
  • strace

ทั้งสองตัวมีเป็น package ให้ติดตั้งแล้ใช้งานได้บน debian/ubuntu และเดาว่าน่าจะมีบน Linux distro ทั่วๆไปทั้งหมด

sysdig — ยังไม่เคยลองใช้งานจริงจังมาก่อน แต่ดูแล้ววน่าสนใจ เพราะเขียนโปรแกรมร่วมเข้าไปใช้งานในการวิเคราะห์ข้อมูลได้ (แต่ยังไม่ได้ลอง)

ตัวอย่าง จะใช้ sysdig สำหรับ trace event ที่เกิดขึ้น กับโปรแกรม ping
เราอยากจะรู้ว่า มี event อะไรเกิดขึ้นบ้างถ้าเราใช้คำสั่ง

ping -c 3 8.8.8.8

ทำได้ประมาณนี้
จาก terminal หนึ่ง ให้ run คำสั่ง

sudo sysdig proc.name='ping'

และ อีก terminal หนึ่งให้ไป run คำสั่ง

ping -c 3 8.8.8.8

ที่ terminal แรกก็จะเห็นผลลัพธ์ประมาณนี้

98006 10:06:55.851978155 3 ping (2145859.2145859) < execve res=0 exe=ping args=-c.3.8.8.8.8. tid=2145859(ping) pid=2145859(ping) ptid=2114748(bash) cwd= fdlimit=1024 pgft_maj=0 pgft_min=31 vm_size=460 vm_rss=4 vm_swap=0 comm=ping cgroups=cpuset=/user.slice.cpu=/user.slice/user-1000.slice/user@1000.service/app.slic... env=SHELL=/bin/bash.SESSION_MANAGER=local/trantor:@/tmp/.ICE-unix/16757,unix/tran... tty=34829 pgid=2145859(ping) loginuid=1000 flags=0 
98007 10:06:55.852042985 3 ping (2145859.2145859) > access mode=0(F_OK) 
98008 10:06:55.852070023 3 ping (2145859.2145859) < access res=-2(ENOENT) name=/etc/suid-debug 
98009 10:06:55.852087854 3 ping (2145859.2145859) > brk addr=0 
...

ถ้าจะดูผลเฉพาะการติดต่อกับ network (สำหรับ ping) ก็ใช้คำสั่งนี้

sudo sysdig proc.name='ping' |  grep -E 'sendto|recvmsg'

ลองดู blog ตัวนี้

https://sysdig.com/blog/sysdig-tracers/

Tag line ของ blog ก็คือ “open source transaction tracing meets htop and strace” ซึ่งจะชี้ไปที่ strace

strace — system trace เทียบกับ sysdig ที่เป็นการ trace event ที่เกิดขึ้นบนระบบทั้งหมด แล้วค่อยมา filter เลือกเอา event ที่สนใจ เช่น event ที่เกิดขึ้นจาก โปรแกรม ping ก็ใช้ proc.name=’ping’

สำหรับ strace จะใช้ในลักษณะของ wrapper ที่จะ wrap โปรแกรมนั้นและแสดง system trace ที่โปรแกรมนั้นเรียกใช้ทั้งหมด เช่น ต้องการดู trace ของ ping

ping -c 3 8.8.8.8

ก็ใช้คำสั่ง

sudo strace ping -c 3 8.8.8.8

ถ้าต้องการดูเฉพาะ network activity ก็ใช้คำสั่ง

sudo strace -e trace=network ping -c 3 8.8.8.8

ถ้าโปรแกรมที่ trace นั้นมีการ fork sub process แล้วเราต้องการ trace sub process นั้นด้วย ก็ต้องเพิ่ม option “-f” หรือ “–follow-forks”