64位Linux编译错误:could not read symbols: File in wrong format

小C阅读(42)

在Centos 6.5 64位 机器上编译一个 64位 程序时,出现错误:

/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../crt1.o: could not read symbols: File in wrong format

可以看到,编译器对应到了 32位 lib目录下

尝试解决

  1. 查看 crt1.o 文件格式:

    # file /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../crt1.o
    /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../crt1.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.18, not stripped

    32位

  2. 查看 crt1.o 文件的所属安装包:

    # rpm -qf /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../crt1.o
    glibc-devel-2.12-1.212.el6.i686

    是属于 32位glibc-devel 开发包

  3. 查看 glibc-devel 的安装情况

    # yum list glibc-devel
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Loading mirror speeds from cached hostfile
    * base: mirrors.aliyun.com
    * extras: mirrors.aliyun.com
    * updates: mirrors.huaweicloud.com
    Installed Packages
    glibc-devel.i686                2.12-1.212.el6             @base
    Available Packages
    glibc-devel.i686                2.12-1.212.el6_10.3        updates
    glibc-devel.x86_64              2.12-1.212.el6_10.3        updates

    可以看到,只安装了 32位,而没有安装 64位glibc-devel

  4. 安装 64位 glibc-devel:

    # yum install glibc-devel.x86_64
  5. 完成后,重新编译 64位 程序,一切正常!

Centos 如何开启 EPEL 存储库

小C阅读(48)

Install-and-Enable-EPEL-Repo-on-CentOS

Centos 如何开启 EPEL 存储库

“EPEL存储库”是什么?

EPEL存储库由 EPEL group 管理,该组是Fedora项目中的一个特殊兴趣组。 “EPEL” 部分是 Extra Packages for Enterprise Linux 的缩写,表示Enterprise Linux的额外软件包。 EPEL集团创建,维护和管理一组高质量的附加软件包。 这些软件包可能是核心存储库中未包含的软件,或者有时是尚未提供的更新。

EPEL存储库可与以下Linux发行版一起使用:

  • Red Hat Enterprise Linux (RHEL)
  • CentOS
  • Scientific Linux
  • Oracle Linux

如何启用 EPEL 存储库

方式一. 通过yum在CentOS上安装EPEL

到目前为止,CentOS是最容易安装EPEL的发行版。 CentOS发行版默认包含一个名为“CentOS Extras”的存储库。在此存储库中,用户可以找到EPEL软件包,因此在这种情况下,启用EPEL与安装任何其他软件包一样容易。

只需运行以下命令:

# yum install epel-release

如果出于某种原因,您的CentOS版本缺少为此工作所需的CentOS Extras存储库,则可以按照以下方式二说明进行操作。

方式二. 通过fedoraproject官方安装EPEL

  1. RHEL/CentOS 6:

    # yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
  2. RHEL/CentOS 7:

    # yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    • 在RHEL 7上,建议还启用可选,额外和HA存储库,因为EPEL软件包可能取决于这些存储库中的软件包:
      # subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms"  --enable "rhel-ha-for-rhel-*-server-rpms"
  3. RHEL/CentOS 8:

    # yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    • 在RHEL 8上,还需要启用codeready-builder-for-rhel-8-*-rpms存储库,因为EPEL软件包可能取决于其中的软件包:
      # ARCH=$(/bin/arch)
      # subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms"
    • 在CentOS 8上,建议还启用PowerTools存储库,因为EPEL软件包可能取决于它中的软件包:
      # dnf config-manager --set-enabled PowerTools

Centos 6 使用 epel 出错 "Cannot retrieve metalink for repository: epel. Please verify its path and try again"

解决方法,把 /etc/yum.repos.d/epel.repo 文件第3行注释去掉,把第4行注释掉

  1. 打开 /etc/yum.repos.d/epel.repo

    [epel]
    name=Extra Packages for Enterprise Linux 6 - $basearch
    #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
    mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
  2. 将其修改为:

    [epel]
    name=Extra Packages for Enterprise Linux 6 - $basearch
    baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
    #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
  3. 清理源,重新安装

    # yum clean all
    # yum install -y 您需要的包

如果还是不行,修改DNS

  1. 打开 /etc/resolv.conf 文件,添加以下内容:

    nameserver 8.8.8.8
    search localdomain
  2. 然后重启network服务

    # service network restart

Tracker 服务器地址合集——种子磁力链接加速下载

小C阅读(89)

Torrent Tracker List Collection

Tracker 服务器地址合集

Tracker是什么?

  • BT 下载的文件都是其他用户上传给你的。
  • BT 下载速度都来自其他用户的上传速度。

做种上传的用户越多,你的下载速度就越快,而用户靠 Peer、DHT、Tracker 获得。

Peer: 在你获得一个有效用户后才会起作用,Peer 会获取该用户客户端里的用户信息。
——
DHT: 相当于 Peer 的进阶,每个人都储存一部分 DHT 网络信息,需要的时候会通过该网络获得用户,然后再从该用户处获得更多的网络和用户,在连不上 Tracker 的时候很有效,但缺点是一开始是没有 DHT 网络的,必须要养一段时间(下载一些热门资源)才行。
——
Tracker: 它会追踪下载同一个资源的用户,帮助你与其他用户建立连接,让其他用户把文件上传给你(给你提供下载速度),而你又把下载好的文件上传给其他需要的人(给别人提供下载速度)。

所以,使用 Tracker 可以帮你获取到更多的用户,而用户数量增加了,相应的也会提高下载速度。

Tracker 列表

Aria2格式Tracker列表(340个)

