我一直在阅读有关个人包裹档案('PPA') 的信息,人们通过指向 PPA 的链接来回答问题。使用这些的最佳方法是什么?
这个问题有多个有效答案,跨越多个版本的 Ubuntu。为方便起见,下面列出了每个索引。
如何安装最新版本的 gcc 和 g++?
我正在使用各种 C++11 和 C++1y 特性;这就是为什么我需要这个。
我寻找一种简单的方法来为没有要编译的源代码的东西(配置、shellscripts、专有软件)创建 .deb 包。这是一个相当大的问题,因为大多数软件包教程都假设您有一个要编译的源 tarball。然后我找到了这个简短的教程(德语)。
之后,我创建了一个小脚本来创建一个简单的存储库。像这样:
rm /export/my-repository/repository/*
cd /home/tdeutsch/deb-pkg
for i in $(ls | grep my); do dpkg -b ./$i /export/my-repository/repository/$i.deb; done
cd /export/avanon-repository/repository
gpg --armor --export "My Package Signing Key" > PublicKey
apt-ftparchive packages ./ | gzip > Packages.gz
apt-ftparchive packages ./ > Packages
apt-ftparchive release ./ > /tmp/Release.tmp; mv /tmp/Release.tmp Release
gpg --output Release.gpg -ba Release
Run Code Online (Sandbox Code Playgroud)
我将密钥添加到 apt 密钥环并包含如下来源:
deb http://my.default.com/my-repository/ ./
Run Code Online (Sandbox Code Playgroud)
看起来 repo 本身运行良好(我遇到了一些问题,为了解决这些问题,我需要添加两次 Packages 并为 Release 文件制作临时文件解决方法)。我还将一些下载的 .deb 放入 repo 中,看起来它们也可以正常工作。但是我自己创建的包没有……我做的sudo apt-get update …
假设我有一个用 C、C++ 或 Python 编写的工作应用程序。我想创建一个 Launchpad PPA,以便其他人可以轻松地从包中安装它。请给出从头到尾执行此操作的分步说明。(或提供一个链接,做同样的事情;)
这可能是一个愚蠢的问题,但我最近意识到我不知道为什么apt-get 没有单用户功能。
我不是在寻找答案:
我正在尝试将我的 SQLite 版本更新到 3.24 或更高版本,以便 Python 应用程序可以使用新的“UPSERT”查询。我已经尝试了几个小时来做到这一点,但收效甚微。它拒绝更新过去3.22。
我尝试过:
使用 apt 安装和重新安装 sqlite/libsqlite3-dev(以及它的各种版本)
从启动板下载包(例如 https://launchpad.net/ubuntu/+source/sqlite3/3.26.0-2)并尝试安装它们
使用 Python pip 尝试更新 sqlite3
添加一些 PPA 存储库以尝试从那里获取它
从谷歌找到的其他各种建议
我没有尝试过的:
是否可以在 Ubuntu 18.04 上安装 SQLite 3.24+ 版本?如果是这样,是从源代码构建的唯一方法还是有一种简单的方法可以通过 apt(或类似的)获取更新的版本?
我的问题是我想安装最新的搅拌机并通过sudo apt-get update && sudo apt-get upgrade. 所以,我尝试添加一个存储库
sudo add-apt-repository ppa:cheleb/blender-svn
sudo apt-get update
sudo apt-get install blender
Run Code Online (Sandbox Code Playgroud)
因此,在终端中执行第一行之后,它给了我:
You are about to add the following PPA to your system:
tag:launchpad.net:2008:redacted
More info: https://launchpad.net/~cheleb/+archive/blender-svn
Press [ENTER] to continue or ctrl-c to cancel adding it
Executing: gpg --ignore-time-conflict --no-options
--no-default-keyring --secret-keyring /tmp/tmp.pvnVePB2Fl --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver hkp://keyserver.ubuntu.com:80/ --recv tag:launchpad.net:2008:redacted
gpg: "tag:launchpad.net:2008:redacted" not a key ID: skipping
Run Code Online (Sandbox Code Playgroud)
当我运行第二行时,它给了我:
W: Failed to fetch http://ppa.launchpad.net/cheleb/blender-svn/ubuntu/dists/precise/main/source/Sources 404 Not Found
W: …Run Code Online (Sandbox Code Playgroud) 我一直在做一些研究:你不能从 Node.js 应用程序构建 PPA。
显然,这不是一个规则,因为有一些项目已经成功地实现了这一点。WebUDP8就是一个例子;他们为 Atom IDE(使用 Electron)和 Popcorn Time(使用 Node-Webkit)构建 PPA
我做了任何人都会做的事情:打扰这些人,因为没有文档(或者至少,我没有找到)。
他们的回答:
Launchpad PPA 尚不支持 nodejs,因为它们不允许获取外部资源。因此,Popcorn TIme PPA 曾经是一个简单的安装程序,可以从其服务器自动下载 Popcorn Time。
但是,据我所知,我没有使用外部资源。这不像我从 package.json 下载依赖项。它们都是--save在d文件夹中构建的。
如何制作我的 Electron 应用程序的 PPA?软件中心是否也适用于 PPA,还是仅适用于 .deb?
我在这个问题上的所有谷歌结果都是关于学习使用synaptic.
我注意到 Ubuntu 的TTYtter软件包落后了很多。TTYtter只是一个文件(一个perl脚本),所以即使是像我这样的新手也可以更新 Ubuntu 存储库,而无需修补文件夹或.tar.gz's 之类的任何复杂性。
所以我想我可以而且我想修复TTYtter到更新的版本。但是我该怎么做呢?
你如何创建自己的包在Linux中,就像cd,ls或任何第三方软件包?
我所知道的是如何创建一个.sh文件,在其中编写一个脚本并使用以下命令执行它:
bash file_name
Run Code Online (Sandbox Code Playgroud)
但除此之外,我想更深入地了解。请解释从下载使用apt-get到如何运行它的完整步骤。
package-management packaging command-line scripts gnome-shell