欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1. 目的

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

2. 設(shè)計(jì)

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

3. 實(shí)現(xiàn)

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

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

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]

然后是不同的鏡像站點(diǎn),路徑略有差別:

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]

接下來(lái)是拼接生成配置文件:

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 = [
        '# 默認(rèn)注釋了源碼鏡像以提高 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),
        '# 預(yù)發(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 為例,使用時(shí)只需要一句話:

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

5. 參考

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

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

相關(guān)文章

  • Python拆分Word文檔的四種實(shí)用技巧分享

    Python拆分Word文檔的四種實(shí)用技巧分享

    在日常文檔處理中,將大型 Word 文檔拆分為多個(gè)獨(dú)立文件是一項(xiàng)常見的需求,拆分文檔可以帶來(lái)許多好處,這篇文章將介紹使用Python將Word文檔拆分為多個(gè)文檔的四種不同方式,需要的朋友可以參考下
    2025-02-02
  • Python還能這么玩之只用30行代碼從excel提取個(gè)人值班表

    Python還能這么玩之只用30行代碼從excel提取個(gè)人值班表

    公司實(shí)行項(xiàng)目值班制度,拿到值班表,看到全部的值班信息,要去查找自己的值班信息,是一件頭痛的事情.作為程序員,當(dāng)然要簡(jiǎn)化,將自己的信息提煉出來(lái),需要的朋友可以參考下
    2021-06-06
  • Python中運(yùn)維神器Psutil的用法詳解

    Python中運(yùn)維神器Psutil的用法詳解

    Python的開源庫(kù)psutil為我們提供了一個(gè)強(qiáng)大的工具,能夠輕松獲取和分析系統(tǒng)利用率的信息,下面就跟隨小編一起深入了解一下它的具體使用吧
    2025-02-02
  • Pygame?transform模塊入門介紹

    Pygame?transform模塊入門介紹

    pygame.transform模塊允許您對(duì)加載、創(chuàng)建后的圖像進(jìn)行一系列操作,比如調(diào)整圖像大小、旋轉(zhuǎn)圖片等操作,感興趣的可以了解一下
    2022-08-08
  • 在Python3 numpy中mean和average的區(qū)別詳解

    在Python3 numpy中mean和average的區(qū)別詳解

    今天小編就為大家分享一篇在Python3 numpy中mean和average的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-08-08
  • python數(shù)據(jù)處理和數(shù)據(jù)清洗的示例詳解

    python數(shù)據(jù)處理和數(shù)據(jù)清洗的示例詳解

    數(shù)據(jù)清洗是指發(fā)現(xiàn)并糾正數(shù)據(jù)文件中可識(shí)別的錯(cuò)誤的最后一道程序,包括檢查數(shù)據(jù)一致性,處理無(wú)效值和缺失值等,數(shù)據(jù)清洗與處理的目的是提高數(shù)據(jù)的質(zhì)量,提高實(shí)驗(yàn)結(jié)果的可靠度,本文給大家介紹了python數(shù)據(jù)處理和數(shù)據(jù)清洗的示例,需要的朋友可以參考下
    2024-08-08
  • 一行Python3代碼實(shí)現(xiàn)解析地址信息

    一行Python3代碼實(shí)現(xiàn)解析地址信息

    在日常數(shù)據(jù)處理的過程中,有時(shí)候拿到手的是完整的地址信息,如果需要從地址信息中解析出相應(yīng)的各級(jí)行政單元名稱,方式有很多,而今天要介紹的方式只需要一行代碼即可快速實(shí)現(xiàn),快跟隨小編一起學(xué)習(xí)一下吧
    2022-05-05
  • Python使用Selenium與pytest進(jìn)行高效測(cè)試的示例詳解

    Python使用Selenium與pytest進(jìn)行高效測(cè)試的示例詳解

    隨著軟件開發(fā)的快速發(fā)展,自動(dòng)化測(cè)試成為了提高開發(fā)效率、降低錯(cuò)誤率的重要工具,Python作為一種高效且易于使用的編程語(yǔ)言,已經(jīng)成為自動(dòng)化測(cè)試領(lǐng)域的重要工具之一,本文將介紹如何使用Python、Selenium和pytest進(jìn)行自動(dòng)化測(cè)試,并展示一個(gè)簡(jiǎn)單的自動(dòng)化測(cè)試示例
    2025-01-01
  • Python?tkinter實(shí)現(xiàn)計(jì)算器功能

    Python?tkinter實(shí)現(xiàn)計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了Python?tkinter實(shí)現(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Python使用pip安裝pySerial串口通訊模塊

    Python使用pip安裝pySerial串口通訊模塊

    這篇文章主要為大家詳細(xì)介紹了Python使用pip安裝pySerial串口通訊模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評(píng)論