udp://tracker.leechers-paradise.org:6969,udp://tracker.openbittorrent.com:80,udp://open.demonii.com:1337,udp://tracker.coppersurfer.tk:6969,udp://exodus.desync.com:6969,http://bt3.t-ru.org/ann,http://retracker.local/announce,http://104.238.198.186:8000/announce,http://107.150.14.110:6969/announce,http://109.121.134.121:1337/announce,http://114.55.113.60:6969/announce,http://125.227.35.196:6969/announce,http://128.199.70.66:5944/announce,http://1337.abcvg.info:80/announce,http://157.7.202.64:8080/announce,http://158.69.146.212:7777/announce,http://173.254.204.71:1096/announce,http://178.175.143.27:80/announce,http://178.33.73.26:2710/announce,http://182.176.139.129:6969/announce,http://185.5.97.139:8089/announce,http://185.83.215.123:6969/announce,http://188.165.253.109:1337/announce,http://194.106.216.222:80/announce,http://195.123.209.37:1337/announce,http://210.244.71.25:6969/announce,http://210.244.71.26:6969/announce,http://213.163.67.56:1337/announce,http://37.19.5.139:6969/announce,http://37.19.5.155:6881/announce,http://46.4.109.148:6969/announce,http://5.79.249.77:6969/announce,http://5.79.83.193:2710/announce,http://51.254.244.161:6969/announce,http://59.36.96.77:6969/announce,http://62.210.202.61:80/announce,http://74.82.52.209:6969/announce,http://78.30.254.12:2710/announce,http://80.246.243.18:6969/announce,http://81.200.2.231:80/announce,http://85.17.19.180:80/announce,http://87.110.238.140:6969/announce,http://87.248.186.252:8080/announce,http://87.253.152.137:80/announce,http://91.216.110.47:80/announce,http://91.217.91.21:3218/announce,http://91.218.230.81:6969/announce,http://93.92.64.5:80/announce,http://95.211.168.204:2710/announce,http://[2001:1b10:1000:8101:0:242:ac11:2]:6969/announce,http://[2001:470:1:189:0:1:2:3]:6969/announce,http://[2a04:ac00:1:3dd8::1:2710]:2710/announce,http://agusiq-torrents.pl:6969/announce,http://asnet.pw:2710/announce,http://atrack.pow7.com:80/announce,http://bt.henbt.com:2710/announce,http://bt.pusacg.org:8080/announce,http://bt2.careland.com.cn:6969/announce,http://explodie.org:6969/announce,http://fxtt.ru:80/announce,http://grifon.info:80/announce,http://gshk.happy-host.com/test:80/announce.php,http://h4.trakx.nibba.trade:80/announce,http://mail2.zelenaya.net:80/announce,http://npupt.com:80/announce.php,http://ns349743.ip-91-121-106.eu:80/announce,http://open.acgnxtracker.com:80/announce,http://open.acgtracker.com:1096/announce,http://open.lolicon.eu:7777/announce,http://open.touki.ru:80/announce.php,http://opentracker.acgnx.se:80/announce,http://opentracker.i2p.rocks:6969/announce,http://p4p.arenabg.ch:1337/announce,http://p4p.arenabg.com:1337/announce,http://pow7.com:80/announce,http://pt.lax.mx:80/announce,http://retracker.bashtel.ru:80/announce,http://retracker.gorcomnet.ru:80/announce,http://retracker.hotplug.ru:2710/announce,http://retracker.krs-ix.ru:80/announce,http://retracker.mgts.by:80/announce,http://retracker.sevstar.net:2710/announce,http://retracker.spark-rostov.ru:80/announce,http://retracker.telecom.by:80/announce,http://secure.pow7.com:80/announce,http://servandroidkino.ru:80/announce,http://share.camoe.cn:8080/announce,http://sndabt.sdo.com:80/announce,http://t.acg.rip:6699/announce,http://t.nyaatracker.com:80/announce,http://t.overflow.biz:6969/announce,http://t1.pow7.com:80/announce,http://t2.pow7.com:80/announce,http://thetracker.org:80/announce,http://torrent.gresille.org:80/announce,http://torrent.nwps.ws:80/announce,http://torrentsmd.com:8080/announce,http://torrentsmd.eu:8080/announce,http://torrentsmd.me:8080/announce,http://tr.cili001.com:8070/announce,http://tr.kxmp.cf:80/announce,http://tracker.acgnx.se:80/announce,http://tracker.aletorrenty.pl:2710/announce,http://tracker.baravik.org:6970/announce,http://tracker.birkenwald.de:6969/announce,http://tracker.bittor.pw:1337/announce,http://tracker.bittorrent.am:80/announce,http://tracker.bt4g.com:2095/announce,http://tracker.bz:80/announce,http://tracker.calculate.ru:6969/announce,http://tracker.city9x.com:2710/announce,http://tracker.comicat.org:80/announce,http://tracker.corpscorp.online:80/announce,http://tracker.devil-torrents.pl:80/announce,http://tracker.dler.org:6969/announce,http://tracker.dutchtracking.com:80/announce,http://tracker.dutchtracking.nl:80/announce,http://tracker.edoardocolombo.eu:6969/announce,http://tracker.electro-torrent.pl:80/announce,http://tracker.ex.ua:80/announce,http://tracker.files.fm:6969/announce,http://tracker.filetracker.pl:8089/announce,http://tracker.flashtorrents.org:6969/announce,http://tracker.gbitt.info:80/announce,http://tracker.gcvchp.com:2710/announce,http://tracker.grepler.com:6969/announce,http://tracker.internetwarriors.net:1337/announce,http://tracker.ipv6tracker.ru:80/announce,http://tracker.kamigami.org:2710/announce,http://tracker.kicks-ass.net:80/announce,http://tracker.kuroy.me:5944/announce,http://tracker.lelux.fi:80/announce,http://tracker.mg64.net:6881/announce,http://tracker.moeking.me:6969/announce,http://tracker.nyaa.uk:6969/announce,http://tracker.nyap2p.com:8080/announce,http://tracker.opentrackr.org:1337/announce,http://tracker.pow7.com:80/announce,http://tracker.skyts.net:6969/announce,http://tracker.tfile.co:80/announce,http://tracker.tfile.me:80/announce,http://tracker.tiny-vps.com:6969/announce,http://tracker.torrentbay.to:6969/announce,http://tracker.torrentyorg.pl:80/announce,http://tracker.trackerfix.com:80/announce,http://tracker.tvunderground.org.ru:3218/announce,http://tracker.uw0.xyz:6969/announce,http://tracker.ygsub.com:6969/announce,http://tracker.yoshi210.com:6969/announce,http://tracker.zerobytes.xyz:1337/announce,http://tracker01.loveapp.com:6789/announce,http://tracker1.itzmx.com:8080/announce,http://tracker1.wasabii.com.tw:6969/announce,http://tracker114514.top:11450/announce,http://tracker2.dler.org:80/announce,http://tracker2.itzmx.com:6961/announce,http://tracker2.torrentino.com:80/announce,http://tracker2.wasabii.com.tw:6969/announce,http://tracker3.itzmx.com:6961/announce,http://tracker4.itzmx.com:2710/announce,http://trun.tom.ru:80/announce,http://vps02.net.orel.ru:80/announce,http://www.loushao.net:8080/announce,http://www.proxmox.com:6969/announce,http://www.wareztorrent.com:80/announce,https://1337.abcvg.info:443/announce,https://2.tracker.eu.org:443/announce,https://3.tracker.eu.org:443/announce,https://open.kickasstracker.com:443/announce,https://opentracker-milanesi.rhcloud.com:443/announce,https://opentracker.acgnx.se:443/announce,https://t.quic.ws:443/announce,https://t1.leech.ie:443/announce,https://tracker.acgnx.se:443/announce,https://tracker.bt-hash.com:443/announce,https://tracker.fastdownload.xyz:443/announce,https://tracker.gbitt.info:443/announce,https://tracker.hama3.net:443/announce,https://tracker.lelux.fi:443/announce,https://tracker.nanoha.org:443/announce,https://tracker.nitrix.me:443/announce,https://tracker.nyaa.tk:443/announce,https://tracker.opentracker.se:443/announce,https://tracker.parrotlinux.org:443/announce,https://tracker.sloppyta.co:443/announce,https://tracker.tamersunion.org:443/announce,https://tracker.vectahosting.eu:2053/announce,https://tracker6.lelux.fi:443/announce,https://www.wareztorrent.com:443/announce,udp://104.238.198.186:8000/announce,udp://107.150.14.110:6969/announce,udp://109.121.134.121:1337/announce,udp://114.55.113.60:6969/announce,udp://128.199.70.66:5944/announce,udp://151.80.120.114:2710/announce,udp://168.235.67.63:6969/announce,udp://178.33.73.26:2710/announce,udp://182.176.139.129:6969/announce,udp://185.5.97.139:8089/announce,udp://185.83.215.123:6969/announce,udp://185.86.149.205:1337/announce,udp://188.165.253.109:1337/announce,udp://191.101.229.236:1337/announce,udp://194.106.216.222:80/announce,udp://195.123.209.37:1337/announce,udp://195.123.209.40:80/announce,udp://208.67.16.113:8000/announce,udp://212.1.226.176:2710/announce,udp://212.47.227.58:6969/announce,udp://213.163.67.56:1337/announce,udp://37.19.5.155:2710/announce,udp://46.4.109.148:6969/announce,udp://5.79.249.77:6969/announce,udp://5.79.83.193:6969/announce,udp://51.254.244.161:6969/announce,udp://52.58.128.163:6969/announce,udp://62.138.0.158:6969/announce,udp://62.212.85.66:2710/announce,udp://74.82.52.209:6969/announce,udp://78.30.254.12:2710/announce,udp://85.17.19.180:80/announce,udp://89.234.156.205:80/announce,udp://9.rarbg.com:2710/announce,udp://9.rarbg.me:2710/announce,udp://9.rarbg.me:2780/announce,udp://9.rarbg.to:2710/announce,udp://9.rarbg.to:2730/announce,udp://91.216.110.52:451/announce,udp://91.218.230.81:6969/announce,udp://94.23.183.33:6969/announce,udp://95.211.168.204:2710/announce,udp://[2001:1b10:1000:8101:0:242:ac11:2]:6969/announce,udp://[2001:470:1:189:0:1:2:3]:6969/announce,udp://[2a03:7220:8083:cd00::1]:451/announce,udp://[2a04:ac00:1:3dd8::1:2710]:2710/announce,udp://[2a04:c44:e00:32e0:4cf:6aff:fe00:aa1]:6969/announce,udp://bt.aoeex.com:8000/announce,udp://bt.okmp3.ru:2710/announce,udp://bt.xxx-tracker.com:2710/announce,udp://bt1.archive.org:6969/announce,udp://bt2.54new.com:8080/announce,udp://bt2.archive.org:6969/announce,udp://chihaya.de:6969/announce,udp://chihaya.toss.li:9696/announce,udp://denis.stalker.upeer.me:6969/announce,udp://eddie4.nl:6969/announce,udp://exodus.desync.com:6969/announce,udp://inferno.demonoid.pw:3418/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://ipv6.tracker.harry.lu:80/announce,udp://ipv6.tracker.zerobytes.xyz:16661/announce,udp://mgtracker.org:2710/announce,udp://open.demonii.com:1337/announce,udp://open.demonii.si:1337/announce,udp://open.nyap2p.com:6969/announce,udp://open.stealth.si:80/announce,udp://opentor.org:2710/announce,udp://opentracker.i2p.rocks:6969/announce,udp://peerfect.org:6969/announce,udp://public.popcorn-tracker.org:6969/announce,udp://qg.lorzl.gq:2710/announce,udp://retracker.akado-ural.ru:80/announce,udp://retracker.baikal-telecom.net:2710/announce,udp://retracker.hotplug.ru:2710/announce,udp://retracker.lanta-net.ru:2710/announce,udp://retracker.netbynet.ru:2710/announce,udp://retracker.nts.su:2710/announce,udp://retracker.sevstar.net:2710/announce,udp://santost12.xyz:6969/announce,udp://shadowshq.eddie4.nl:6969/announce,udp://shadowshq.yi.org:6969/announce,udp://tc.animereactor.ru:8082/announce,udp://thetracker.org:80/announce,udp://torrent.gresille.org:80/announce,udp://torrentclub.tech:6969/announce,udp://tr.bangumi.moe:6969/announce,udp://tr.cili001.com:8070/announce,udp://tracker-udp.gbitt.info:80/announce,udp://tracker.0o.is:6969/announce,udp://tracker.aletorrenty.pl:2710/announce,udp://tracker.beeimg.com:6969/announce,udp://tracker.birkenwald.de:6969/announce,udp://tracker.bittor.pw:1337/announce,udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.cyberia.is:6969/announce,udp://tracker.cypherpunks.ru:6969/announce,udp://tracker.dler.org:6969/announce,udp://tracker.doko.moe:6969/announce,udp://tracker.ds.is:6969/announce,udp://tracker.dutchtracking.com:6969/announce,udp://tracker.eddie4.nl:6969/announce,udp://tracker.ex.ua:80/announce,udp://tracker.filemail.com:6969/announce,udp://tracker.filepit.to:6969/announce,udp://tracker.filetracker.pl:8089/announce,udp://tracker.flashtorrents.org:6969/announce,udp://tracker.grepler.com:6969/announce,udp://tracker.halfchub.club:6969/announce,udp://tracker.iamhansen.xyz:2000/announce,udp://tracker.ilibr.org:80/announce,udp://tracker.internetwarriors.net:1337/announce,udp://tracker.justseed.it:1337/announce,udp://tracker.kamigami.org:2710/announce,udp://tracker.kicks-ass.net:80/announce,udp://tracker.kuroy.me:5944/announce,udp://tracker.leechers-paradise.org:6969/announce,udp://tracker.lelux.fi:6969/announce,udp://tracker.moeking.me:6969/announce,udp://tracker.msm8916.com:6969/announce,udp://tracker.nyaa.uk:6969/announce,udp://tracker.open-internet.nl:6969/announce,udp://tracker.openbittorrent.com:80/announce,udp://tracker.opentrackr.org:1337/announce,udp://tracker.piratepublic.com:1337/announce,udp://tracker.sbsub.com:2710/announce,udp://tracker.skyts.net:6969/announce,udp://tracker.swateam.org.uk:2710/announce,udp://tracker.tiny-vps.com:6969/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.torrentbay.to:6969/announce,udp://tracker.tvunderground.org.ru:3218/announce,udp://tracker.uw0.xyz:6969/announce,udp://tracker.vanitycore.co:6969/announce,udp://tracker.yoshi210.com:6969/announce,udp://tracker.zerobytes.xyz:1337/announce,udp://tracker.zum.bi:6969/announce,udp://tracker1.itzmx.com:8080/announce,udp://tracker2.christianbro.pw:6969/announce,udp://tracker2.indowebster.com:6969/announce,udp://tracker2.itzmx.com:6961/announce,udp://tracker3.itzmx.com:6961/announce,udp://tracker4.itzmx.com:2710/announce,udp://tracker4.piratux.com:6969/announce,udp://valakas.rollo.dnsabr.com:2710/announce,udp://wambo.club:1337/announce,udp://www.loushao.net:8080/announce,udp://xxxtor.com:2710/announce,udp://zephir.monocul.us:6969/announce,udp://zer0day.ch:1337/announce,udp://zer0day.to:1337/announce

