linux上开发应用程序_如何在Linux上安装软件应用程序

2023-11-17

linux上开发应用程序

如何在Linux上安装应用程序? 与许多操作系统一样,该问题不仅有一个答案。 应用程序可以来自许多来源-几乎无法计数-每个开发团队都可以以自己认为最佳的方式交付软件。 知道如何安装给出的内容是成为操作系统的真正超级用户的一部分。

储存库

十多年来,Linux一直使用软件存储库来分发软件。 在这种情况下,“存储库”是托管可安装软件包的公共服务器。 Linux发行版提供了一个命令,通常是该命令的图形界面,可从服务器中提取软件并将其安装到计算机上。 这种简单的概念使其成为所有主要手机操作系统的模型,最近成为两个主要的封闭源计算机操作系统的“应用商店”的模型。

Linux repository

不是应用程式商店

从软件存储库安装是在Linux上安装应用程序的主要方法。 它应该是您要安装的任何应用程序的第一位。

要从软件存储库安装,通常有一个命令:



   
   
$ sudo dnf install inkscape

您使用的实际命令取决于您使用的Linux发行版。 Fedora使用dnf ,OpenSUSE使用zypper ,Debian和Ubuntu使用apt ,Slackware使用sbopkg ,FreeBSD使用pkg_add ,而基于Illumos的OpenIndiana使用pkg 。 无论您使用什么,该咒语通常都涉及搜索要安装的产品的正确名称,因为有时您称其为软件的名称不是其正式或单独的名称:



   
   
$ sudo dnf search pyqt
PyQt.x86_64 : Python bindings for Qt3
PyQt4.x86_64 : Python bindings for Qt4
python-qt5.x86_64 : PyQt5 is Python bindings for Qt5

找到要安装的软件包的名称后,请使用install子命令执行实际的下载和自动安装:



   
   
$ sudo dnf install python-qt5

有关从软件存储库安装的详细信息,请参阅发行版的文档。

图形工具通常也是如此。 搜索您想要的内容,然后安装它。

Apper

阿Perl

像基础命令一样,图形安装程序的名称取决于您正在运行的发行版。 通常使用软件软件包关键字为相关的应用程序加标签,因此在启动器或菜单中搜索这些术语,即可找到所需的内容。 由于开放源代码完全取决于用户的选择,因此,如果您不喜欢发行版提供的图形用户界面(GUI),则可以安装其他方法。 现在您知道该怎么做了。

额外的资料库

您的发行版具有用于您打包的软件的标准存储库,并且通常还有其他通用存储库。 例如, EPEL服务于Red Hat Enterprise Linux和CentOS, RPMFusion服务于Fedora,Ubuntu具有各种级别的支持以及一个个人软件包存档(PPA)网络, Packman为OpenSUSE提供了额外的软件,而SlackBuilds.org为以下方面提供了社区构建脚本: Slackware。

默认情况下,您的Linux操作系统设置为仅查看其官方存储库,因此,如果要使用其他软件集合,则必须自己添加其他存储库。 通常,您可以像安装软件包一样安装存储库。 实际上,当您安装某些软件(例如GNU Ring视频聊天, Vivaldi Web浏览器,Google Chrome等)时,实际上要安装的是访问其私有存储库,并从中安装其最新版本的应用程序。到您的机器上。

Installing a repo

安装仓库

您还可以通过编辑文本文件并将其添加到程序包管理器的配置目录中,或通过运行命令来安装存储库来手动添加存储库。 像往常一样,您使用的确切命令取决于您正在运行的发行版。 例如,这是一个dnf命令,它将存储库添加到系统中:



   
   
$ sudo dnf config-manager --add-repo=http://example.com/pub/centos/7

安装没有存储库的应用程序

存储库模型之所以受欢迎,是因为它提供了用户(您)和开发人员之间的链接。 当重要更新发布时,系统会提示您接受更新,并且您可以从一个集中位置接受所有更新。

但是,有时有时会在没有附加存储库的情况下提供软件包。 这些可安装的软件包有几种形式。

Linux软件包

有时,开发人员以通用的Linux打包格式(例如RPM,DEB或更新但非常流行的FlatPak或Snap格式)分发软件。 您无法通过此下载访问存储库; 您可能只是得到包裹。

