安装snap再安装flutter再安装localsend@Ubuntu(FreeBSD下未成功)

Localsend介绍

localsend是一个跨平台的文件传送软件,可以在Windows、MacOS、Linux、Android和IOS下互相传送文件,只要在同一个局域网即可。

localsend官网:LocalSend

尝试安装localsend,发现需要使用flutter, 安装flutter发现需要snap,于是先安装snap

ubuntu下:apt install snapd

FreeBSD下:pkg install snap (失败,FreeBSD下的软件包并不是我们需要的)

snap介绍

Snap软件包是一种新型的Linux包管理工具,它采用了容器的概念,使得每个应用程序都拥有自己独立的文件和库,从而解决了应用程序之间的依赖问题,使得应用程序更易于管理。

Snap软件包的主要特点是自包含性和跨平台性。每个Snap软件包都包含了应用程序及其所有依赖项,这意味着用户无需担心依赖关系的问题,只需安装Snap软件包即可轻松使用应用程序。此外,Snap软件包的设计也考虑了跨平台性,使得同一个Snap软件包可以在不同的Linux发行版上运行,从而提高了软件的可移植性。

是在FreeBSD使用linux兼容安装的ubuntu,刚开始使用apt install snap安装没成功,以为就不支持。后来发现要使用apt install snapd 来安装就可以了。

兼容模式下除了最后不能使用Xwindows,其它跟普通ubuntu一模一样。

在ubuntu@FreeBSD安装snap

apt install snapd

Flutter介绍

Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。Flutter 支持跨平台、原生、开源免费,具有响应式框架、富有表现力和灵活的UI,以及跨平台自绘引擎等特点。

flutter官网文档:选择你的开发平台,开始使用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter

 用snap安装flutter

sudo snap install flutter --classic

然后配置中文地址(国内加速):

export PUB_HOSTED_URL="https://pub.flutter-io.cn"

export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"

然后flutter doctor ,看到提示:

Telemetry is not sent on the very first run. To disable reporting of telemetry,
run this terminal command:

    flutter --disable-analytics

这样就算是安装好了。但是后面碰到很多小坑,所以再详细记录一下。

安装flutter详细步骤

官方手册:在中国网络环境下使用 Flutter | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter

直接到官网下载flutter tar包,解压后发现可以使用

tar -xvf flutter_linux_3.19.3-stable.tar.xz 
cd flutter
./bin/flutter 

在.profile文件中最后一句加入路径,这样就可以直接使用flutter命令了

PATH="$PATH:/home/linuxskywalk/tools/flutter/bin"

 也可以在.shrc文件中加入:

set PATH=/home/skywalk/download/flutter/bin:$PATH

 按照flutter手册,加入环境变量配置:

# 将 PUB_HOSTED_URL 设置为镜像站点。export PUB_HOSTED_URL="https://pub.flutter-io.cn"# 将 FLUTTER_STORAGE_BASE_URL 设置为镜像站点。export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"

 如果不加,国内是无法自动下载软件的。

配置好后flutter后,开始安装localsend

编译安装localsend

下载localsend,解压缩。刚开始是从官网下载压缩文件,后来也尝试了git下载源代码:git clone https://github.com/localsend/localsend

然后到localsend/app 目录(~/tools/localsend-1.14.0/app),执行:

flutter build linux

如果没有报错,就算成了!

但是有报错,详见调试部分,开始一步步解决报错问题。。

首先:

使用flutter doctor查找问题

发现linux部分有3个问题,按照提示安装三个软件包:

执行

sudo apt install libgtk-3-dev clang ninja-build 

后面build还有报错,根据提示安装下面两个库,解决build问题:

sudo apt install libappindicator3-1 libappindicator3-dev

还有报错需要修改文件:

修改pubspec.yaml文件

参考:https://github.com/fluttercandies/flutter_photo_manager/issues/1021

Adding this to pubspec.yaml worked as temporary fix, ty @den0206

dependency_overrides: photo_manager: ^3.0.0-dev.2

当前还存在的问题:

flutter build linux 之后报错,见最后一个调试问题。

目前没有解决。

=====================================

解决问题的分界线

后来才明白,原来pubspec.yaml文件那里少修改了一个地方,

还需要修改这里:

dependencies:wechat_assets_picker: ^8.9.0-dev.1

修改之后,再run,有报错:

(localsend_app:253856): Gtk-WARNING **: 11:39:19.837: cannot open display