Torrent格式Tracker列表(340个)

udp://tracker.leechers-paradise.org:6969

udp://tracker.openbittorrent.com:80

udp://open.demonii.com:1337

udp://tracker.coppersurfer.tk:6969

udp://exodus.desync.com:6969

http://bt3.t-ru.org/ann

http://retracker.local/announce

http://104.238.198.186:8000/announce

http://107.150.14.110:6969/announce

http://109.121.134.121:1337/announce

http://114.55.113.60:6969/announce

http://125.227.35.196:6969/announce

http://128.199.70.66:5944/announce

http://1337.abcvg.info:80/announce

http://157.7.202.64:8080/announce

http://158.69.146.212:7777/announce

http://173.254.204.71:1096/announce

http://178.175.143.27:80/announce

http://178.33.73.26:2710/announce

http://182.176.139.129:6969/announce

http://185.5.97.139:8089/announce

http://185.83.215.123:6969/announce

http://188.165.253.109:1337/announce

http://194.106.216.222:80/announce

http://195.123.209.37:1337/announce

http://210.244.71.25:6969/announce

http://210.244.71.26:6969/announce

http://213.163.67.56:1337/announce

http://37.19.5.139:6969/announce

http://37.19.5.155:6881/announce

http://46.4.109.148:6969/announce

http://5.79.249.77:6969/announce

http://5.79.83.193:2710/announce

http://51.254.244.161:6969/announce

http://59.36.96.77:6969/announce

http://62.210.202.61:80/announce

http://74.82.52.209:6969/announce

http://78.30.254.12:2710/announce

http://80.246.243.18:6969/announce

http://81.200.2.231:80/announce

http://85.17.19.180:80/announce

http://87.110.238.140:6969/announce

http://87.248.186.252:8080/announce

http://87.253.152.137:80/announce

http://91.216.110.47:80/announce

http://91.217.91.21:3218/announce

http://91.218.230.81:6969/announce

http://93.92.64.5:80/announce

http://95.211.168.204:2710/announce

http://[2001:1b10:1000:8101:0:242:ac11:2]:6969/announce

http://[2001:470:1:189:0:1:2:3]:6969/announce

http://[2a04:ac00:1:3dd8::1:2710]:2710/announce

http://agusiq-torrents.pl:6969/announce

http://asnet.pw:2710/announce

http://atrack.pow7.com:80/announce

http://bt.henbt.com:2710/announce

http://bt.pusacg.org:8080/announce

http://bt2.careland.com.cn:6969/announce

http://explodie.org:6969/announce

http://fxtt.ru:80/announce

http://grifon.info:80/announce

http://gshk.happy-host.com/test:80/announce.php

http://h4.trakx.nibba.trade:80/announce

http://mail2.zelenaya.net:80/announce

http://npupt.com:80/announce.php

http://ns349743.ip-91-121-106.eu:80/announce

http://open.acgnxtracker.com:80/announce

http://open.acgtracker.com:1096/announce

http://open.lolicon.eu:7777/announce

http://open.touki.ru:80/announce.php

http://opentracker.acgnx.se:80/announce

http://opentracker.i2p.rocks:6969/announce

http://p4p.arenabg.ch:1337/announce

http://p4p.arenabg.com:1337/announce

http://pow7.com:80/announce

http://pt.lax.mx:80/announce

http://retracker.bashtel.ru:80/announce

http://retracker.gorcomnet.ru:80/announce

http://retracker.hotplug.ru:2710/announce

http://retracker.krs-ix.ru:80/announce

http://retracker.mgts.by:80/announce

http://retracker.sevstar.net:2710/announce

http://retracker.spark-rostov.ru:80/announce

http://retracker.telecom.by:80/announce

http://secure.pow7.com:80/announce

http://servandroidkino.ru:80/announce

http://share.camoe.cn:8080/announce

http://sndabt.sdo.com:80/announce

http://t.acg.rip:6699/announce

http://t.nyaatracker.com:80/announce

http://t.overflow.biz:6969/announce

http://t1.pow7.com:80/announce

http://t2.pow7.com:80/announce

http://thetracker.org:80/announce

http://torrent.gresille.org:80/announce

http://torrent.nwps.ws:80/announce

http://torrentsmd.com:8080/announce

http://torrentsmd.eu:8080/announce

http://torrentsmd.me:8080/announce

http://tr.cili001.com:8070/announce

http://tr.kxmp.cf:80/announce

http://tracker.acgnx.se:80/announce

http://tracker.aletorrenty.pl:2710/announce

http://tracker.baravik.org:6970/announce

http://tracker.birkenwald.de:6969/announce

http://tracker.bittor.pw:1337/announce

http://tracker.bittorrent.am:80/announce

http://tracker.bt4g.com:2095/announce

http://tracker.bz:80/announce

http://tracker.calculate.ru:6969/announce

http://tracker.city9x.com:2710/announce

http://tracker.comicat.org:80/announce

http://tracker.corpscorp.online:80/announce

http://tracker.devil-torrents.pl:80/announce

http://tracker.dler.org:6969/announce

http://tracker.dutchtracking.com:80/announce

http://tracker.dutchtracking.nl:80/announce

http://tracker.edoardocolombo.eu:6969/announce