例如,视频编辑器Lightworks为APT用户提供.deb文件,为RPM用户提供.rpm文件。 当您想要更新时,您将返回网站并下载最新的适当文件。

可以使用从存储库安装时使用的所有相同工具来安装这些一次性软件包。 如果双击下载的程序包,将启动图形安装程序,并逐步完成安装过程。

或者,您可以从终端安装。 此处的区别在于,您从Internet下载的一个单独的软件包文件不是来自存储库。 这是“本地”安装,这意味着您的软件包管理软件无需下载即可安装。 大多数软件包管理器透明地处理此问题:



   
   
$ sudo dnf install ~/Downloads/lwks-14.0.0-amd64.rpm

在某些情况下,您需要采取其他措施来使应用程序运行,因此请仔细阅读有关所安装软件的文档。

通用安装脚本

一些开发人员以几种通用格式之一发布其软件包。 常见扩展名包括.run.sh 。 NVIDIA图形卡驱动程序,Foundry视觉FX软件包(例如Nuke和Mari)以及GOG的许多无DRM游戏都使用这种安装程序。

这种安装模型依赖于开发人员来交付安装“向导”。 一些安装程序是图形化的,而其他安装程序仅在终端中运行。

有两种方法可以运行这些类型的安装程序。

  1. 您可以直接从终端运行安装程序:


   
   
$ sh ./game/gog_warsow_x.y.z.sh
  1. 或者,您可以通过将其标记为可执行文件从桌面运行它。 要标记安装程序可执行文件,请右键单击其图标,然后选择属性
Giving an installer executable permission

授予安装程序可执行权限

授予其运行权限后,双击该图标开始安装。

GOG installer

GOG安装程序

对于其余的安装,只需按照屏幕上的说明进行操作。

AppImage便携式应用

尽管AppImage格式是基于NeXT和Rox的,但它对于Linux来说还是相对较新的格式。 这个想法很简单:将运行应用程序所需的所有内容都放在一个目录中,然后将该目录视为“应用程序”。 要运行该应用程序,只需双击该图标即可运行。 无需或没有期望以传统方式安装该应用程序。 它可以从硬盘上的任何地方运行。

尽管它可以作为独立的应用程序运行,但AppImage通常可以提供一些软系统集成。

AppImage system integration

AppImage系统集成

如果您接受此优惠,则将本地.desktop文件安装到您的主目录中。 .desktop文件是Linux桌面的“应用程序”菜单和mimetype系统使用的小型配置文件。 本质上,将桌面配置文件放在主目录的应用程序列表中可以“安装”该应用程序,而无需实际安装它。 作为“便携式应用程序”,您将获得安装某些东西的所有好处,以及能够在本地运行某些东西的好处。

应用目录

有时,开发人员只是编译应用程序并将结果发布为下载,没有安装脚本,也没有打包。 通常,这意味着您下载TAR文件,将其解压缩 ,然后双击可执行文件(通常是带有您下载的软件名称的文件)。

Twine downloaded for Linux

下载适用于Linux的Twine

当出现这种形式的软件交付时,您可以将其保留在下载位置,然后在需要时手动启动,也可以自己进行快速而肮脏的安装。 这涉及两个简单步骤:

  1. 将目录保存到标准位置,并在需要时手动启动它。
  2. 将目录保存到标准位置,然后创建一个.desktop文件以将其集成到您的系统中。

如果您只是为自己安装应用程序,通常在主目录中保留一个bin目录(“ binary”的缩写)作为本地安装的应用程序和脚本的存储位置。 如果系统上还有其他需要访问应用程序的用户,则通常将二进制文件放在/opt 。 最终,这取决于您存储应用程序的位置。

下载通常位于带有版本名称的目录中,例如twine_2.13pcgen-v6.07.04 。 由于合理地假设您将在某个时刻更新应用程序,因此最好删除版本号或创建指向目录的符号链接。 这样,即使更新应用程序本身,您为应用程序创建的启动器也可以保持不变。

要创建.desktop启动器文件,请打开文本编辑器并创建一个名为twine.desktop的文件。 桌面条目规范FreeDesktop.org定义。 这是一个名为Twine的游戏开发IDE的简单启动器,安装在系统范围的/opt目录中:



   
   
[Desktop Entry]
Encoding=UTF-8
Name=Twine
GenericName=Twine
Comment=Twine
Exec=/opt/twine/Twine
Icon=/usr/share/icons/oxygen/64x64/categories/applications-games.png
Terminal=false
Type=Application
Categories=Development;IDE;

棘手的行是Exec行。 它必须包含有效的命令才能启动应用程序。 通常,它只是您下载内容的完整路径,但在某些情况下,它更复杂。 例如,可能需要启动Java应用程序作为Java本身的参数:



   
   
Exec=java -jar /path/to/foo.jar

有时,一个项目包含一个可以运行的包装器脚本,因此您不必找出正确的命令:



   
   
Exec=/opt/foo/foo-launcher.sh

在Twine示例中,下载没有捆绑图标,因此示例.desktop文件分配了KDE桌面随附的通用游戏图标。 您可以使用类似的解决方法,但如果您更具艺术性,则可以创建自己的图标,也可以在Internet上搜索一个好的图标。 只要“ Icon行指向有效的PNG或SVG文件,您的应用程序就会继承该图标。

该示例脚本还将应用程序类别主要设置为“开发”,因此在KDE,GNOME和大多数其他“应用程序”菜单中,Twine出现在“开发”类别下。

要使此示例出现在“应用程序”菜单中,请将twine.desktop文件放置在twine.desktop两个位置之一中:

  • 如果要将应用程序存储在自己的主目录中,请将其放在~/.local/share/applications
  • 如果要将应用程序存储在/opt或其他系统范围的位置,并希望将其显示在所有用户的“应用程序”菜单中,请将其放置在/usr/share/applications

现在,该应用程序已按需安装,并已与系统的其余部分集成。

从源编译

最后,还有真正通用的安装格式:源代码。 从源代码编译应用程序是了解应用程序的结构,它们如何与系统交互以及如何进行自定义的好方法。 但是,这绝不是一个按键过程。 它需要一个构建环境,通常涉及安装依赖项库和头文件,有时还要进行一些调试。

要了解有关从源代码进行编译的更多信息,请阅读有关该主题的文章

现在你知道了

有些人认为安装软件是一个神奇的过程,只有开发人员才能理解,或者他们认为它“激活”了应用程序,好像二进制可执行文件只有在“安装”之后才有效。 希望了解了许多不同的安装方法后,您会发现安装实际上只是“将文件从一个位置复制到系统上适当位置的快捷方式”。 没有什么神秘的。 只要您在每次安装时都没有预期如何进行,而是寻找开发人员在安装过程中设置的内容,即使它与您习惯的不同,通常也很容易。

重要的是安装程序对您诚实。 如果您遇到一个安装程序,它在未经您同意的情况下尝试安装其他软件(或者可能是在征得您的同意,但以一种令人困惑或误导的方式),或者试图在没有明显原因的情况下对系统进行检查,则不要继续安装。

好的软件是灵活,诚实和开放的。 现在,您知道了如何在计算机上安装优质软件。

翻译自: https://opensource.com/article/18/1/how-install-apps-linux

linux上开发应用程序

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux上开发应用程序_如何在Linux上安装软件应用程序 的相关文章

