dpkg_ubiquity.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #!/bin/bash
  2. # 拷贝指定包的全部文件
  3. # dpkg1-copy_files ubiquity
  4. # dpkg1-copy_files ubiquity-frontend-gtk
  5. # dpkg1-copy_files oem-config
  6. # dpkg1-copy_files ubuntu-kylin-software-center
  7. function dpkg1-copy_files() {
  8. OLD_IFS=$IFS
  9. IFS=$'\n'
  10. PKG=$1
  11. for f in $(dpkg -L "${PKG}" | grep "^/"); do
  12. if [ -d $f ]; then
  13. mkdir -p "./${PKG}/$f"
  14. else
  15. if [ ! -h "$f" ]; then
  16. echo "file => '$f'"
  17. pdir=$(dirname $f)
  18. [ -d "${pdir}" ] || mkdir -p "./${PKG}/${pdir}"
  19. cp -a "$f" "./${PKG}/${pdir}"
  20. else
  21. echo "-> $f is soft link, don't copy!!!"
  22. fi
  23. fi
  24. done
  25. IFS=$OLD_IFS
  26. }
  27. # 软链接到自己修改的
  28. # dpkg2-create_link ubiquity
  29. # dpkg2-create_link ubiquity-frontend-gtk
  30. # dpkg2-create_link oem-config
  31. # dpkg2-create_link ubuntu-kylin-software-center
  32. function dpkg2-create_link() {
  33. OLD_IFS=$IFS
  34. IFS=$'\n'
  35. PKG=$1
  36. # ubiquity ubiquity-frontend-gtk oem-config
  37. for f in $(dpkg -L "${PKG}" | grep "^/" | grep -v "/usr/lib/.*lib.*\.so.*"); do
  38. # ubuntu-kylin-software-center
  39. # for f in $(dpkg -L "${PKG}" | grep "^/" | grep -v "/usr/lib/.*lib.*\.so.*" | grep -E "\.py$|\.ui"); do
  40. if [ -f "${f}" ] && [ ! -h "${f}" ]; then
  41. LOCAL_FILE="./${PKG}${f}"
  42. if [ -f ${LOCAL_FILE} ]; then
  43. echo sudo ln -sf "$(readlink -f ${LOCAL_FILE})" "${f}"
  44. sudo ln -sf "$(readlink -f ${LOCAL_FILE})" "${f}"
  45. else
  46. echo "${LOCAL_FILE} not exist!!"
  47. fi
  48. fi
  49. done
  50. IFS=$OLD_IFS
  51. }
  52. # 将修改的代码拷贝回 squash
  53. # dpkg3-copy_squash ./test-ubiquity ubiquity
  54. # dpkg3-copy_squash ./test-ubiquity ubiquity-frontend-gtk
  55. # dpkg3-copy_squash ./test-ubiquity oem-config
  56. function dpkg3-copy_squash() {
  57. SOURCE_DIR=$1
  58. PKG=$2
  59. for f in $(chroot squashfs/ dpkg -L ${PKG} | grep "^/" | grep -v "/usr/lib/.*lib.*\.so.*"); do
  60. if [ -f squashfs${f} ]; then
  61. md5sum_my=$(md5sum ${SOURCE_DIR}/${PKG}${f} | awk '{print $1}')
  62. md5sum_os=$(md5sum squashfs${f} | awk '{print $1}')
  63. if [ ! ${md5sum_my} == ${md5sum_os} ]; then
  64. echo "cp -a ${SOURCE_DIR}/${PKG}${f} squashfs${f}"
  65. cp -a ${SOURCE_DIR}/${PKG}${f} squashfs${f}
  66. fi
  67. fi
  68. done
  69. }