http://tracker.electro-torrent.pl:80/announce

http://tracker.ex.ua:80/announce

http://tracker.files.fm:6969/announce

http://tracker.filetracker.pl:8089/announce

http://tracker.flashtorrents.org:6969/announce

http://tracker.gbitt.info:80/announce

http://tracker.gcvchp.com:2710/announce

http://tracker.grepler.com:6969/announce

http://tracker.internetwarriors.net:1337/announce

http://tracker.ipv6tracker.ru:80/announce

http://tracker.kamigami.org:2710/announce

http://tracker.kicks-ass.net:80/announce

http://tracker.kuroy.me:5944/announce

http://tracker.lelux.fi:80/announce

http://tracker.mg64.net:6881/announce

http://tracker.moeking.me:6969/announce

http://tracker.nyaa.uk:6969/announce

http://tracker.nyap2p.com:8080/announce

http://tracker.opentrackr.org:1337/announce

http://tracker.pow7.com:80/announce

http://tracker.skyts.net:6969/announce

http://tracker.tfile.co:80/announce

http://tracker.tfile.me:80/announce

http://tracker.tiny-vps.com:6969/announce

http://tracker.torrentbay.to:6969/announce

http://tracker.torrentyorg.pl:80/announce

http://tracker.trackerfix.com:80/announce

http://tracker.tvunderground.org.ru:3218/announce

http://tracker.uw0.xyz:6969/announce

http://tracker.ygsub.com:6969/announce

http://tracker.yoshi210.com:6969/announce

http://tracker.zerobytes.xyz:1337/announce

http://tracker01.loveapp.com:6789/announce

http://tracker1.itzmx.com:8080/announce

http://tracker1.wasabii.com.tw:6969/announce

http://tracker114514.top:11450/announce

http://tracker2.dler.org:80/announce

http://tracker2.itzmx.com:6961/announce

http://tracker2.torrentino.com:80/announce

http://tracker2.wasabii.com.tw:6969/announce

http://tracker3.itzmx.com:6961/announce

http://tracker4.itzmx.com:2710/announce

http://trun.tom.ru:80/announce

http://vps02.net.orel.ru:80/announce

http://www.loushao.net:8080/announce

http://www.proxmox.com:6969/announce

http://www.wareztorrent.com:80/announce

https://1337.abcvg.info:443/announce

https://2.tracker.eu.org:443/announce

https://3.tracker.eu.org:443/announce

https://open.kickasstracker.com:443/announce

https://opentracker-milanesi.rhcloud.com:443/announce

https://opentracker.acgnx.se:443/announce

https://t.quic.ws:443/announce

https://t1.leech.ie:443/announce

https://tracker.acgnx.se:443/announce

https://tracker.bt-hash.com:443/announce

https://tracker.fastdownload.xyz:443/announce

https://tracker.gbitt.info:443/announce

https://tracker.hama3.net:443/announce

https://tracker.lelux.fi:443/announce

https://tracker.nanoha.org:443/announce

https://tracker.nitrix.me:443/announce

https://tracker.nyaa.tk:443/announce

https://tracker.opentracker.se:443/announce

https://tracker.parrotlinux.org:443/announce

https://tracker.sloppyta.co:443/announce

https://tracker.tamersunion.org:443/announce

https://tracker.vectahosting.eu:2053/announce

https://tracker6.lelux.fi:443/announce

https://www.wareztorrent.com:443/announce

udp://104.238.198.186:8000/announce

udp://107.150.14.110:6969/announce

udp://109.121.134.121:1337/announce

udp://114.55.113.60:6969/announce

udp://128.199.70.66:5944/announce

udp://151.80.120.114:2710/announce

udp://168.235.67.63:6969/announce

udp://178.33.73.26:2710/announce

udp://182.176.139.129:6969/announce

udp://185.5.97.139:8089/announce

udp://185.83.215.123:6969/announce

udp://185.86.149.205:1337/announce

udp://188.165.253.109:1337/announce

udp://191.101.229.236:1337/announce

udp://194.106.216.222:80/announce

udp://195.123.209.37:1337/announce

udp://195.123.209.40:80/announce

udp://208.67.16.113:8000/announce

udp://212.1.226.176:2710/announce

udp://212.47.227.58:6969/announce

udp://213.163.67.56:1337/announce

udp://37.19.5.155:2710/announce

udp://46.4.109.148:6969/announce

udp://5.79.249.77:6969/announce

udp://5.79.83.193:6969/announce

udp://51.254.244.161:6969/announce

udp://52.58.128.163:6969/announce

udp://62.138.0.158:6969/announce

udp://62.212.85.66:2710/announce

udp://74.82.52.209:6969/announce

udp://78.30.254.12:2710/announce

udp://85.17.19.180:80/announce

udp://89.234.156.205:80/announce

udp://9.rarbg.com:2710/announce

udp://9.rarbg.me:2710/announce

udp://9.rarbg.me:2780/announce

udp://9.rarbg.to:2710/announce

udp://9.rarbg.to:2730/announce

udp://91.216.110.52:451/announce

udp://91.218.230.81:6969/announce

udp://94.23.183.33:6969/announce

udp://95.211.168.204:2710/announce

udp://[2001:1b10:1000:8101:0:242:ac11:2]:6969/announce

udp://[2001:470:1:189:0:1:2:3]:6969/announce

udp://[2a03:7220:8083:cd00::1]:451/announce

udp://[2a04:ac00:1:3dd8::1:2710]:2710/announce

udp://[2a04:c44:e00:32e0:4cf:6aff:fe00:aa1]:6969/announce

udp://bt.aoeex.com:8000/announce

udp://bt.okmp3.ru:2710/announce

udp://bt.xxx-tracker.com:2710/announce

udp://bt1.archive.org:6969/announce

udp://bt2.54new.com:8080/announce

udp://bt2.archive.org:6969/announce

udp://chihaya.de:6969/announce

udp://chihaya.toss.li:9696/announce

udp://denis.stalker.upeer.me:6969/announce

udp://eddie4.nl:6969/announce

udp://exodus.desync.com:6969/announce

udp://inferno.demonoid.pw:3418/announce

udp://ipv4.tracker.harry.lu:80/announce

udp://ipv6.tracker.harry.lu:80/announce

udp://ipv6.tracker.zerobytes.xyz:16661/announce

udp://mgtracker.org:2710/announce

udp://open.demonii.com:1337/announce

udp://open.demonii.si:1337/announce

udp://open.nyap2p.com:6969/announce

udp://open.stealth.si:80/announce

udp://opentor.org:2710/announce

udp://opentracker.i2p.rocks:6969/announce

udp://peerfect.org:6969/announce

udp://public.popcorn-tracker.org:6969/announce

udp://qg.lorzl.gq:2710/announce

udp://retracker.akado-ural.ru:80/announce

udp://retracker.baikal-telecom.net:2710/announce

udp://retracker.hotplug.ru:2710/announce

udp://retracker.lanta-net.ru:2710/announce

udp://retracker.netbynet.ru:2710/announce

udp://retracker.nts.su:2710/announce

udp://retracker.sevstar.net:2710/announce

udp://santost12.xyz:6969/announce

udp://shadowshq.eddie4.nl:6969/announce

udp://shadowshq.yi.org:6969/announce

udp://tc.animereactor.ru:8082/announce

udp://thetracker.org:80/announce

udp://torrent.gresille.org:80/announce

udp://torrentclub.tech:6969/announce

udp://tr.bangumi.moe:6969/announce

udp://tr.cili001.com:8070/announce

udp://tracker-udp.gbitt.info:80/announce

udp://tracker.0o.is:6969/announce

udp://tracker.aletorrenty.pl:2710/announce

udp://tracker.beeimg.com:6969/announce

udp://tracker.birkenwald.de:6969/announce

udp://tracker.bittor.pw:1337/announce

udp://tracker.coppersurfer.tk:6969/announce

udp://tracker.cyberia.is:6969/announce

udp://tracker.cypherpunks.ru:6969/announce

udp://tracker.dler.org:6969/announce

udp://tracker.doko.moe:6969/announce

udp://tracker.ds.is:6969/announce

udp://tracker.dutchtracking.com:6969/announce

udp://tracker.eddie4.nl:6969/announce

udp://tracker.ex.ua:80/announce

udp://tracker.filemail.com:6969/announce

udp://tracker.filepit.to:6969/announce

udp://tracker.filetracker.pl:8089/announce

udp://tracker.flashtorrents.org:6969/announce

udp://tracker.grepler.com:6969/announce

udp://tracker.halfchub.club:6969/announce

udp://tracker.iamhansen.xyz:2000/announce

udp://tracker.ilibr.org:80/announce

udp://tracker.internetwarriors.net:1337/announce

udp://tracker.justseed.it:1337/announce

