linux上开发应用程序
如何在Linux上安装应用程序? 与许多操作系统一样,该问题不仅有一个答案。 应用程序可以来自许多来源-几乎无法计数-每个开发团队都可以以自己认为最佳的方式交付软件。 知道如何安装给出的内容是成为操作系统的真正超级用户的一部分。
储存库
十多年来,Linux一直使用软件存储库来分发软件。 在这种情况下,“存储库”是托管可安装软件包的公共服务器。 Linux发行版提供了一个命令,通常是该命令的图形界面,可从服务器中提取软件并将其安装到计算机上。 这种简单的概念使其成为所有主要手机操作系统的模型,最近成为两个主要的封闭源计算机操作系统的“应用商店”的模型。
![Linux存储库 Linux repository](https://i-blog.csdnimg.cn/blog_migrate/37c28a4b1fbf3311096b35c37f663d53.png)
不是应用程式商店
从软件存储库安装是在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
有关从软件存储库安装的详细信息,请参阅发行版的文档。
图形工具通常也是如此。 搜索您想要的内容,然后安装它。
![阿Perl Apper](https://i-blog.csdnimg.cn/blog_migrate/8e2623d99fa5253f9e06caeeda8397da.png)
阿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](https://i-blog.csdnimg.cn/blog_migrate/5d371dac27dcebd91c04691e9817f5c1.png)
安装仓库
您还可以通过编辑文本文件并将其添加到程序包管理器的配置目录中,或通过运行命令来安装存储库来手动添加存储库。 像往常一样,您使用的确切命令取决于您正在运行的发行版。 例如,这是一个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游戏都使用这种安装程序。
这种安装模型依赖于开发人员来交付安装“向导”。 一些安装程序是图形化的,而其他安装程序仅在终端中运行。
有两种方法可以运行这些类型的安装程序。
- 您可以直接从终端运行安装程序:
$ sh ./game/gog_warsow_x.y.z.sh
- 或者,您可以通过将其标记为可执行文件从桌面运行它。 要标记安装程序可执行文件,请右键单击其图标,然后选择属性 。
![授予安装程序可执行权限 Giving an installer executable permission](https://i-blog.csdnimg.cn/blog_migrate/5b7b1dbbab13bada865ea0309b97cf85.png)
授予安装程序可执行权限
授予其运行权限后,双击该图标开始安装。
![GOG安装程序 GOG installer](https://i-blog.csdnimg.cn/blog_migrate/f0ac53aefe26de951333b9cc95f23f35.png)
GOG安装程序
对于其余的安装,只需按照屏幕上的说明进行操作。
AppImage便携式应用
尽管AppImage格式是基于NeXT和Rox的,但它对于Linux来说还是相对较新的格式。 这个想法很简单:将运行应用程序所需的所有内容都放在一个目录中,然后将该目录视为“应用程序”。 要运行该应用程序,只需双击该图标即可运行。 无需或没有期望以传统方式安装该应用程序。 它可以从硬盘上的任何地方运行。
尽管它可以作为独立的应用程序运行,但AppImage通常可以提供一些软系统集成。
![AppImage系统集成 AppImage system integration](https://i-blog.csdnimg.cn/blog_migrate/8b0ad99658eaaca26b9804b07d492197.png)
AppImage系统集成
如果您接受此优惠,则将本地.desktop
文件安装到您的主目录中。 .desktop
文件是Linux桌面的“应用程序”菜单和mimetype系统使用的小型配置文件。 本质上,将桌面配置文件放在主目录的应用程序列表中可以“安装”该应用程序,而无需实际安装它。 作为“便携式应用程序”,您将获得安装某些东西的所有好处,以及能够在本地运行某些东西的好处。
应用目录
有时,开发人员只是编译应用程序并将结果发布为下载,没有安装脚本,也没有打包。 通常,这意味着您下载TAR文件,将其解压缩 ,然后双击可执行文件(通常是带有您下载的软件名称的文件)。
![下载适用于Linux的Twine Twine downloaded for Linux](https://i-blog.csdnimg.cn/blog_migrate/865564eee260e550985650a3511601ed.jpeg)
下载适用于Linux的Twine
当出现这种形式的软件交付时,您可以将其保留在下载位置,然后在需要时手动启动,也可以自己进行快速而肮脏的安装。 这涉及两个简单步骤:
- 将目录保存到标准位置,并在需要时手动启动它。
- 将目录保存到标准位置,然后创建一个
.desktop
文件以将其集成到您的系统中。
如果您只是为自己安装应用程序,通常在主目录中保留一个bin
目录(“ binary”的缩写)作为本地安装的应用程序和脚本的存储位置。 如果系统上还有其他需要访问应用程序的用户,则通常将二进制文件放在/opt
。 最终,这取决于您存储应用程序的位置。
下载通常位于带有版本名称的目录中,例如twine_2.13
或pcgen-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上开发应用程序