随机推荐

  • Effective STL笔记(3)-Iterators

    这部分主要讲了常用迭代器用法的一些方面 分析STL中iterator const iterator reverse iterator和const reverse iterator的关系和一些转换 其内容比较少 简单 Item26 Prefe
  • Android 13 - binder阅读(6)- 使用ServiceManager获取服务

    最近事情好多 使用ServiceManager获取服务就暂时先不学习了 不过从之前的学习中我们也大致可以猜到使用ServiceManager获取服务的过程 根据服务名称获取到ServiceManager中服务代理对应的Handle 再到Bi
  • 服务器443端口响应代码,使用443端口远程服务器

    使用443端口远程服务器 内容精选 换一换 代码迁移工具进行代码迁移时 需要调用Linux下的rpm deb等命令才能完成扫描和迁移相关任务 这些命令和逻辑必须在后端Linux运行 IDE插件只支持以Web模式使用root用户安装工具 不支
  • 2022吴恩达机器学习(Deep learning)课程对应笔记20:特征工程&多项式回归

    2022吴恩达机器学习 Deep learning 课程对应笔记20 特征工程 多项式回归 更新时间 2023 03 20 特征工程 特征工程指的是选择特征 选择特征对模型的影响巨大 多项式回归 多项式回归就是 x n x n xn 对于多
  • 前端例程20221011:文本动态组合

    演示 原理 代码
  • MySQL之CRUD及常见面试题讲解

    目录 一 CRUD是什么 二 什么是SQL注入 三 行转列的使用 四 CRUD中常用关键词 关键词 GROUP BY HAVING ORDER BY 五 聚合函数和连表查询 聚合函数 连表查询 六 DELETE TRUNCATE DROP的
  • 交叉编译libxcb与X11

    交叉编译libxcb与X11 编译前提 工具安装 编译X11 编译依赖项Xtrans 编译依赖项xorgproto XCB完成后编译X11 X11完成 编译xcb 编译依赖项xcb proto 编译依赖项libXau 最后编译xcb XCB
  • (附源码)springboot学生宿舍管理系统 毕业设计453155

    Springboot学生宿舍管理系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化 电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用 信息时代的到来已成为不可阻挡的时尚潮流 人类发展的历史正进入一个新时代 在
  • RabbitMQ之Work Queues模式

    RabbitMQ之Work Queues模式 本下面的文字代码原来自官网 附上链接 RabbitMq 之 Work Queues 看完这篇文章对你绝对有好处 好处一 你可以了解透 Work Queues模式 本文章内容98 以上都是来自官网
  • win服务器启动springboot项目,Spring boot项目部署为windows服务

    用途 使用 Spring Boot 开发的 Web 项目 打包生成了一个 jar 包 部署在 Windows 服务器中 设置为开机启动spring boot 生成的 jar 包 直接用 java jar 运行 但是前提是需要登陆用户 并且注
  • linux经典书籍推荐

    对于linux来说 它的用处很多 它可以是java的基础 又可以构建系统 很多人对它越来越感兴趣 下面分享一些linux经典书籍供大家参考 入门篇 LINUX权威指南 书不错 写的很全面也比较广 涉及的不深 做为入门书籍不错 可以比较全面的
  • ConstraintLayout 属性详解 和Chain的使用

    http blog csdn net zxt0601 article details 72736802
  • Nacos手动注册,Nacos内网IP的解决办法,自动获取外网注册服务

    Nacos内网IP的解决办法 自动获取外网注册服务 废话不说 直接上代码 pom文件
  • Appstore审核被拒-[4. DESIGN: PREAMBLE]

    Appstore审核被拒原文如下 原因是设置里有一个版本信息可以响应点击事件进入一个版本详情页 苹果要求版本更新必须使用iOS版本更新内置更新机制 4 DESIGN PREAMBLE Design Preamble The version
  • 【华为OD机试真题 python】二进制差异数【2022 Q4

    前言 华为OD笔试真题 python 本专栏包含华为OD机试真题 会实时更新收纳网友反馈 为大家更新最新的华为德科OD机试试题 为大家提供学习和练手的题库 订阅本专栏后可私信进交流群哦 题目仅供参考 千万不要照抄 题目描述 二进制差异数 对
  • CK草稿本

    调用流程 获得op ptr ck有个工厂模式 const auto op ptrs ck tensor operation device instance DeviceOperationInstanceFactory
  • leetcode无重复字符的最长字串 python实现

    无重复字符的最长字串是一道字符串处理算法的题目 在日常编程中 处理字符串是常见任务 用Python来实现leetcode这道算法题 该题目会涉及到一个概念 滑动窗口 一 题目描述 给定一个字符串 请你找出其中不含有重复字符的 最长子串 的长
  • mac系统vim无法退出insert模式(ESC无效)

    表现 Vim 进入 Insert 模式以后 按 ESC 无法退出 解决方案 按 ctrl c
  • 电感与磁珠

    电感最重要的公式 它说明了电感的很多特性 比如 电感电流不能突变 电感的储能大小 电感的电流与电压的相位关系 还有电感的阻抗为什么是jwL 电感电流不能突变 电感电流为什么不能突变呢 来看这个公式 U等于负的L乘以di比dt Di比dt是指
  • linux上开发应用程序_如何在Linux上安装软件应用程序

    linux上开发应用程序 如何在Linux上安装应用程序 与许多操作系统一样 该问题不仅有一个答案 应用程序可以来自许多来源 几乎无法计数 每个开发团队都可以以自己认为最佳的方式交付软件 知道如何安装给出的内容是成为操作系统的真正超级用户的