udp://tracker.kamigami.org:2710/announce

udp://tracker.kicks-ass.net:80/announce

udp://tracker.kuroy.me:5944/announce

udp://tracker.leechers-paradise.org:6969/announce

udp://tracker.lelux.fi:6969/announce

udp://tracker.moeking.me:6969/announce

udp://tracker.msm8916.com:6969/announce

udp://tracker.nyaa.uk:6969/announce

udp://tracker.open-internet.nl:6969/announce

udp://tracker.openbittorrent.com:80/announce

udp://tracker.opentrackr.org:1337/announce

udp://tracker.piratepublic.com:1337/announce

udp://tracker.sbsub.com:2710/announce

udp://tracker.skyts.net:6969/announce

udp://tracker.swateam.org.uk:2710/announce

udp://tracker.tiny-vps.com:6969/announce

udp://tracker.torrent.eu.org:451/announce

udp://tracker.torrentbay.to:6969/announce

udp://tracker.tvunderground.org.ru:3218/announce

udp://tracker.uw0.xyz:6969/announce

udp://tracker.vanitycore.co:6969/announce

udp://tracker.yoshi210.com:6969/announce

udp://tracker.zerobytes.xyz:1337/announce

udp://tracker.zum.bi:6969/announce

udp://tracker1.itzmx.com:8080/announce

udp://tracker2.christianbro.pw:6969/announce

udp://tracker2.indowebster.com:6969/announce

udp://tracker2.itzmx.com:6961/announce

udp://tracker3.itzmx.com:6961/announce

udp://tracker4.itzmx.com:2710/announce

udp://tracker4.piratux.com:6969/announce

udp://valakas.rollo.dnsabr.com:2710/announce

udp://wambo.club:1337/announce

udp://www.loushao.net:8080/announce

udp://xxxtor.com:2710/announce

udp://zephir.monocul.us:6969/announce

udp://zer0day.ch:1337/announce

udp://zer0day.to:1337/announce

如何使用?

Aria2:

复制 Aria2 格式的 Tracker 地址列表内容后,粘贴到 aria2.conf 配置文件中的 bt-tracker= 后面,示例如下:

bt-tracker=http://xxx.xx:80/announce,udp://yyy.yy:80/announce

注意: 粘贴前请先删除旧 Tracker 内容,避免格式错误!

Torrent:

各大Torrent客户端设置都大同小异,基本上都在设置或者属性里的 Tracker 选项内

以 utorrent 为例说明:

uTorrent 如何修改 Tracker?

  • 选中下载任务 -> 右键选择属性 -> 常规 -> Tracker
    将 Torrent 格式 Tracker 地址列表内容复制并粘贴进去

Torrent Tracker List Collection

Torrent Tracker List Collection

Centos 6 安装 Qt 5.6.3

小C阅读(44)

Centos 6 Install Qt 5.6.3

Centos 6 安装 Qt 5.6.3

为什么选择Qt 5.6

Qt 5.6是一个比较折中的版本,Qt5的很多新特性都已具备(例如QWebEngine),而太高的版本在Centos 6上需要手动编译GCC、Glibc、Xorg等其他众多关联环境,甚是繁琐。

下载 Qt 5.6.3

Qt5.6的官方下载链接已经被移除,现在只有长期支持版和最近的版本可以从官方下载。

Centos 6 Install Qt 5.6.3

文件参数参数值
文件名qt-opensource-linux-x64-5.6.3.run
文件大小680MB
文件格式Qt Linux 安装文件
下载方式百度网盘
下载工具百度网盘客户端
下载链接 qt-opensource-linux-x64-5.6.3.run
提取码54xv

安装 Qt 5.6.3

  1. 赋予文件可执行权限

    # chmod 755 qt-opensource-linux-x64-5.6.3.run
  2. 运行文件完成安装

    # ./qt-opensource-linux-x64-5.6.3.run
  3. 添加环境变量

    • 新建 qt5.sh 文件
      # vim /etc/profile.d/qt5.sh
    • 增加如下内容:
      export PATH="/opt/Qt5.6.3/5.6.3/gcc_64/bin:$PATH"
      export PATH="/opt/Qt5.6.3/Tools/QtCreator/bin:$PATH"
    • :wq 保存并退出
    • 使其生效
      # source /etc/profile
    • 查看设置是否生效
      # which qmake
      /opt/Qt5.6.3/5.6.3/gcc_64/bin/qmake

升级 GCC

  1. 为什么需要升级GCC?
    从 Qt 5.6 的官方的支持文档 https://doc.qt.io/archives/qt-5.6/supported-platforms.html 可以看出,Qt 5.6 需要至少 GCC 4.9.1 的支持(不升级的话很多新功能无法使用,某些 Qt Demo 也无法编译通过),我在这里选择安装 GCC8
    Centos 6 Install Qt 5.6.3

  2. 采用 SCL Repo 库安装 GCC8

    # yum -y install centos-release-scl
    # yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils
    # scl enable devtoolset-8 bash  #启动gcc8
    # echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile
    # source /etc/profile
  3. 验证安装

    # gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
    Target: x86_64-redhat-linux
    Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-8/root/usr --mandir=/opt/rh/devtoolset-8/root/usr/share/man --infodir=/opt/rh/devtoolset-8/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/isl-install --disable-libmpx --with-mpc=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
    Thread model: posix
    gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)

配置 qtcreator

  1. Tools -> Options -> Build & Run -> Compilers -> Add -> GCC,Compiler path 指向 Qt 安装目录下 g++ 路径
    Centos 6 Install Qt 5.6.3

  2. Kits -> Add,选择我们刚刚创建的 Compiler
    Centos 6 Install Qt 5.6.3

测试 Qt 5.6.3

我选择了 QWebEngine 项目 demobrowser,可以看到编译及程序运行一切正常!
Centos 6 Install Qt 5.6.3

YUM 安装特定版本的软件包

小C阅读(53)

YUM RHEL6 RHEL7 Linux Centos Redhat

默认情况下,yum安装已启用存储库中可用的所有版本中的软件包的最新版本。

有时我们需要安装的不是最新版本,而是某些特定版本,或者将已经安装的软件包降级为较旧的版本。

下面我们来看看如何使yum列出指定软件包的所有可用版本,以及如何指示它安装特定软件包。

显示软件包的所有版本

运行以下命令以显示软件包的所有版本,这些版本在启用的存储库中可用:

# yum list <package_name> --showduplicates

安装软件包的特定版本

要安装特定版本的软件包,请运行:

# yum install <package_name>-<version_info>.<platform_info (i686 or x86_64)>

强制yum降级软件包

如果已经安装了软件包的最新版本,但是需要将其降级到较旧的特定版本,请执行:

# yum downgrade <package_name>-<version_info>.<platform_info (i686 or x86_64)>

OpenMediaVault RAID 5 丢失重建

小C阅读(199)

OpenMediaVault RAID 5 Missing

OpenMediaVault RAID 5 丢失重建

一. 现象描述

系统无法正常启动表现为:

  1. 输入密码会进入救援模式

  2. Ctrl + D 可以进入正常模式

  3. 输入密码进入救援模式后,在终端输入 journalctl -xb 查看系统日志,可以看到是由于磁盘 /dev/sdc 错误,系统用 fsck -a 无法完成自动修复,提示需要人为手动修复。

  4. Ctrl + D 进入正常模式后,输入主机IP地址在浏览器查看,进入 存储器 -> RAID管理 选项,可以看到状态由正常的 clean 变为 clean degrade,设备由正常的 /dev/sdb /dev/sdc /dev/sdd 变为 /dev/sdb /dev/sdd,可以看出由于 /dev/sdc 错误,引起了RAID 5丢失。

  5. 进入 存储器 -> 文件系统 选项,/dev/md0,没有自动挂载

二. 解决方法

  1. 首先,重启系统,输入密码进入救援模式,在终端输入如下命令:

    fsck -y /dev/sdc

    其中,sdc 换成你的错误磁盘,或者你不知道是哪里出了问题,也可以用如下命令:

    fsck -y /dev/sdb /dev/sdc /dev/sdd

    把你所有的RAID设备输入进去即可

  2. 待磁盘修复完毕,我们来重建 RAID 5,这时通过OpenMediaVault自带的web端RAID管理是不行的,需要通过终端命令操作。

  3. 添加丢失的设备:

    mdadm /dev/md0 --add /dev/sdc
  4. 停止 RAID

    mdadm --stop /dev/md0
  5. 重新组装 RAID 5

    mdadm --assemble /dev/md0 /dev/sd[bcd] --verbose --force

    然后可以看到系统在重建 RAID 5

    OpenMediaVault RAID 5 Missing

OpenMediaVault 配置 NextCloud(NAS私有云盘)

小C阅读(304)