这其实证明基本已经成功了。只是没有窗体报错罢了。

进入xwindows窗口,再执行flutter run ,哇,localsend 终于成功运行了!

android版本,直接下载:https://github.com/localsend/localsend/releases/download/v1.14.0/LocalSend-1.14.0.apk

windows版本,直接下载:https://github.com/localsend/localsend/releases/download/v1.14.0/LocalSend-1.14.0-windows-x86-64.exe

总结:

localsend是一个非常不错的文件传送软件,只是在linux安装的时候,需要修改少量代码,增加了一定难度。

调试

编译flutter报错

 flutter build linux
Resolving dependencies... (1:42.1s)
Git error. Command: `git clone --mirror https://github.com/Tienisto/tray_manager.git /home/linuxskywalk/.pub-cache/git/cache/tray_manager-ad808f1c5d07229907508d5b7c74bd2e20923421`
stdout:
stderr: Cloning into bare repository '/home/linuxskywalk/.pub-cache/git/cache/tray_manager-ad808f1c5d07229907508d5b7c74bd2e20923421'...
fatal: unable to access 'https://github.com/Tienisto/tray_manager.git/': Failed to connect to github.com port 443: Connection timed out
exit code: 128

换用国内镜像

flutter doctor报错

[✗] Linux toolchain - develop for Linux desktop
    ✗ clang++ is required for Linux development.
      It is likely available from your distribution (e.g.: apt install clang), or
      can be downloaded from https://releases.llvm.org/
    ✗ ninja is required for Linux development.
      It is likely available from your distribution (e.g.: apt install
      ninja-build), or can be downloaded from
      https://github.com/ninja-build/ninja/releases
    ✗ GTK 3.0 development libraries are required for Linux development.
      They are likely available from your distribution (e.g.: apt install
      libgtk-3-dev)

根据linux部分的报错,

执行:sudo apt install libgtk-3-dev clang ninja-build

flutter build报错 because localsend_app depends on path 1.8.3,

$ flutter build linux
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you
trust this source!
Resolving dependencies... (3.8s)
Note: path is pinned to version 1.9.0 by flutter_localizations from the flutter SDK.
See https://dart.dev/go/sdk-version-pinning for details.


Because localsend_app depends on flutter_localizations from sdk which depends on
  path 1.9.0, path 1.9.0 is required.
So, because localsend_app depends on path 1.8.3, version solving failed.


You can try the following suggestion to make the pubspec resolve:
* Try upgrading your constraint on path: flutter pub add path:^1.9.0

按照提示执行:flutter pub add path:^1.9.0

这里失误了,应该是:flutter pub add path:^1.8.3

新报错The `system_tray` package requires ayatana-appindicator3-0.1 or appindicator3-0.1.

$ flutter build linux
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you
trust this source!

CMake Error at flutter/ephemeral/.plugin_symlinks/system_tray/linux/CMakeLists.txt:29 (message):


  The `system_tray` package requires ayatana-appindicator3-0.1 or
  appindicator3-0.1.


Building Linux application...     

Adding this to pubspec.yaml worked as temporary fix, ty @den0206

解决问题方法,执行:sudo apt install libappindicator3-1 libappindicator3-dev

报错:Error: Type 'DecoderCallback' not found.

flutter build linux
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you
trust this source!

ERROR: ../../../.pub-cache/hosted/pub.flutter-io.cn/photo_manager-2.8.1/lib/src/internal/image_provider.dart:71:5: Error: Type 'DecoderCallback' not found.
ERROR:     DecoderCallback decode, // ignore: deprecated_member_use
ERROR:     ^^^^^^^^^^^^^^^
ERROR: ../../../.pub-cache/hosted/pub.flutter-io.cn/photo_manager-2.8.1/lib/src/internal/image_provider.dart:96:5: Error: Type 'DecoderCallback' not found.
ERROR:     DecoderCallback decode, // ignore: deprecated_member_use
ERROR:     ^^^^^^^^^^^^^^^
ERROR: ../../../.pub-cache/hosted/pub.flutter-io.cn/photo_manager-2.8.1/lib/src/internal/image_provider.dart:71:5: Error: 'DecoderCallback' isn't a type.
ERROR:     DecoderCallback decode, // ignore: deprecated_member_use
ERROR:     ^^^^^^^^^^^^^^^
ERROR: ../../../.pub-cache/hosted/pub.flutter-io.cn/photo_manager-2.8.1/lib/src/internal/image_provider.dart:96:5: Error: 'DecoderCallback' isn't a type.
ERROR:     DecoderCallback decode, // ignore: deprecated_member_use
ERROR:     ^^^^^^^^^^^^^^^
ERROR: Target kernel_snapshot failed: Exception
Building Linux application...                                           
Build process failed

