mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-12-15 13:22:04 +08:00
Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 855b18cfa6 | |||
| bc897969f8 | |||
| 52af8a8229 | |||
| 5220b886de | |||
| 5be7923e60 | |||
| 6ca6f63b1f | |||
| bda0426a3b | |||
| a75b7b1e57 | |||
| 8054f85ada | |||
| bc6584eacc | |||
| c9e01d10fe | |||
| c3b9763aa8 | |||
| 398cd512d7 | |||
| 0c0ff452ae | |||
| e6d3b035db | |||
| 5e88f7c1eb | |||
| b639a9d726 | |||
| e2f6a2b3c2 | |||
| c826a3927c | |||
| 0c367799b7 | |||
| 114b5cdfe5 | |||
| a563d99bc4 | |||
| b1cb765b6e | |||
| 49c5583ea9 | |||
| b0dfd6a3da | |||
| a63c1202bd | |||
| dfe30f9d6d | |||
| b00f3fa501 | |||
| 03f35782c6 | |||
| 8f192d17ec |
68
debian/changelog
vendored
68
debian/changelog
vendored
@@ -1,3 +1,71 @@
|
||||
spark-store (3.1.5-3) stable; urgency=medium
|
||||
|
||||
* 包内自带密钥
|
||||
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (3.1.5-2) stable; urgency=medium
|
||||
|
||||
* 下载软件时跳过获取大小,修复部分软件无法下载的问题
|
||||
* 修复 获取key时出错,指定使用http1.1
|
||||
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (3.1.5-1) stable; urgency=medium
|
||||
|
||||
* 改变更新策略,UOS也下载加速,但是安装不加速
|
||||
|
||||
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (3.1.5) stable; urgency=medium
|
||||
|
||||
* 改变更新策略,现在支持应用在更新时引入新依赖
|
||||
* ss-apt-fast现在默认允许降级,以与apt使用体验一致
|
||||
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (3.1.4-2) stable; urgency=medium
|
||||
|
||||
* 客户端下载使用metalink来支持bt下载加速
|
||||
* 修复使用更新和安装设置更新商店本体时出错
|
||||
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (3.1.4-1) stable; urgency=medium
|
||||
|
||||
* 安装脚本和检测更新脚本检查网络时间超时时间延长至5s
|
||||
* 修复:ssinstall在没有安装apt-fast的情况下首次安装需要依赖的软件时安装失败
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (3.1.4) stable; urgency=medium
|
||||
|
||||
* 发布正式版,同步到官网
|
||||
* 修复安装时使用wget的问题
|
||||
* 合并3.1.3-1和3.1.3-2的更改
|
||||
* 屏蔽了ssinstall之外的安装方式
|
||||
* 调整了报错框的形式
|
||||
* 修复pkexec下ssinstall不处理依赖
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (3.1.3-2) stable; urgency=medium
|
||||
|
||||
* 调整 现在与系统更新分开,不再导致更新失败
|
||||
* 支持直接更新软件源文件,不再让d.吃全部更新流量
|
||||
* ss-apt-fast不再强制root权限
|
||||
* 修改ss-apt-fast的策略,现在除了安装,下载和更新都改用apt
|
||||
* ssinstall 现在也会在不适用ss-apt-fast的时候模拟源了(针对UOS)
|
||||
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (3.1.3-1) stable; urgency=medium
|
||||
|
||||
* 修复 下载提前退出
|
||||
|
||||
19
debian/spark-store.postinst
vendored
19
debian/spark-store.postinst
vendored
@@ -16,12 +16,23 @@ case "$1" in
|
||||
|
||||
|
||||
# Download and install key
|
||||
wget -O /tmp/spark-store-install/spark-store.asc https://d.store.deepinos.org.cn/dcs-repo.gpg-key.asc
|
||||
gpg --dearmor /tmp/spark-store-install/spark-store.asc
|
||||
mkdir -p /tmp/spark-store-install/
|
||||
cp -f /opt/durapps/spark-store/bin/spark-store.asc /tmp/spark-store-install/spark-store.asc
|
||||
gpg --dearmor /tmp/spark-store-install/spark-store.asc
|
||||
cp -f /tmp/spark-store-install/spark-store.asc.gpg /etc/apt/trusted.gpg.d/spark-store.gpg
|
||||
|
||||
|
||||
# Remove existing source file
|
||||
rm -f /etc/apt/preferences.d/sparkstore
|
||||
|
||||
|
||||
# Run apt update to avoid users being fucked up by the non-exist dependency problem
|
||||
apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||
|
||||
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
||||
# 下载源列表
|
||||
bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||
# 更新
|
||||
|
||||
|
||||
# Create symbo links to start upgrade detect
|
||||
ln -s /opt/durapps/spark-store/bin/update-upgrade/autostart/spark-update-notifier.desktop /etc/xdg/autostart/spark-update-notifier.desktop
|
||||
@@ -42,6 +53,8 @@ case "$1" in
|
||||
|
||||
# Remove temp dir
|
||||
rm -rf /tmp/spark-store-install
|
||||
|
||||
|
||||
;;
|
||||
|
||||
triggered)
|
||||
|
||||
2
debian/spark-store.preinst
vendored
2
debian/spark-store.preinst
vendored
@@ -3,7 +3,7 @@
|
||||
function network-check()
|
||||
{
|
||||
#超时时间
|
||||
local timeout=1
|
||||
local timeout=5
|
||||
|
||||
#目标网站
|
||||
local target=www.baidu.com
|
||||
|
||||
1
debian/spark-store.prerm
vendored
1
debian/spark-store.prerm
vendored
@@ -8,6 +8,7 @@ rm /usr/local/bin/ussinstall
|
||||
rm /usr/local/bin/ussremove
|
||||
rm /usr/local/bin/ss-apt-fast
|
||||
|
||||
|
||||
# Remove residual symbol links to stop upgrade detect if exist
|
||||
if [ -f /etc/xdg/autostart/spark-update-notifier.desktop ];then
|
||||
rm /etc/xdg/autostart/spark-update-notifier.desktop
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
Package: *
|
||||
Pin: origin *.deepinos.org.cn
|
||||
Pin-Priority: 400
|
||||
@@ -45,18 +45,18 @@ downloadlist::downloadlist(QWidget *parent) :
|
||||
menu_install->addAction(action_dpkg);
|
||||
}
|
||||
|
||||
QFile deepin("/usr/bin/deepin-deb-installer");
|
||||
deepin.open(QIODevice::ReadOnly);
|
||||
if(deepin.isOpen())
|
||||
{
|
||||
menu_install->addAction(action_deepin);
|
||||
}
|
||||
QFile gdebi("/usr/bin/gdebi");
|
||||
gdebi.open(QIODevice::ReadOnly);
|
||||
if(gdebi.isOpen())
|
||||
{
|
||||
menu_install->addAction(action_gdebi);
|
||||
}
|
||||
// QFile deepin("/usr/bin/deepin-deb-installer");
|
||||
// deepin.open(QIODevice::ReadOnly);
|
||||
// if(deepin.isOpen())
|
||||
// {
|
||||
// menu_install->addAction(action_deepin);
|
||||
// }
|
||||
// QFile gdebi("/usr/bin/gdebi");
|
||||
// gdebi.open(QIODevice::ReadOnly);
|
||||
// if(gdebi.isOpen())
|
||||
// {
|
||||
// menu_install->addAction(action_gdebi);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
@@ -219,6 +219,7 @@ void downloadlist::on_pushButton_3_clicked()
|
||||
{
|
||||
textbrowser->setLineWidth(0);
|
||||
textbrowser->setText(out);
|
||||
textbrowser->setMinimumHeight(500);
|
||||
|
||||
output_w->setMinimumHeight(600);
|
||||
output_w->setAttribute(Qt::WA_TranslucentBackground);
|
||||
|
||||
@@ -1,14 +1,8 @@
|
||||
#include "downloadworker.h"
|
||||
#include <QEventLoop>
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkRequest>
|
||||
#include <QNetworkReply>
|
||||
#include <QThread>
|
||||
#include <QProcess>
|
||||
#include <QRegularExpression>
|
||||
#include <QFileInfo>
|
||||
#include <QDir>
|
||||
#include <QElapsedTimer>
|
||||
#include <QtConcurrent>
|
||||
|
||||
DownloadController::DownloadController(QObject *parent)
|
||||
@@ -36,14 +30,49 @@ void DownloadController::setFilename(QString filename)
|
||||
this->filename = filename;
|
||||
}
|
||||
|
||||
void timeSleeper(int time)
|
||||
|
||||
bool checkMeatlink(QString metaUrl)
|
||||
{
|
||||
QElapsedTimer t1;
|
||||
t1.start();
|
||||
while(t1.elapsed()<time);
|
||||
return;
|
||||
QFile metaStatus("/tmp/spark-store/metaStatus.txt");
|
||||
if (metaStatus.exists())
|
||||
{
|
||||
metaStatus.remove();
|
||||
}
|
||||
system("curl -I -s --connect-timeout 5 " + metaUrl.toUtf8() + " -w %{http_code} |tail -n1 > /tmp/spark-store/metaStatus.txt");
|
||||
if (metaStatus.open(QFile::ReadOnly) && QString(metaStatus.readAll()).toUtf8() == "200")
|
||||
{
|
||||
metaStatus.remove();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void gennerateDomain(QVector<QString> &domains)
|
||||
{
|
||||
QFile serverList(QDir::homePath().toUtf8() + "/.config/spark-store/server.list");
|
||||
if (serverList.open(QFile::ReadOnly))
|
||||
{
|
||||
QStringList list = QString(serverList.readAll()).trimmed().split("\n");
|
||||
qDebug() << list << list.size();
|
||||
domains.clear();
|
||||
|
||||
for (int i = 0; i < list.size(); i++)
|
||||
{
|
||||
if (list.at(i).contains("镜像源 Download only") && i + 1 < list.size())
|
||||
{
|
||||
for (int j = i + 1; j < list.size(); j++)
|
||||
{
|
||||
domains.append(list.at(j));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (domains.size() == 0)
|
||||
{
|
||||
domains.append("d.store.deepinos.org.cn");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 开始下载
|
||||
@@ -59,53 +88,37 @@ void DownloadController::startDownload(const QString &url)
|
||||
}
|
||||
|
||||
QtConcurrent::run([=]()
|
||||
{
|
||||
QFile serverList(QDir::homePath().toUtf8() + "/.config/spark-store/server.list");
|
||||
if (serverList.open(QFile::ReadOnly))
|
||||
{
|
||||
QStringList list = QString(serverList.readAll()).trimmed().split("\n");
|
||||
qDebug() << list << list.size();
|
||||
domains.clear();
|
||||
|
||||
for (int i = 0; i < list.size(); i++)
|
||||
{
|
||||
if (list.at(i).contains("镜像源 Download only") && i + 1 < list.size())
|
||||
{
|
||||
for (int j = i + 1; j < list.size(); j++)
|
||||
{
|
||||
system("curl -I -s --connect-timeout 5 https://" + list.at(j).toUtf8() + "/dcs-repo.gpg-key.asc -w %{http_code} |tail -n1 > /tmp/spark-store/cdnStatus.txt");
|
||||
QFile cdnStatus("/tmp/spark-store/cdnStatus.txt");
|
||||
if (cdnStatus.open(QFile::ReadOnly) && QString(cdnStatus.readAll()).toUtf8() == "200")
|
||||
{
|
||||
qDebug() << list.at(j);
|
||||
domains.append(list.at(j));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (domains.size() == 0)
|
||||
{
|
||||
domains.append("d.store.deepinos.org.cn");
|
||||
}
|
||||
qDebug() << domains << domains.size();
|
||||
{
|
||||
QString metaUrl = url + ".metalink";
|
||||
qDebug() << "metalink" << metaUrl;
|
||||
bool useMetalink = false;
|
||||
if (checkMeatlink(metaUrl)){
|
||||
useMetalink = true;
|
||||
qDebug() << "useMetalink:" << useMetalink;
|
||||
}else{
|
||||
gennerateDomain(domains);
|
||||
// qDebug() << domains << domains.size();
|
||||
}
|
||||
|
||||
QDir tmpdir("/tmp/spark-store/");
|
||||
QString aria2Command = "-d";
|
||||
QString aria2Urls = "";
|
||||
QString aria2Verbose = "--summary-interval=1";
|
||||
QString aria2Threads = "-s " + QString::number(domains.size());
|
||||
QString aria2Threads = "--split=16";
|
||||
QString aria2NoConfig = "--no-conf";
|
||||
QString aria2NoSeeds = "--seed-time=0";
|
||||
QStringList command;
|
||||
QString downloadDir = "/tmp/spark-store/";
|
||||
|
||||
|
||||
for (int i = 0; i < domains.size(); i++)
|
||||
{
|
||||
command.append(replaceDomain(url, domains.at(i)).toUtf8());
|
||||
aria2Urls += replaceDomain(url, domains.at(i));
|
||||
aria2Urls += " ";
|
||||
if (useMetalink){
|
||||
command.append(metaUrl.toUtf8());
|
||||
}
|
||||
else{
|
||||
for (int i = 0; i < domains.size(); i++)
|
||||
{
|
||||
command.append(replaceDomain(url, domains.at(i)).toUtf8());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
qint64 downloadSizeRecord = 0;
|
||||
QString speedInfo = "";
|
||||
@@ -113,7 +126,11 @@ void DownloadController::startDownload(const QString &url)
|
||||
command.append(aria2Command.toUtf8());
|
||||
command.append(downloadDir.toUtf8());
|
||||
command.append(aria2Verbose.toUtf8());
|
||||
command.append(aria2NoConfig.toUtf8());
|
||||
command.append(aria2Threads.toUtf8());
|
||||
if (useMetalink){
|
||||
command.append(aria2NoSeeds.toUtf8());
|
||||
}
|
||||
qDebug() << command;
|
||||
auto cmd = new QProcess();
|
||||
cmd->setProcessChannelMode(QProcess::MergedChannels);
|
||||
@@ -126,10 +143,9 @@ void DownloadController::startDownload(const QString &url)
|
||||
[&]()
|
||||
{
|
||||
//通过读取输出计算下载速度
|
||||
QFileInfo info(tmpdir.absoluteFilePath(filename));
|
||||
QString message = cmd->readAllStandardOutput().data();
|
||||
message = message.replace(" ", "").replace("\n", "").replace("-", "");
|
||||
message = message.replace("*", "").replace("=", "");
|
||||
// qDebug() << message;
|
||||
message = message.replace(" ", "");
|
||||
QStringList list;
|
||||
qint64 downloadSize = 0;
|
||||
int downloadSizePlace1 = message.indexOf("(");
|
||||
@@ -143,15 +159,15 @@ void DownloadController::startDownload(const QString &url)
|
||||
{
|
||||
int percentInfoNumber = percentInfo.toUInt();
|
||||
|
||||
downloadSize = (percentInfoNumber + 1) * fileSize / 100;
|
||||
downloadSize = percentInfoNumber * fileSize / 100;
|
||||
}
|
||||
}
|
||||
if (speedPlace1 != -1 && speedPlace2 != -1)
|
||||
if (speedPlace1 != -1 && speedPlace2 != -1 && speedPlace2 - speedPlace1 <= 15)
|
||||
{
|
||||
speedInfo = message.mid(speedPlace1 + 3, speedPlace2 - speedPlace1 - 3);
|
||||
speedInfo += "/s";
|
||||
}
|
||||
qDebug() << percentInfo << speedInfo;
|
||||
// qDebug() << percentInfo << speedInfo;
|
||||
if (downloadSize >= downloadSizeRecord)
|
||||
{
|
||||
downloadSizeRecord = downloadSize;
|
||||
@@ -180,8 +196,7 @@ void DownloadController::startDownload(const QString &url)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
emit downloadFinished();
|
||||
});
|
||||
emit downloadFinished(); });
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -197,30 +212,8 @@ void DownloadController::stopDownload()
|
||||
|
||||
qint64 DownloadController::getFileSize(const QString &url)
|
||||
{
|
||||
QEventLoop event;
|
||||
QNetworkAccessManager requestManager;
|
||||
QNetworkRequest request;
|
||||
request.setUrl(QUrl(url));
|
||||
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
|
||||
QNetworkReply *reply = requestManager.head(request);
|
||||
connect(reply, static_cast<void (QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error),
|
||||
[this, reply](QNetworkReply::NetworkError error)
|
||||
{
|
||||
if (error != QNetworkReply::NoError)
|
||||
{
|
||||
emit errorOccur(reply->errorString());
|
||||
}
|
||||
});
|
||||
connect(reply, &QNetworkReply::finished, &event, &QEventLoop::quit);
|
||||
event.exec();
|
||||
|
||||
qint64 fileSize = 0;
|
||||
if (reply->rawHeader("Accept-Ranges") == QByteArrayLiteral("bytes") && reply->hasRawHeader(QString("Content-Length").toLocal8Bit()))
|
||||
{
|
||||
fileSize = reply->header(QNetworkRequest::ContentLengthHeader).toUInt();
|
||||
}
|
||||
qDebug() << "文件大小为:" << fileSize;
|
||||
reply->deleteLater();
|
||||
// 已经无需使用 qtnetwork 再获取 filesize,完全交给 aria2 来计算进度。 为保证兼容性,故保留此函数。
|
||||
qint64 fileSize = 10000;
|
||||
return fileSize;
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ int main(int argc, char *argv[])
|
||||
DAboutDialog dialog;
|
||||
a.setAboutDialog(&dialog);
|
||||
dialog.setLicense(QObject::tr("We publish this program under GPL V3"));
|
||||
dialog.setVersion(DApplication::buildVersion("Version 3.1.3-1"));
|
||||
dialog.setVersion(DApplication::buildVersion("Version 3.1.5-3"));
|
||||
dialog.setProductIcon(QIcon::fromTheme("spark-store")); // 设置Logo
|
||||
dialog.setProductName(QLabel::tr("Spark Store"));
|
||||
dialog.setDescription(
|
||||
@@ -51,7 +51,7 @@ int main(int argc, char *argv[])
|
||||
a.setOrganizationName("spark-union");
|
||||
a.setOrganizationDomain("https://www.deepinos.org/");
|
||||
a.setApplicationName("Spark Store"); //不需要翻译,否则 ~/.local/share/ 下文件夹名称也被翻译为中文
|
||||
a.setApplicationVersion(DApplication::buildVersion("3.1.3-1"));
|
||||
a.setApplicationVersion(DApplication::buildVersion("3.1.5-3"));
|
||||
a.setApplicationAcknowledgementPage("https://gitee.com/deepin-community-store/spark-store");
|
||||
a.setApplicationDescription(
|
||||
QObject::tr(
|
||||
|
||||
0
tool/apt-fast-conf/sources.list.d/.keep
Normal file
0
tool/apt-fast-conf/sources.list.d/.keep
Normal file
41
tool/spark-store.asc
Normal file
41
tool/spark-store.asc
Normal file
@@ -0,0 +1,41 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mQGNBF7sGtgBDADKux63RQqGjbilEBErDjbGH+/sya9VjNBZdge1G/kK+8SEU7x9
|
||||
QFkSoprS7MN9qEtLhdN4+jqKDwwwlB0kjOK/L3BTsSjeP1fonY+Foprnc5sBBNDq
|
||||
2g4SQr1joafJq/d/E1GzCFCtUeo1/g8siEB9O2A8LFAqKB0ti6cXFQBc7QrRKNqb
|
||||
mUQYYkva5TeyYXwg8dV/jlQ1HkRftHO+mDOlxhSZxjH8o/3cHpVB/Ef7LUbUfzTL
|
||||
jT4Lxu5k6jFYeNI9EmIl36Nfz6o4T+iG19PQjv0d9aZe+4ceFeRQNPPqeubGJO9Z
|
||||
STNhHBFisgr/NdCKDVimR9wR7NSDceO+NswgMZzzo2xIFCsTB+JrMpTkDEBF1eFC
|
||||
F2RHwi6T4vJmFdt1rHhBfufgHrGNekZytgZw6tL9WDvDCiCKKZSGetfuBfaNYy63
|
||||
QNVszRVT5IOf6Rg2vtBIWM/iiAI6E9RsNhElRQj/cQLriIzuwHfgdHx8gPsRSgVx
|
||||
ZgizW0/2u4ZkrHUAEQEAAbQiRENTdG9yZSA8amlmZW5nc2hlbm1vQG91dGxvb2su
|
||||
Y29tPokBzgQTAQoAOAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBJ2aqFn3
|
||||
UCSxoezhbg5B01SimkQMBQJirsYKAAoJEA5B01SimkQMCx0L/2OvTYmOr4y4wC7i
|
||||
oC/uCZpWt9eCMEkC1kB2a9xjPX2GbxTnzvrdkiqHDD8uR2gfO7NkHyoGies+zeCT
|
||||
LcHH1Li+8KnGy3wye1KWgGTpxS3OV1gHawXi2w6OVhoQvod0y3cbGAOtOWpnbg1n
|
||||
SiJdDy3cjC+BNYSNPuF3qoY6YEdIfE9SaXANxe/57TUbN0TaiQFYdRd7GyyevjtC
|
||||
KNW8R06QKQ/zNqJSaoMHVVtDICXDCR4yvzmqXJppfMJKwHW9sPLC2c1xVx3pmyXc
|
||||
yFzIPOyeu3CDvdbXlh1gfoMTnUfWQyB7oIZxmCfFJGdodZwoxA+pkAcyhx87JYpE
|
||||
L4gy3SERvAog+/dD47gCb5alGYvyk9t7PQAAvwY8yr/6gf7f1U7DzxuT386LefW7
|
||||
6p5ET/R7xcuNLwRH0ZOp/eQECj72A7KXhQ5IL47Rfdh7VzCkf0MGKBFEIET9OV0G
|
||||
zv1q/z281pt08wHPGM3CetPWUFWUD9/H/UvBUSmpoSLgBsMhdbkBjQRe7BrYAQwA
|
||||
mAKDNHieo2P1WGNBMi4pPuhhgv8JyBzk8yrSOU+8s1ZTI4mI82iBEy5zAnAx3W1k
|
||||
unXVlDyq1/LfzL2Nt8Apr5aQdyEqSu4zN/6JBETB0LIkdrwdwBciAHzAKPfJWCR8
|
||||
t+Ox76I2MNeVsVQFAjGeb/7QR1Ge6Sx/sgSG7NTWYD6PmQtqmH0xKJsfXYfgayRG
|
||||
RF1rfu6CV0b2rPFfXOwB+3qQ8YInrPlI/9dswZiVElGGmbQTo3fGqk3T5iShqSnZ
|
||||
wCYDj2ODDknoPrfE1uUkF7CoYEkGrPbrUMwFK/SHvvG6cUz0EFUENPg7nECPmHGm
|
||||
GPWByBx/Yo0Jg68JavIeX7q9mnnlTP/3sp1JFLAQpR8q4S9lFOv6uYKJNUxQeBF+
|
||||
lBUkiafHzeHxJNP3ymDkrRRi640TubEZfVGjp5cskLY+U6KIpAXK/kCp42uPY7ob
|
||||
cuc3vAZ+5EcYCOY+LI80urQ5a+iMqo2ZTxL7C0BAX79QLgTDmH/FW4ejkSbrXH8v
|
||||
ABEBAAGJAbYEGAEKACACGwwWIQSdmqhZ91AksaHs4W4OQdNUoppEDAUCYq7GEwAK
|
||||
CRAOQdNUoppEDOm8C/9w3/Qtd14531O+ZsrQkfQ+ByIvGFKrnz4BIqD/99lR7UXj
|
||||
3Z2/bN7IGbwNUrBpgFqzlWAzpX9tiGhnwDphwSVeYNsvwepKmtmMAaPkP+ujR95E
|
||||
62UKpdVVrHH/VOCT4ZsSddwEVOLeI9LltO6RmPr54e3bpBXv6bijGnjhgRyJU2Jg
|
||||
DVE+UOU3m26fTQZZf3G9W55TBNdtpA1gggppJ7SgbwmuWcFjeF1gaEOeW2P5jaYe
|
||||
+Nx4Xpc4uf341elTfym8NQ/CfEfgAn3zs0ZOmnCX3JlmFh7gPW8fOSIDTC0NkJtU
|
||||
6LlguuprKhAUCSPKDlod7f7SmiwMsqvaAH+6Hi402tFnIwA1zjQk4BoCsUAVXVQx
|
||||
l2LC2UD3zBZw9WO6Y/YDgzM6Q2TlI9l1IjmkMHBWHalZ2afA7Uutv4JeNm0joT1D
|
||||
O5TmDYkkjjfu/+t+QnmBt5KgN2+HwF83ceJOqbPETvEviG5Wh+RXIT5kSgqgRPuV
|
||||
44jA/CTiR2VibEJ22D0=
|
||||
=mGFM
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
@@ -1,19 +1,42 @@
|
||||
#/bin/bash
|
||||
|
||||
if [ "$(id -u)" != "0" ]
|
||||
then
|
||||
echo "ss-apt-fast需要在root下运行"
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [ "$1" = "install" ] || [ "$1" = "upgrade" ] || [ "$1" = "full-upgrade" ] || [ "$1" = "download" ] ; then
|
||||
|
||||
###刷新apt-fast配置
|
||||
mkdir -p /tmp/ss-apt-fast-conf/sources.list.d
|
||||
# 创建文件夹
|
||||
echo "从服务器获取配置和镜像列表..."
|
||||
echo "Getting server and mirror lists..."
|
||||
echo
|
||||
curl --progress-bar -o /tmp/ss-apt-fast-conf/apt-fast.conf "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/apt-fast.conf"
|
||||
chmod -R 755 /tmp/ss-apt-fast-conf
|
||||
|
||||
|
||||
DEPEND=`which apt-fast`
|
||||
if [ "$DEPEND" = "" ] ; then
|
||||
echo "未安装依赖:apt-fast 开始安装"
|
||||
apt install apt-fast -y
|
||||
sudo ss-apt-fast ssupdate && sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install apt-fast -y
|
||||
fi
|
||||
###执行安装
|
||||
bwrap --dev-bind / / \
|
||||
--bind '/tmp/ss-apt-fast-conf/apt-fast.conf' /etc/apt-fast.conf \
|
||||
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||
apt-fast "$@" --allow-downgrades
|
||||
|
||||
rm -rf /tmp/ss-apt-fast-conf
|
||||
|
||||
elif [ "$1" = "ssupdate" ];then
|
||||
sudo curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
||||
sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||
#只更新星火源
|
||||
|
||||
else
|
||||
bwrap --dev-bind / / \
|
||||
--bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list \
|
||||
apt "$@"
|
||||
fi
|
||||
|
||||
rm /opt/durapps/spark-store/bin/apt-fast-conf/apt-fast.conf
|
||||
echo "从服务器获取配置和镜像列表..."
|
||||
curl -s --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/apt-fast.conf "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/apt-fast.conf"
|
||||
|
||||
bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/apt-fast.conf' /etc/apt-fast.conf apt-fast "$@"
|
||||
@@ -46,61 +46,53 @@ isuos=`cat /etc/os-release | grep UnionTech`
|
||||
##############判断是否是root运行,如果是,则正常走;如果不是,则代输密码
|
||||
if [ "$(id -u)" != "0" ];then
|
||||
#############################无root权限时
|
||||
#临时提升星火源的优先级
|
||||
echo "$upass" | sudo -S sed -i 's/400/500/g' /etc/apt/preferences.d/sparkstore
|
||||
|
||||
IS_INSTALLED=`which apt-fast`
|
||||
if [ "$IS_INSTALLED" = "" ] ; then
|
||||
echo "未安装依赖:apt-fast 开始安装"
|
||||
echo "$upass" | sudo -S apt install apt-fast -y
|
||||
echo "$upass" | sudo -S /usr/local/bin/ss-apt-fast ssupdate && echo "$upass" | sudo -S bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install apt-fast -y
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [ "$DEPEND" != "" ] && [ "$isuos" != "" ]; then
|
||||
echo "UOS中系统依赖无法使用第三方下载工具,放弃使用apt-fast"
|
||||
echo ----------------------------------------------------------------------------------
|
||||
echo "$upass" | sudo -S dpkg -i $1 || sudo apt install -yf
|
||||
echo "$upass" | sudo -S dpkg -i $1 || sudo /usr/local/bin/ss-apt-fast ssupdate && sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install -yf
|
||||
|
||||
|
||||
fi
|
||||
|
||||
if [ "$DEPEND" != "" ] && [ "$isuos" = "" ]; then
|
||||
echo "检测到apt-fast,使用ss-apt-fast进行多线程下载加速"
|
||||
echo "检测到apt-fast,使用/usr/local/bin/ss-apt-fast进行多线程下载加速"
|
||||
echo ----------------------------------------------------------------------------------
|
||||
echo "$upass" | sudo -S dpkg -i $1 || sudo ss-apt-fast install -yf
|
||||
echo "$upass" | sudo -S dpkg -i $1 || sudo /usr/local/bin/ss-apt-fast ssupdate && sudo /usr/local/bin/ss-apt-fast install -yf
|
||||
fi
|
||||
|
||||
echo "$upass" | sudo -S sed -i 's/500/400/g' /etc/apt/preferences.d/sparkstore
|
||||
#恢复优先级
|
||||
|
||||
|
||||
|
||||
|
||||
else
|
||||
###########################有root权限时
|
||||
|
||||
#临时提升星火源的优先级
|
||||
sed -i 's/400/500/g' /etc/apt/preferences.d/sparkstore
|
||||
|
||||
IS_INSTALLED=`which apt-fast`
|
||||
IS_INSTALLED=`which apt-fast`
|
||||
if [ "$IS_INSTALLED" = "" ] ; then
|
||||
echo "未安装依赖:apt-fast 开始安装"
|
||||
apt install apt-fast -y
|
||||
/usr/local/bin/ss-apt-fast ssupdate && bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install apt-fast -y
|
||||
fi
|
||||
|
||||
|
||||
if [ "$DEPEND" != "" ] && [ "$isuos" != "" ]; then
|
||||
echo "UOS中系统依赖无法使用第三方下载工具,放弃使用apt-fast"
|
||||
echo ----------------------------------------------------------------------------------
|
||||
dpkg -i $1 || apt install -yf
|
||||
dpkg -i $1 || /usr/local/bin/ss-apt-fast ssupdate && bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update && sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install -yf
|
||||
fi
|
||||
|
||||
if [ "$DEPEND" != "" ] && [ "$isuos" = "" ]; then
|
||||
echo "检测到apt-fast,使用ss-apt-fast进行多线程下载加速"
|
||||
echo "检测到apt-fast,使用/usr/local/bin/ss-apt-fast进行多线程下载加速"
|
||||
echo ----------------------------------------------------------------------------------
|
||||
dpkg -i $1 || ss-apt-fast install -yf
|
||||
dpkg -i $1 || /usr/local/bin/ss-apt-fast ssupdate && /usr/local/bin/ss-apt-fast install -yf
|
||||
fi
|
||||
|
||||
sed -i 's/500/400/g' /etc/apt/preferences.d/sparkstore
|
||||
#恢复优先级
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,8 +2,51 @@
|
||||
|
||||
echo "以上可升级,是否升级?[y/n]"
|
||||
read yes_or_no
|
||||
if [ "$yes_or_no" = "y" ];then
|
||||
sudo ss-apt-fast upgrade -y -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||
else
|
||||
exit
|
||||
fi
|
||||
if [ "$yes_or_no" = "y" ];then ###这是确定是否同意
|
||||
|
||||
echo "获取更新列表..."
|
||||
PKG_LIST="$(bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" | awk 'BEGIN {FS="/"} {print $1}' | awk NR\>1)"
|
||||
|
||||
|
||||
isuos=`cat /etc/os-release | grep UnionTech`
|
||||
if [ "$isuos" != "" ]; then ###这是确定是否为UOS 如果是
|
||||
echo "UOS中系统依赖无法使用第三方下载工具,使用apt-fast下载本体"
|
||||
|
||||
cd /var/cache/apt/archives
|
||||
for PKG_NAME in $PKG_LIST;
|
||||
do
|
||||
echo "$PKG_NAME 正在下载..."
|
||||
sudo /usr/local/bin/ss-apt-fast download "$PKG_NAME" -y >/dev/null 2>&1;
|
||||
done
|
||||
|
||||
echo "----开始安装"
|
||||
for PKG_NAME in $PKG_LIST;
|
||||
do
|
||||
echo "$PKG_NAME 正在准备更新..."
|
||||
if sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt install "$PKG_NAME" -y >/dev/null 2>&1;
|
||||
then
|
||||
echo "$PKG_NAME 已更新"
|
||||
else
|
||||
echo "WARNING: $PKG_NAME 无法更新"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
|
||||
else ###这是确定是否为UOS
|
||||
|
||||
for PKG_NAME in $PKG_LIST;
|
||||
do
|
||||
echo "$PKG_NAME 正在准备更新..."
|
||||
if sudo /usr/local/bin/ss-apt-fast install "$PKG_NAME" -y >/dev/null 2>&1;
|
||||
then
|
||||
echo "$PKG_NAME 已更新"
|
||||
else
|
||||
echo "WARNING: $PKG_NAME 无法更新"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
fi ###这是确定是否为UOS
|
||||
|
||||
fi ###这是确定是否同意
|
||||
@@ -71,9 +71,9 @@ case $option in
|
||||
;;
|
||||
|
||||
2)
|
||||
echo "请注意:如果有些更新需要从系统获取更多依赖,你将需要手动操作 sudo ss-apt-fast upgrade"
|
||||
echo "执行以下操作需要授权..."
|
||||
/opt/durapps/spark-store/bin/update-upgrade/ss-upgrade-list.sh
|
||||
sudo ss-apt-fast ssupdate
|
||||
/opt/durapps/spark-store/bin/update-upgrade/ss-upgrade-list.sh
|
||||
/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade.sh
|
||||
echo "---请按回车返回"
|
||||
read
|
||||
|
||||
@@ -9,7 +9,7 @@ LANG=en.US
|
||||
function network()
|
||||
{
|
||||
#超时时间
|
||||
local timeout=1
|
||||
local timeout=5
|
||||
|
||||
#目标网站
|
||||
local target=www.baidu.com
|
||||
@@ -36,8 +36,11 @@ fi
|
||||
|
||||
#The code above is modified from https://blog.csdn.net/yaxuan88521/article/details/120516298
|
||||
|
||||
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
||||
# 每日更新星火源文件
|
||||
|
||||
updatetext=`ss-apt-fast ssupdate`
|
||||
|
||||
updatetext=`sudo apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"`
|
||||
|
||||
mkdir -p /tmp/spark-store-updatenum/
|
||||
|
||||
|
||||
@@ -3,4 +3,4 @@ set -e
|
||||
|
||||
|
||||
echo "---可更新的应用有:"
|
||||
sudo apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||
bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||
|
||||
Reference in New Issue
Block a user