OpenMediaVault NextCloud NAS

OpenMediaVault 配置 NextCloud

一. 创建nextcloud需要的配置文件夹

nextcloud 共享文件夹

访问权限管理 -> 共享文件夹,文件夹就叫 nextcloud

OpenMediaVault NextCloud NAS

OMV在创建了共享文件夹后,会将共享文件夹映射到一个/sharedfolders的文件路径下,所以你有两种访问你刚才创建的共享文件夹的路径,一个是定位到你磁盘的路径,一个是公共的/sharedfolders下的路径 这两个路径下的操作都是有效的 你可以随便选一个
比如我刚才创建的nextcloud的共享文件夹,我要找到它,可以去两个路径下都能找到

OpenMediaVault NextCloud NAS
OpenMediaVault NextCloud NAS

nextcloud需要的子文件夹

  • db : nextcloud依赖的持久化数据的数据库
  • html: nextcloud的资源配置文件夹
  • data: nextcloud的个人同步文件(你网盘的数据以后就存在这里了)
  • onlyoffice: onlyoffice办公套件的日志和数据文件夹

OpenMediaVault NextCloud NAS

二. 数据库准备

默认情况下,NextCloud使用的是SQLite数据库进行数据存储,它仅适用于没有客户端同步的测试和轻量级单用户设置。当多用户、多设备、大数据量的时候,SQLite就不太合适了,NextCloud支持MySQL,MariaDB,Oracle 11g和PostgreSQL等多种数据库。并且推荐使用MySQL/MariaDB。所以为了一劳永逸,还是用MySQL代替吧,MariaDB是MySQL源代码的一个分支,这里使用MariaDB作为数据库支撑。

  • 安装mariadb
    这里使用docker安装mariadb,打开你的终端,复制以下命令创建mariadb容器。

    docker run -d --name db_nextcloud \
    -p 3307:3306 \
    -e PUID=1000 \
    -e PGID=100 \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -e MYSQL_DATABASE=nextcloud \
    -e MYSQL_USER=nextcloud \
    -e MYSQL_PASSWORD=123456 \
    --restart=unless-stopped \
    -v /sharedfolders/nextcloud/db:/var/lib/mysql \
     mariadb

    命令参数释义(具体的参数释义可以查看 镜像地址 ):

    -p 3307:3306: 容器服务开放的端口,前者是宿主机的端口,后者是容器内服务的端口

    -e PUID、-e PGID: 运行容器的用户的权限集id

    -e MYSQL_ROOT_PASSWORD: 数据库root用户的密码

    -e MYSQL_DATABASE=nextcloud :创建一个名称为nextcloud的数据库

    -e MYSQL_USER:创建一个名称为nextcloud的用户

    -e MYSQL_PASSWORD:名称为nextcloud的用户的密码

    --restart=unless-stopped:当容器停止时候重启容器

    -v:数据卷绑定 前者是宿主机的地址,后者是容器机器的位置

    例如: -v /sharedfolders/nextcloud/db:/var/lib/mysql 把容器/var/lib/mysql的内容挂在到宿主机/sharedfolders/nextcloud/db的位置

以下是我运行的日志

qinkangdeid@omv:~$ docker run -d --name db_nextcloud \
>     -p 3307:3306 \
>     -e PUID=1000 \
>     -e PGID=100 \
>     -e MYSQL_ROOT_PASSWORD=123456 \
>     -e MYSQL_DATABASE=nextcloud \
>     -e MYSQL_USER=nextcloud \
>     -e MYSQL_PASSWORD=123456 \
>     --restart=unless-stopped \
>     -v /sharedfolders/nextcloud/db:/var/lib/mysql \
>      mariadb
Unable to find image 'mariadb:latest' locally
latest: Pulling from library/mariadb
38e2e6cd5626: Pull complete
705054bc3f5b: Pull complete
c7051e069564: Pull complete
7308e914506c: Pull complete
35e6984cb587: Pull complete
3a173c4702b4: Pull complete
efd003ff8e24: Pull complete
ba5d30791443: Pull complete
f3e943c9e01d: Pull complete
e5243a434e4f: Pull complete
910d8b012ee8: Pull complete
1fb787f18e3d: Pull complete
7a0cfbee5299: Pull complete
6fa7c8911619: Pull complete
Digest: sha256:eb6acf7f599f39c42582e11b1de3866c3934da84cc45190c0aac3e8d046e4053
Status: Downloaded newer image for mariadb:latest
`1be6b4e5f24539e8fc40ca7036a567104b067072044f878a3f4d71104ee8ee9a`
qinkangdeid@omv:~$

查看docker运行容器,看NAMES那一栏下面 有个db_nextcloud已经在运行,也能看到我们配置的端口

qinkangdeid@omv:~$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
1be6b4e5f245        mariadb             "docker-entrypoint.s…"   14 seconds ago      Up 8 seconds        0.0.0.0:3307->3306/tcp   db_nextcloud
5b9d858e08ab        opengg/aria2        "/init.sh"               24 minutes ago      Up 23 minutes       0.0.0.0:6800->6800/tcp   aria2

另一个方式使用telnet验证安装是否成功

OpenMediaVault NextCloud NAS

三. 安装NextCloud

NextCloud的安装也还简单,依然是使用docker,复制下面的命令到终端运行即可,记得-v的前部分是你宿主机的地址

docker run -d --name nextcloud \
       -p 8088:80 \
       --restart=unless-stopped \
       -v /sharedfolders/nextcloud/html:/var/www/html \
       -v /sharedfolders/nextcloud/data:/var/www/html/data \
       nextcloud

命令参数释义(具体的参数释义可以查看 镜像地址):

-p 8088:80: 容器服务开放的端口,前者是宿主机的端口,后者是容器内服务的端口

--restart=unless-stopped:当容器停止时候重启容器

-v:数据卷绑定 前者是宿主机的地址,后者是容器机器的位置

Nextcloud安装以及数据库之外的所有数据(文件上载等)都存储在容器地址/var/www/html中,要想持久化你的数据,不通过nextCloud也可以查看的话,应当映射到宿主机的某个位置上

Nextcloud的卷配置还是挺多的,例如配置(config)、数据(data)、主题(themes)等

nextcloud的一些卷地址:
/var/www/html 更新所需的主文件夹
/var/www/html/custom_apps你自己手动安装的应用位置
/var/www/html/config 本地配置文件位置
/var/www/html/data 你的网盘数据存放的位置
/var/www/html/themes/<YOU_CUSTOM_THEME> 主题文件位置
以上卷映射我这里只把data单独抽出来了,其他的配置全部默认放在/var/www/html映射的位置里

下面是我的运行日志

qinkangdeid@omv:~$ docker run -d --name nextcloud \
>        -p 8088:80 \
>        --restart=unless-stopped \
>        -v /sharedfolders/nextcloud/html:/var/www/html \
>        -v /sharedfolders/nextcloud/data:/var/www/html/data \
>        nextcloud
Unable to find image 'nextcloud:latest' locally
latest: Pulling from library/nextcloud
5e6ec7f28fb7: Pull complete
cf165947b5b7: Pull complete
7bd37682846d: Extracting [===========================================>       ]  58.49MB/67.44MB
7bd37682846d: Pull complete
99daf8e838e1: Pull complete
ae320713efba: Pull complete
ebcb99c48d8c: Pull complete
9867e71b4ab6: Pull complete
936eb418164a: Pull complete
5d9617dfb66b: Pull complete
8dd7afaae109: Pull complete
8f207844da7e: Pull complete
adb3ae5e4987: Pull complete
44d7d07029db: Pull complete
fb91064652b0: Pull complete
50923e16d552: Pull complete
a7cb9c70c5d2: Pull complete
728e578e40fa: Pull complete
4c3163d09df1: Pull complete
842c4700643d: Downloading [===========================================>       ]  35.98MB/41.57MB
842c4700643d: Pull complete
cc1964f4bb3e: Pull complete
125e01596295: Pull complete
Digest: sha256:a2f2bd57fcfd92b3b6c23b6f34f65d59c9b25e7cc883b1ac67fff01229325692
Status: Downloaded newer image for nextcloud:latest
b2b8cb3a61967ba08cb64490c6c8d2a173882560ae22fb0a6a45f895dea36912

例行惯例,查看容器运行:

qinkangdeid@omv:~$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
b2b8cb3a6196        nextcloud           "/entrypoint.sh apac…"   42 seconds ago      Up 38 seconds       0.0.0.0:8088->80/tcp     nextcloud
cb81622828c1        mariadb             "docker-entrypoint.s…"   7 minutes ago       Up 5 minutes        0.0.0.0:3307->3306/tcp   db_nextcloud
5b9d858e08ab        opengg/aria2        "/init.sh"               About an hour ago   Up 5 minutes        0.0.0.0:6800->6800/tcp   aria2

