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

2024-03-16 23:12

本文主要是介绍安装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下执行,问题解决。

这篇关于安装snap再安装flutter再安装localsend@Ubuntu(FreeBSD下未成功)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas