怎么把linux发行版源代码打包iso

怎么把linux发行版源代码打包iso,第1张

#安装所需软件包

1

yum -y install createrepo mkisofs anaconda-runtime

根据root下的install.log文件,得到安装的软件包

1

awk '/Installing/{print $2}' install.log |sed 's/^[0-9]*://g' >/root/packages.list

1

2

3

4

5

[root@localhost www]# mkdir centOS6.32bit

[root@localhost html]# rsync -a --exclude=Packages centOS6 centOS6.32bit/

[root@localhost html]# pwd

/var/www/html

[root@localhost html]# mkdir centOS6.32bit/Packages

复制软件包

1

for fileRpm in `cat packages.list`do cp -r /var/www/html/centOS6/Packages/$fileRpm* /var/www/html/centOS6.32bit/centOS6/Packages done

按照执行就可以

1

2

3

4

5

6

7

8

9

10

11

12

13

[root@localhost centOS6]# cd /var/www/html/centOS6.32bit/centOS6

[root@localhost centOS6]# createrepo -g repodata/*-comps.xml /var/www/html/centOS6.32bit/centOS6

491/491 - Packages/abrt-addon-ccpp-2.0.8-6.el6.centos.i686.rpm

Saving Primary metadata

Saving file lists metadata

Saving other metadata

[root@localhost centOS6]# declare -x discinfo=`head -1 .discinfo`

[root@localhost centOS6]# createrepo -u "media://$discinfo" -g repodata/*-comps.xml /var/www/html/centOS6.32bit/centOS6/

488/488 - Packages/glibc-2.12-1.80.el6.i686.rpm

Saving Primary metadata

Saving file lists metadata

Saving other metadata

[root@localhost centOS6]#

1

2

3

4

5

6

[root@localhost centOS6]# createrepo -g repodata/*-comps.xml /var/www/html/centOS6.32bit/centOS6/

488/488 - Packages/glibc-2.12-1.80.el6.i686.rpm

Saving Primary metadata

Saving file lists metadata

Saving other metadata

[root@localhost centOS6]# echo $? #测试上条命令是否运行成功

按照执行就可以

1

mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -o/home/CentOS-6.3-i386-bin-DVD1.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /var/www/html/centOS6.32bit/centOS6

-o 输出iso文件位置

1

2

3

4

5

6

7

8

[root@localhost home]# /usr/bin/implantisomd5 CentOS-6.3-i386-bin-DVD1.iso

Inserting md5sum into iso image...

md5 = 219c7e289d01cdb84cf99de8b3e04503

Inserting fragment md5sums into iso image...

fragmd5 = a9265bee4498b5e93a2e84a58235458cad3651caa37f41da397155e6abe1

frags = 20

Setting supported flag to 0

[root@localhost home]#

可百度搜索关键字 centos 6 无人值守安装

希望对你有帮助.

打包平台:安装有QT开发环境的linux系统

发布平台:未安装有QT开发环境的linux系统

以下使用到的路径需要根据自己环境不同进行修改:

    qt安装路径:/opt/Qt5.12.5

    freetype安装路径:/opt/Qt5.12.5/Tools/QtCreator/lib/Qt/lib/            //包含三个文件libfreetype.so、libfreetype.so.6、libfreetype.so.6.17.0

    dbus安装路径:/opt/Qt5.12.5/Tools/QtCreator/lib/Qt/lib/                //包含三个文件libdbus-1.so、libdbus-1.so.3、libdbus-1.so.3.26.0

    项目路径:/home/cs/Code/test/

    项目名称:test

使用到的脚本文件:

    copylib.sh

        LibDir=$PWD"/lib"

        Target=$1

        lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))

        $(mkdir $LibDir)

        for Variable in ${lib_array[@]}

        do

            cp "$Variable" $LibDir

        done

    copylib2.sh

        sudo cp /opt/Qt5.12.5/Tools/QtCreator/lib/Qt/lib/libfreetype.so ./

        sudo cp /opt/Qt5.12.5/Tools/QtCreator/lib/Qt/lib/libfreetype.so.6 ./

        sudo cp /opt/Qt5.12.5/Tools/QtCreator/lib/Qt/lib/libfreetype.so.6.17.0 ./

        sudo cp /opt/Qt5.12.5/Tools/QtCreator/lib/Qt/lib/libdbus-1.so ./

        sudo cp /opt/Qt5.12.5/Tools/QtCreator/lib/Qt/lib/libdbus-1.so.3 ./

        sudo cp /opt/Qt5.12.5/Tools/QtCreator/lib/Qt/lib/libdbus-1.so.3.26.0 ./

    test.sh

        appname=`basename $0 | sed s,\.sh$,,`

        dirname=`dirname $0`

        tmp="${dirname#?}"

        if [ "${dirname%$tmp}" != "/" ]then

        dirname=$PWD/$dirname

        fi

        LD_LIBRARY_PATH=$dirname

        export LD_LIBRARY_PATH

        $dirname/$appname "$@"

    注意事项:该流程里的脚本都是777权限,如遇权限问题请使用 chmod 777 copylib.sh 命令

    首先将程序release编译,在项目路径里找到编译生成的文件夹【build-Test-Desktop_Qt_5_12_5_GCC_64bit-Release】,在这个文件夹内(注意,很重要)建立  copylib.sh 脚本,并执行 ./copylib.sh test 。执行完成之后应该有一个lib文件夹,将lib文件夹内的所有内容和test程序复制到一个新的文件夹下【test-release】。

    在QT安装目录下找到  【/5.12/gcc_64/plugins/platforms】 文件夹,建立  copylib.sh  脚本,并执行  ./copylib.sh libqxcb.so  。执行完成之后将这个 文件夹 复制到【test-release】文件夹中。然后在【test-release/platforms】文件夹中,将【test-release/platforms/lib】文件夹里的所有内容 剪切 到【test-release】文件夹里,并删除lib文件夹。

    在【test-release】目录下建立 copylib2.sh 脚本,并执行 ./copylib2.sh 。

    至此,所有所需的库文件应该都打包完毕。

    在【test-release】目录下建立 test.sh 脚本,利用该脚本启动程序,启动命令为 ./test.sh 。

    遗留问题点:

        1.debug版本未测试,不知道是否可行。

        2.platforms文件夹不仅在【/5.12/gcc_64/plugins/platforms】存在,还在【/Tools/QtCreator/lib/Qt/plugins/platforms】存在。在成功之前一直用的Tools目录下的,但是也有别的细节不一样,待考证。

        3.脚本执行,或者说库的复制顺序似乎有关系。第一次copylib.sh 和 第二次copylib.sh 时会用一部分重叠。待考证哪个优先。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7339128.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存