解决了这个问题,参见issue:About DecoderCallback cannot found error( Type 'DecoderCallback' not found.) · Issue #1021 · fluttercandies/flutter_photo_manager · GitHub

Adding this to pubspec.yaml worked as temporary fix, ty @den0206

dependency_overrides: photo_manager: ^3.0.0-dev.2

重新在另一台机器做实验,发现报错: localsend_app depends on path 1.8.3,

 flutter build linux
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure
you trust this source!
Resolving dependencies... (12.7s)
Note: path is pinned to version 1.9.0 by flutter_localizations from the flutter SDK.
See https://dart.dev/go/sdk-version-pinning for details.


Because localsend_app depends on flutter_localizations from sdk which depends
  on path 1.9.0, path 1.9.0 is required.
So, because localsend_app depends on path 1.8.3, version solving failed.

尝试执行:flutter pub add path:^1.8.3

解决问题

报错:Error: Type 'AssetEntityImageProvider' not found.

原来是pubspec.yaml文件少修改了一个地方。

dependencies:wechat_assets_picker: ^8.9.0-dev.1

报错: cannot open display:

EXTERNAL_USB/tools/localsend/app$ flutter run
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure
you trust this source!
Launching lib/main.dart on Linux in debug mode...
Building Linux application...                                           

(localsend_app:253856): Gtk-WARNING **: 11:39:19.837: cannot open display:
Error waiting for a debug connection: The log reader stopped unexpectedly, or
never started.
Error launching application on Linux.

因为是ssh登录的,所以有这个报错。到xwindows下执行,问题解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里二面:什么情况会发生Full GC?如何避免频繁Full GC?

阿里二面:什么情况会发生Full GC?如何避免频繁Full GC? Minor GC、Major GC 和 Full GC区别? Minor GC、Major GC和Full GC是垃圾回收中的三个重要概念,它们描述了垃圾回收的不同阶段和范围: Minor GC&am…

自定义协议

应用层 有许多现成的协议(HTTP协议做网站必备),也有许多需要程序员自定义的协议. 1.自定义协议 自定义协议: 1.明确传递的信息是什么 2.约定好信息按照什么样的格式来组织成二进制字符串 举个例子: 当我们点外卖时,打开软件,会显示商家列表,列表中有很多项,每一项都包含了一…

Tuxera NTFS 2023安装使用教程 Tuxera NTFS破解版 Tuxera NTFS for Mac优惠

对于必须在Windows电脑和Mac电脑之间来回切换的Mac朋友来说,跨平台不兼容一直是一个巨大的障碍,尤其是当我们需要使用NTFS格式的硬盘在Windows和macOS之间共享文件时。因为Mac默认不支持写入NTFS磁盘。 为了解决这一问题,很多朋友会选择很便捷…

Selenium基础

1. selenium简介 用于实现自动化测试的 python 包,使用前需要安装对应浏览器驱动 from time import sleep from selenium import webdriver option webdriver.ChromeOptions() # 指定chrome存储路径的二进制形式 option.binary_locationD:\Chrome\Google\Chrome\Ap…

企业计算机服务器中了halo勒索病毒怎么办,halo勒索病毒解密工具流程

随着网络技术的不断应用与发展,越来越多的企业开始利用网络开展各项工作业务,网络为企业的发展与生产生活提供了极大便利。但网络中的勒索病毒攻击企业服务器的事件频发,给企业的数据安全带来了严重威胁,数据安全问题一直是企业关…

pytorch CV入门 - 汇总

初次编辑:2024/2/14;最后编辑:2024/3/9 参考网站-微软教程:https://learn.microsoft.com/en-us/training/modules/intro-computer-vision-pytorch 更多的内容可以参考本作者其他专栏: Pytorch基础:https…

智慧城市革命,物联网技术如何改变城市治理与生活方式

随着科技的不断进步,智慧城市已经成为现代城市发展的重要方向之一。物联网技术作为智慧城市的重要支撑,正深刻改变着城市的治理模式和居民的生活方式。本文将探讨智慧城市革命,以及物联网技术如何改变城市治理与生活方式,同时介绍…

Python Web开发记录 Day12:Django part6 用户登录