访问NextCloud

我把nextcloud的服务端口映射到了宿主机的8088端口上,nextcloud启动后,浏览器输入http://你的IP:8088即可访问nextcloud了。

刚开始的界面如下:

  1. 第一项配置是配置日后访问nextcloud的一个管理员用户名和密码

  2. 第二项是数据目录,这个我们在运行容器的时候已经指定了位置,所以这里不用动

  3. 第三项就是配置外置数据库的连接信息了,将之前我们创建mariadb的信息填写进去,其实这里也可以在安装nextcloud的时候将之前的mariadb容器连接进去,这里就手动填写了。要注意数据库的服务端口如果宿主机和容器端口映射的不一样的话,这里要写宿主机的端口,例如现在我的mariadb容器的服务端口3306映射到了宿主机的3307端口上了,所以这里使用的端口为3307。

所有信息填写完成后,点击安装完成,这一步骤会比较的耗时间,nextcloud需要创建数据库表和一些初始化配置信息

OpenMediaVault NextCloud NAS

点击安装完成

OpenMediaVault NextCloud NAS

安装完成后,会自动显示以下界面

OpenMediaVault NextCloud NAS

里面会有一些默认的示例文件

OpenMediaVault NextCloud NAS

至此nextcloud已经安装完成,你可以继续探索NextCloud所拥有的功能。

四. NextCloud拓展安装方式

PS: 上面的安装方式需要在第一次启动访问nextcloud的时候配置数据库连接、数据卷地址,下面的方式可以减少这个步骤
docker可以使用 –link 连接另外一个容器的配置 nextcloud也支持通过环境变量自动配置可以在首次运行nextcloud容器时预先配置安装页面上询问的所有内容。要启用自动配置,
可以通过以下环境变量设置数据库连接。但是只能使用一种数据库类型!

Nextcloud目前所支持的环境变量自动配置如下:

  1. 配置数据库的环境变量

    • 针对选用SQLITE_DATABASE数据库的参数:

      • SQLITE_DATABASE: 使用SQLite数据库时候的数据库名称(我们不适用这个数据库所以不用带这个参数)
    • 针对选用MYSQL/MariaDB数据库的参数:

      • MYSQL_DATABASE: 要使用的数据库的名称 在这里和之前创建的mariadb容器 的数据库一直db_nextcloud
      • MYSQL_USER:数据库用户名
      • MYSQL_PASSWORD 数据库用户名密码
      • MYSQL_HOST : 配置的数据库容器的名称docker run -d –name db_nextcloud的–name参数指定的名称,也就是db_nextcloud
    • 针对选用PostgreSQL数据库的参数:

      • POSTGRES_DB :postgres数据库的名称
      • POSTGRES_USER :postgres数据库用户名
      • POSTGRES_PASSWORD postgres数据库用户的密码(对应上面用户名的密码)
      • POSTGRES_HOST:配置的数据库容器的名称
  2. 配置Nextcloud 管理员用户密码的环境变量

    • NEXTCLOUD_ADMIN_USER :管理员用户名
    • NEXTCLOUD_ADMIN_PASSWORD:管理员密码
  3. 配置Nextcloud 数据文件地址和表名前缀的环境变量

    • NEXTCLOUD_DATA_DIR : nextcloud数据存放的位置(默认路径是: /var/www/html/data) 这个不设我们还可以使用-v参数来映射
    • NEXTCLOUD_TABLE_PREFIX: nextcloud依赖的数据库表表名前缀 (默认是: "") 可选操作 一般也不会设啦

所以创建nextcloud容器的方式就稍稍有些变化了,可以根据上面的环境变量自由添加,环境变量使用-e追加,我这里只配置数据库的环境变量,如下命令所示:

docker run -d --name nextcloud \
       --link db_nextcloud:db_nextcloud \
       -p 8088:80 \
       -p 4433:443 \
       -e PUID=1000 \
       -e PGID=100 \
       -v /sharedfolders/nextcloud/html:/var/www/html \
       -v /sharedfolders/nextcloud/data:/var/www/html/data \
       -e MYSQL_DATABASE=nextcloud \
       -e MYSQL_USER=nextcloud \
       -e MYSQL_PASSWORD=123456 \
       -e MYSQL_HOST=db_nextcloud \
       --restart=unless-stopped \
       nextcloud

我的执行日志:

root@omv:/sharedfolders/nextcloud# docker run -d --name nextcloud \
>        --link db_nextcloud:db_nextcloud \
>        -p 8088:80 \
>        -e PUID=1000 \
>        -e PGID=100 \
>        -v /sharedfolders/nextcloud/html:/var/www/html \
>        -v /sharedfolders/nextcloud/data:/var/www/html/data \
>        -e MYSQL_DATABASE=nextcloud \
>        -e MYSQL_USER=nextcloud \
>        -e MYSQL_PASSWORD=123456 \
>        -e MYSQL_HOST=db_nextcloud \
>        --restart=unless-stopped \
>        nextcloud
Unable to find image 'nextcloud:latest' locally
latest: Pulling from library/nextcloud
27833a3ba0a5: Already exists
2d79f6773a3c: Already exists
f5dd9a448b82: Already exists
95719e57e42b: Already exists
cc75e951030f: Already exists
78873f480bce: Already exists
1b14116a29a2: Already exists
887fc426d9b4: Pull complete
e8a2a7e68e47: Pull complete
44116bd4b499: Pull complete
5a7ed133cf7c: Pull complete
a0cc2e7ce3b9: Pull complete
3ea943f2a6e6: Pull complete
dc6fe404fa96: Pull complete
2970a87ebdd8: Pull complete
632923a6d419: Pull complete
78f88b7ec6fe: Pull complete
a62deb12226c: Pull complete
30d2885ecc94: Pull complete
5c72c2211abe: Pull complete
Digest: sha256:e4c59de7d564a7cec680d32ebed64bb7a7c53859d1c9dd6ef21912183719b203
Status: Downloaded newer image for nextcloud:latest
8aa333d93a38589c758efd44db429b28e65301205516d940c5e772212ce09b77
root@omv:/sharedfolders/nextcloud#

之后nextcloud启动,第一次访问nextcloud就出现如下画面:

OpenMediaVault NextCloud NAS

数据库和数据卷的配置没了,只需要创建一个管理员账户即可

OpenMediaVault NextCloud NAS

五. 安装 onlyoffice

onlyoffice 是一个在线办公套件,包括用于文本,电子表格和演示文稿的查看器和编辑器,与 Office Open XML 格式:.docx,.xlsx,.pptx 完全兼容,并支持实时协作编辑。onlyoffice 官网 https://www.onlyoffice.com/

ONLYOFFICE提供了包括文档管理、项目管理、CRM、日历、邮件和企业网络等全套效率工具套件
您无需再为执行不同的任务而在多个应用软件之间来回切换。
集中统一的多功能系统将帮助您组织管理工作中的每一步,从而提高工作效率和取得成功。

如果您希望获得文档的在线预览编辑功能,那么推荐您安装onlyoffice在线办公套件。

NextCloud的应用商店里已经集成了onlyoffice,我们只需安装并配置其连接到指定的 onlyoffice document server 即可,现在我们需要做的就是 安装 onlyoffice document server

我们还是通过 docker 方式安装 onlyoffice document server:

docker run -i -t -d --name onlyoffice \
    -p 8000:80 \
    -e PUID=1000 \
    -e PGID=100 \
    --restart=unless-stopped \
    -v /sharedfolders/nextcloud/onlyoffice/logs:/var/log/onlyoffice \
    -v /sharedfolders/nextcloud/onlyoffice/data:/var/www/onlyoffice/Data \
    onlyoffice/documentserver

CentOS 7 安装 PHP 7.4

小C阅读(195)

CentOS 7 安装 PHP 7.4

CentOS 7官方软件仓库的PHP5.4已到使用寿命,并且不再由开发人员维护。
为了跟上新的功能和安全更新,您需要在CentOS 7系统上使用较新的(可能是最新的)PHP版本。
我们将以root用户身份运行系统,如果您不是这种情况,请使用sudo命令获取root用户权限。

