最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python生成ubuntu apt鏡像地址實現(xiàn)

 更新時間:2023年05月17日 10:49:26   作者:baiyu33  
本文主要介紹了Python生成ubuntu apt鏡像地址實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1. 目的

每次新配置 Ubuntu 系統(tǒng),免不了配置 apt 源。盡管可以通過 GUI 界面進行選擇,但自動化程度不夠,不同桌面(Unity/Gnome/KDE)下的界面也不太一樣; 使用 vim 進行替換足夠 Geek,卻也免不了查詢每個 ubuntu 發(fā)行版的名稱。使用 Pyhon 可以實現(xiàn) apt 鏡像配置文件的生成, 輸入可選的參數(shù)(鏡像站點、ubuntu發(fā)行版本等),即可自動生成配置文件 sources.list. 本文給出代碼實現(xiàn)。

2. 設計

  • 定義一個函數(shù),根據(jù)輸入的發(fā)行版數(shù)字(例如22.04),返回對應的字符串名稱
  • 定義一個函數(shù),根據(jù)給定的站點名稱(如ustc),給出站點的完整路徑
  • 可以選擇是否開啟 ipv6, 是否用 https, 并且給與默認值

3. 實現(xiàn)

首先觀察鏡像站點給出的配置文件內(nèi)容:

可以看到,不同發(fā)行版僅僅是名稱不一樣,配置文件結構是相同的。因此

def get_ubuntu_distro_name_by_number_str(distro_num_str):
    dist_mp = {
        '12.04': 'precise',
        '14.04': 'trusty',
        '16.04': 'xenial',
        '16.10': 'yakkety',
        '17.04': 'zesty',
        '17.10': 'artful',
        '18.04': 'bionic',
        '20.04': 'focal',
        '20.10': 'groovy',
        '21.04': 'hirsute',
        '21.10': 'impish',
        '22.04': 'jammy',
        '22.10': 'kinetic',
        '23.04': 'lunar',
        '23.10': 'mantic'
    }
    return dist_mp[distro_num_str]

然后是不同的鏡像站點,路徑略有差別:

def get_site_location_by_name(site_name : str):
    site_mp = {
        'ustc':     'mirrors.ustc.edu.cn',
        'aliyun':   'mirrors.aliyun.com',
        'tuna':     'mirrors.tuna.tsinghua.edu.cn',
        '163':      'mirrors.163.com',
        'zju':      'mirrors.zju.edu.cn',
        'huawei':   'mirrors.huaweicloud.com',
        'lzu':      'mirror.lzu.edu.cn',
        'sjtu':     'mirrors.sjtug.sjtu.edu.cn'
    }
    return site_mp[site_name]

接下來是拼接生成配置文件:

def get_mirror_site(distro_num_str='22.04', site_name='aliyun', https=True, ipv6=False):
    protocal = 'https' if https else 'http'
    ipv6_part = 'ipv6' if ipv6 else ''
    location = get_site_location_by_name(site_name)
    # e.g. https://mirrors.ustc.edu.cn
    site_url = "{:s}://{:s}{:s}".format(protocal, ipv6_part, location)
    distro = get_ubuntu_distro_name_by_number_str(distro_num_str)
    mirror_url_lst = [
        '# 默認注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋',
        'deb {:s}/ubuntu/ {:s} main restricted universe multiverse'.format(site_url, distro),
        '# deb-src {:s}/ubuntu/ {:s} main restricted universe multiverse'.format(site_url, distro),
        'deb {:s}/ubuntu/ {:s}-updates main restricted universe multiverse'.format(site_url, distro),
        '# deb-src {:s}/ubuntu/ {:s}-updates main restricted universe multiverse'.format(site_url, distro),
        'deb {:s}/ubuntu/ {:s}-backports main restricted universe multiverse'.format(site_url, distro),
        '# deb-src {:s}/ubuntu/ {:s}-backports main restricted universe multiverse'.format(site_url, distro),
        'deb {:s}/ubuntu/ {:s}-security main restricted universe multiverse'.format(site_url, distro),
        '# deb-src {:s}/ubuntu/ {:s}-security main restricted universe multiverse'.format(site_url, distro),
        '# 預發(fā)布軟件源,不建議啟用',
        '# deb {:s}/ubuntu/ {:s}-proposed main restricted universe multiverse'.format(site_url, distro),
        '# deb-src {:s}/ubuntu/ {:s}-proposed main restricted universe multiverse'.format(site_url, distro)
    ]
    for mirror_url in mirror_url_lst:
        print(mirror_url)

4. 調(diào)用

以 ustc, ubuntu 22.04 為例,使用時只需要一句話:

if __name__ == '__main__':
    get_mirror_site(distro_num_str='22.04', site_name='ustc')

5. 參考

參考了科大 ustc lug 鏡像站點的 repogen 這一網(wǎng)頁:https://mirrors.ustc.edu.cn/repogen/

到此這篇關于Python生成ubuntu apt鏡像地址實現(xiàn)的文章就介紹到這了,更多相關Python生成ubuntu apt鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

平湖市| 清水河县| 东港市| 庄浪县| 乐清市| 望江县| 曲松县| 保定市| 阿勒泰市| 通州区| 台中县| 民勤县| 崇礼县| 横山县| 同德县| 金堂县| 孙吴县| 汾阳市| 简阳市| 仁化县| 兴国县| 抚松县| 通海县| 潍坊市| 宁武县| 工布江达县| 安阳县| 河北省| 即墨市| 南和县| 成武县| 西藏| 麻城市| 卢龙县| 大悟县| 沿河| 安陆市| 如东县| 滨州市| 麻城市| 马尔康县|