名人说:东边日出西边雨,道是无晴却有晴。——刘禹锡《竹枝词》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、登录界面2、用户名密码校验3、cookie与session配置①cookie与session②配置…

STM32CubeMX与HAL库开发教程八(串口应用/轮询/中断/DMA/不定长数据收发)

目录 前言 初识串口-轮询模式 串口中断模式收发 串口DMA模式 蓝牙模块与数据包解析 前言 前面我们简单介绍过串口的原理和初步的使用方式,例如怎么配置和简单的收发,同时我们对串口有了一个初步的了解,这里我们来深入的来使用一下串口 …

Linux服务器(RedHat、CentOS系)安全相关巡检shell脚本

提示:巡检脚本可以使用crontab定时执行,人工根据执行结束时间点统一收集报告文件即可。 #!/bin/bash# Define output file current_date$(date "%Y%m%d") # Gets the current date in YYYYMMDD format echo >server_security_inspection_r…

【计算机网络】https的工作原理以及和http的区别

目录 前言 1. HTTP协议存在的问题 2. 什么是HTTPS协议? 3. HTTP和HTTPS有哪些区别? 4. HTTPS的工作原理 加密方式 前言 在日常的Web项目练习中,我们会发现老师会让我们在打开服务器之后使用 http://localhost/...进行项目效果测试和预览…

2.26OS分类,中断(内,外),系统调用,操作系统结构、引导,虚拟机(两类VMM),进程

外核可以申请分配连续的磁盘块以支持频繁的随机访问,其它的方式是采用虚拟存储 分层结构

iPhone 的健康数据采用的是 FHIR 传输格式

虽然感觉 FHIR 的数据传输格式还是有点繁琐的,但貌似现在也是唯一的事实上的标准。 通过 iPhone 健康上面查看的数据来看,有关健康的数据还是使用 FHIR 的数据传输格式。 不管怎么样,针对老旧的数据传输格式来看,FHIR 至少目前还是…

实现HBase表和RDB表的转化(附Java源码资源)

实现HBase表和RDB表的转化 一、引入 转化为HBase表的三大来源:RDB Table、Client API、Files 如何构造通用性的代码模板实现向HBase表的转换,是一个值得考虑的问题。这篇文章着重讲解RDB表向HBase表的转换。 首先,我们需要分别构造rdb和hba…

学习开发小程序的起航日记

2024年3月16日 不知不觉中三月份还只剩了一半的光景,我想写的内容还很多没有写,或者更应该说,是想积累的还有很多。现在最应该去完善Java的内容,可还是想先等等。想等搞清楚小程序部分,想等积累完小程序的内容。 这几…

网络安全——关于防火墙

网络安全防火墙是很重要的部分,关于防火墙我们要知道,他默认所有流量都是黑名单,只有开启允许通过才可以。 我们通过一个实验来学防火墙命令。 防火墙要登录才能使用,用户名是admin,默认密码是Admin123,在第一次登录…

Visual Studio配置libtorch(cuda安装一步到位)

Visual Studio配置libtorch visual Studio安装cuDNN安装CUDAToolkit安装libtorch下载Visual Studio配置libtorch(cuda版本配置) visual Studio安装 visual Studio点击安装 具体的安装和配置过程这里就不进行细讲了,可以参考我这篇博客Visual Studio配置OpenCV(保姆…

Java关于物联网消息引擎:EMQ X

1.背景 1、5G 时代,万物互联 随着5G的到来,万物互联已经成为现实,物联网行业得以蓬勃发展,催生了很多的应用,比如:物联网pass平台,车联网,面向云平台的IOT-Hub,NB-IoT蜂…

Simulink|局部遮荫下光伏组件多峰值PSO-MPPT控制

目录 主要内容 1.光伏电池工程数学模型的输出特性程序 2.普通扰动观察法进行MPPT 3.基于粒子群寻优的多峰输出特性 4.PSO_MPPT仿真模型 程序下载链接 主要内容 在实际的光伏发电系统中,由于环境多变等因素的影响,当局部出现被遮挡情况时光伏阵列的功率-电压(P-U)特…

【C语言】字符与字符串---从入门到入土级详解

🦄个人主页:修修修也 🎏所属专栏:C语言 ⚙️操作环境:Visual Studio 2022 目录 一.字符类型和字符数组(串)简介 1.ASCII 2.定义,初始化,使用 1>字符的定义及初始化 2>字符串的定义及初始化 二.…