CentOS 7 安装 PHP 7.4

  1. 要安装PHP 7,您需要使用以下命令在CentOS 7系统上安装并启用EPEL和Remi存储库。

    # yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    # yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
  2. 接下来,您需要安装yum-utils,它可以扩展yum的默认功能,用于管理(启用或禁用)yum存储库以及程序包,而无需进行任何手动配置。

    # yum install yum-utils
  3. yum-utils提供的程序之一是yum-config-manager,您可以使用它来启用Remi存储库作为默认存储库,以安装不同的PHP版本。

    # yum-config-manager --enable remi-php70   [Install PHP 7.0]

    如果您想在CentOS 7上安装PHP7.1,PHP7.2,PHP7.3或PHP7.4,则如下所示启用它。

    # yum-config-manager --enable remi-php71   [Install PHP 7.1]
    # yum-config-manager --enable remi-php72   [Install PHP 7.2]
    # yum-config-manager --enable remi-php73   [Install PHP 7.3]
    # yum-config-manager --enable remi-php74   [Install PHP 7.4]
  4. 现在,使用以下命令安装PHP7和所有必需的模块。

    # yum install php php-cli php-common php-gd php-json php-ldap php-mbstring php-mysqlnd php-pdo php-xml

    然后,检查系统上PHP的安装版本。

    # php -v
    PHP 7.4.2 (cli) (built: Jan 21 2020 11:35:20) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v3.4.0, Copyright (c) Zend Technologies

Linux下虚拟机扩展分区容量(硬盘空间)

小C阅读(291)

一. VMware虚拟机设置

首先打开虚拟机设置,再选中硬盘选项,选择扩展选项(E),设置扩展大小(需要关机状态,并且不能有虚拟机快照),比如我原来是80G ,通过设置扩展到120G。这一步过后linux就多了40G空闲磁盘。但这只是VMware给该虚拟机分了硬盘,就像你加了块硬盘到电脑上,下面还要在linux系统中配置使硬盘空间正确挂载。

二. 创建分区

  1. 终端输入如下命令:
    fdisk /dev/sda

    接着,输入 p 查看分区信息,示例输出如下:

    Command (m for help): p
    Disk /dev/sda: 128.8 GB, 128849018880 bytes
    255 heads, 63 sectors/track, 15665 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00044781
    Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          64      512000   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              64        2611    20458496   8e  Linux LVM
    /dev/sda3            2611        5221    20966162+  83  Linux
    /dev/sda4            5222       15665    83891430   83  Linux
  2. 创建分区,这里分两种情况:
    1). 一种是主分区未满4个,这时可以直接创建分区:
    fdisk command里输入 n(new一个新分区)此时进入扩展、主分区的选择,输入 p 选择主分区,如果你之前已有2个分区,那么就选择分区号为3;如果有已有3个分区,则选择分区号为4。最后会提示选择该分区的起始地址和结束地址,一般选默认的直接回车即可,此时再次输入 p 就可以看到刚才创建的新分区。

    2). 第二种已达到4个分区,则需要输入 d,然后输入 4,以删除第 4 分区,然后输入 n,输入 p 选择主分区,选择分区号为 4,以重新创建第 4 分区,最后会提示选择该分区的起始地址和结束地址,选默认的直接回车即可,此时再次输入 p 就可以看到刚才创建的新分区,示例输出如下:
[root@test ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p        #查看分区表信息

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005210c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        1301    10240000   83  Linux
/dev/sda3            1301        1497     1572864   82  Linux swap / Solaris
/dev/sda4            1497        2611     8952832   83  Linux

Command (m for help): d           #删除分区
Partition number (1-4): 4         #删除第四个

Command (m for help): p       #再次查看分区信息,/dev/sda4已被删除

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005210c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        1301    10240000   83  Linux
/dev/sda3            1301        1497     1572864   82  Linux swap / Solaris

Command (m for help): n      #创建新的分区
Command action
   e   extended
   p   primary partition (1-4)
p             #创建为主分区
Selected partition 4
First cylinder (1497-3916, default 1497):          #经对比,正好和上一个磁盘柱一致,默认回车即可
Using default value 1497
Last cylinder, +cylinders or +size{K,M,G} (1497-3916, default 3916): 
Using default value 3916              #直接默认回车即可

Command (m for help): p               #查看分区表信息

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005210c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        1301    10240000   83  Linux
/dev/sda3            1301        1497     1572864   82  Linux swap / Solaris
/dev/sda4            1497        3916    19436582   83  Linux

Command (m for help): wp       #保存并退出,如果创建有误,直接退出不要保存即可
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
  1. 创建物理卷 PV (Physical volume)
    这里根据前面的操作也分两种情况处理:
    1). 如果是直接创建的分区,则输入 pvcreate /dev/sda3 创建物理卷,然后输入 vgdisplay,查看下当前的卷组(volumegroup),结果为 VolGroup,然后输入 vgextend /dev/mapper/VolGroup /dev/sda3 将新的pv加入到原有的vg

    [root@test ~]# vgdisplay 
    --- Volume group ---
    VG Name               VolGroup
    System ID             
    Format                lvm2
    Metadata Areas        3
    Metadata Sequence No  10
    VG Access             read/write
    VG Status             resizable
    MAX LV                0
    Cur LV                2
    Open LV               2
    Max PV                0
    Cur PV                3
    Act PV                3
    VG Size               119.50 GiB
    PE Size               4.00 MiB
    Total PE              30591
    Alloc PE / Size       29826 / 116.51 GiB
    Free  PE / Size       765 / 2.99 GiB
    VG UUID               qXs6MO-nsYe-ASBU-FS9f-e9Im-XId7-7iQD45

    2). 如果是重新创建的分区,则输入 pvresize /dev/sda4 --setphysicalvolumesize 80G 调整物理卷的大小,大小80G为调整后的大小,需要根据 pvdisplay 获取到的 sda4物理卷的大小40G,然后加上我们此次调整增加的大小40G,最终为80G。重新创建的分区不需要将物理卷PV加入VG,因为以前已经加过了。

[root@localhost ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               VolGroup
  PV Size               19.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4994
  Free PE               0
  Allocated PE          4994
  PV UUID               8i4eDm-BIXi-2gz7-AROL-zinS-QeYE-2lJviN

  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               VolGroup
  PV Size               19.99 GiB / not usable 2.77 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              5118
  Free PE               0
  Allocated PE          5118
  PV UUID               N5z1G9-Qh6O-UoJo-Hweg-PLRy-Hr5Y-Q0lfPS

  --- Physical volume ---
  PV Name               /dev/sda4
  VG Name               VolGroup
  PV Size               80.00 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              20479
  Free PE               765
  Allocated PE          19714
  PV UUID               N4G0wG-cKp2-eIwU-hQXw-YKBo-2Wsk-iZLLsM
  1. 扩大逻辑卷LV
    扩大当前正在使用的(根文件系统)逻辑卷LV,从vg中取剩下的空间这里是40G,但是有保留地址,直接取40G会出错,所以这里我取39G,命令是:

    lvextend -L +39G /dev/mapper/VolGroup-lv_root

    其中,LV名可以通过 df -h 命令获取:

    [root@localhost ~]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root
                      113G   69G   39G  64% /
    tmpfs                 931M  224K  931M   1% /dev/shm
    /dev/sda1             477M   84M  369M  19% /boot
  2. 更新文件系统
    最后,输入命令:

    resize2fs  /dev/mapper/VolGroup-lv_root

    这一步重新刷新了文件系统大小,之后再次 df -h 查看一下,就可以看到当前根文件系统增加了接近40G!

Qt5 Virtual Keyboard C++集成与实现三(解决模态对话框键盘失效问题)

小C阅读(543)

前面我们已经介绍了:

  1. Qt5 Virtual Keyboard C++集成与实现一(基于QWidget的多语言键盘编译及自定义大小)
  2. Qt5 Virtual Keyboard C++集成与实现二(自适应位置)

当使用模态对话框时,点击对话框里的输入控件,弹出Qt键盘后键盘无法获得焦点的,这是由于模态对话框的特性所导致的,下面就让我们看看如何解决。

Qt5 Virtual Keyboard C++集成与实现三(解决模态对话框键盘失效问题)

一. Qt 模态对话框

先让我们来看看对话框的几种特性:

  1. Qt::NonModa
    The window is not modal and does not block input to other windows.
  2. Qt::WindowModal
    The window is modal to a single window hierarchy and blocks input to its parent window, all grandparent windows, and all siblings of its parent and grandparent windows.
  3. Qt::ApplicationModal
    The window is modal to the application and blocks input to all windows.

可以看出,比较常用的exec()方法显示的对话框是属于第三种:Qt::ApplicationModal,这种对话框无法接受除了自身之外的任何其他对象的输入,而第二种 Qt::WindowModal 是可以接受 QApplication 的输入,所以我们只需将其改为第二种即可。

二. 实现

我们只需在显示键盘之前添加如下代码:

        if(qGuiApp->focusWindow()->isModal())
            qGuiApp->focusWindow()->setModality(Qt::WindowModal);

现在再看,是不是可以正常使用Qt键盘了?

三. 更多键盘设置

  1. Qt5 Virtual Keyboard C++集成与实现一(基于QWidget的多语言键盘编译及自定义大小)
  2. Qt5 Virtual Keyboard C++集成与实现二(自适应位置)
免责声明:本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除,若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!

联系我们