Linux运维_Bash脚本_构建安装Neat-VNC-0.7.2

2024-03-16 12:52

本文主要是介绍Linux运维_Bash脚本_构建安装Neat-VNC-0.7.2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux运维_Bash脚本_构建安装Neat-VNC-0.7.2

Bash (Bourne Again Shell) 是一个解释器,负责处理 Unix 系统命令行上的命令。它是由 Brian Fox 编写的免费软件,并于 1989 年发布的免费软件,作为 Sh (Bourne Shell) 的替代品。

您可以在 Linux 和 MacOS 机器上使用 Bash,甚至可以通过适用于 Linux 的 Windows 子系统在 Windows 10 机器上使用。

使用方法

  • 下载源码包:

aml-0.3.0.tar.gz

neatvnc-0.7.2.tar.gz

  • 放于指定路径:

这里 Bash Shell 脚本的全局变量 STORAGE 指定的存放源码包的路径 /home/goufeng 可进行修改。

  • 执行 Bash Shell 脚本:

输入 /[路径名]/[脚本名].sh 即可进行自动编译部署,过程中提示输入 (y/n) 输入 y 则进行下一步,这样分阶段确认的原因是为了确保能够看到上一个源码编译结果中可能的错误和提示。

完整脚本

#! /bin/bash
# Create By GF 2024-03-09 01:22# --------------------------------------------------
# Install First: 
# * GNU-Tools (Contains: pkg-config, m4, autoconf, automake, libtool, gettext, flex, bison, libiconv, make)
# * CMake >= 3.14.0 (Maybe Not Necessary)
# * Python == 3.x.x
# * Meson
# * Ninja
# * FFmpeg == 3.x.x# ------------------- Dependency -------------------
# Need File: aml-0.3.0.tar.gz
# ----------------- Neat-VNC-0.7.2 -----------------
# Need File: neatvnc-0.7.2.tar.gz# ##################################################
STORAGE=/home/goufeng# ############################################ Dependency ############################################# Function: 构建安装(Build Install) Andri's-Main-Loop-0.3.0
# ##################################################
function Build_Install_Andri_s_Main_Loop_0_3_0() {if [[ ! -d "/opt/aml-0.3.0" ]]; thenlocal VERIFYlocal STEP_UNZIPPED=0local STEP_BUILDED=0local STEP_INSTALLED=0# ------------------------------------------read -p "[Confirm] Build and Install ( aml-0.3.0 )? (y/n)>" VERIFYif [[ "$VERIFY" != "y" ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/aml-0.3.0.tar.gz && STEP_UNZIPPED=1# ------------------------------------------cd $STORAGE/aml-0.3.0 && meson build/ --prefix=/opt/aml-0.3.0 \--pkg-config-path=/opt/lib/pkgconfig && \STEP_BUILDED=1# ------------------------------------------cd $STORAGE/aml-0.3.0 && ninja -C build/ install && STEP_INSTALLED=1# ------------------------------------------if [[ $STEP_INSTALLED == 1 ]]; thenif [[ ! -d "/opt/lib" ]]; then mkdir /opt/lib; fiif [[ ! -d "/opt/lib/pkgconfig" ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................# Skip # rsync -av /opt/aml-0.3.0/include/ /usr/local/include/# ......................................# Skip # rsync -av /opt/aml-0.3.0/lib/ /usr/local/lib/# ......................................cp -f /opt/aml-0.3.0/lib/pkgconfig/aml.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE && rm -rf $STORAGE/aml-0.3.0 && return 0elseecho "[Caution] Path: ( /opt/aml-0.3.0 ) Already Exists."# ------------------------------------------return 0fi
}# Function: 构建安装(Build Install) Neat-VNC-0.7.2
# ##################################################
function Build_Install_Neat_VNC_0_7_2() {# This is a liberally licensed VNC server library that's intended to be fast and neat.# ..............................................# ### Runtime Dependencies#  * aml - https://github.com/any1/aml/#  * ffmpeg (optional)#  * gbm (optional)#  * gnutls (optional)#  * libdrm (optional)#  * libturbojpeg (optional)#  * pixman#  * zlib# # ### Build Dependencies#  * libdrm#  * meson#  * pkg-configif [[ ! -d "/opt/neatvnc-0.7.2" ]]; thenlocal VERIFYlocal STEP_UNZIPPED=0local STEP_BUILDED=0local STEP_INSTALLED=0# ------------------------------------------read -p "[Confirm] Build and Install ( neatvnc-0.7.2 )? (y/n)>" VERIFYif [[ "$VERIFY" != "y" ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/neatvnc-0.7.2.tar.gz && STEP_UNZIPPED=1# ------------------------------------------# * Problem: ../src/h264-encoder.c:35:10: fatal error: libavutil/hwcontext_drm.h: 没有那个文件或目录#             #include <libavutil/hwcontext_drm.h>#                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~#            compilation terminated.#            [25/27] Compiling C object libneatvnc.so.0.0.0.p/src_open-h264.c.o#            ninja: build stopped: subcommand failed.#   - Solve: 在配置编译 FFmpeg 的时候, 加上 --enable-libdrm 选项。cd $STORAGE/neatvnc-0.7.2 && meson build/ --prefix=/opt/neatvnc-0.7.2 \--pkg-config-path=/opt/lib/pkgconfig && \STEP_BUILDED=1# ------------------------------------------cd $STORAGE/neatvnc-0.7.2 && ninja -C build/ install && STEP_INSTALLED=1# ------------------------------------------if [[ $STEP_INSTALLED == 1 ]]; thenif [[ ! -d "/opt/lib" ]]; then mkdir /opt/lib; fiif [[ ! -d "/opt/lib/pkgconfig" ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................# Skip # rsync -av /opt/neatvnc-0.7.2/include/ /usr/local/include/# ......................................# Skip # rsync -av /opt/neatvnc-0.7.2/lib/ /usr/local/lib/# ......................................cp -f /opt/neatvnc-0.7.2/lib/pkgconfig/neatvnc.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE && rm -rf $STORAGE/neatvnc-0.7.2 && return 0elseecho "[Caution] Path: ( /opt/neatvnc-0.7.2 ) Already Exists."# ------------------------------------------return 0fi
}function main() {# ----------------- Dependency -----------------Build_Install_Andri_s_Main_Loop_0_3_0# ----------------- Neat-VNC-0.7.2 -----------------Build_Install_Neat_VNC_0_7_2
}main

总结

以上就是关于 Linux运维 Bash脚本 构建安装Neat-VNC-0.7.2 的全部内容。

更多内容可以访问我的代码仓库:

https://gitee.com/goufeng928/public

https://github.com/goufeng928/public

这篇关于Linux运维_Bash脚本_构建安装Neat-VNC-0.7.2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815557

相关文章

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Python利用PySpark和Kafka实现流处理引擎构建指南

《Python利用PySpark和Kafka实现流处理引擎构建指南》本文将深入解剖基于Python的实时处理黄金组合:Kafka(分布式消息队列)与PySpark(分布式计算引擎)的化学反应,并构建一... 目录引言:数据洪流时代的生存法则第一章 Kafka:数据世界的中央神经系统消息引擎核心设计哲学高吞吐