linux非root用戶下安裝軟體,搭建生產環境

来源:https://www.cnblogs.com/Basasuya/archive/2019/09/17/11535055.html
-Advertisement-
Play Games

之前的用實驗室的伺服器,因為某些原因,使用的用戶沒有root許可權。linux的非root用戶很多軟體無法安裝,非常的不方便。我的方法是使用brew來代替系統的包管理工具。brew是最先用在mac上的包管理工具,可以將所有的包托管在user本地的環境內。下麵的文檔中運行的時候記得將用戶名改成自己的。 ...


之前的用實驗室的伺服器,因為某些原因,使用的用戶沒有root許可權。linux的非root用戶很多軟體無法安裝,非常的不方便。我的方法是使用brew來代替系統的包管理工具。brew是最先用在mac上的包管理工具,可以將所有的包托管在user本地的環境內。下麵的文檔中運行的時候記得將用戶名改成自己的。

1. 安裝anaconda

下載官方anaconda python安裝包(minicondo也行),將conda加入~/.bashrc的系統變數中(在安裝中會提示你運行 conda init,點yes就會直接複製到~/.bashrc中了)。這一步的目的是去安裝curl, curl是下載安裝brew必備的工具,此時curl會安裝在/home/username/anaconda3/bin中

conda install curl --use-local

建議這裡裝完再裝一個vim,方便文本編輯

2. 安裝brew

使用curl命令下載安裝brew,中間有一些錯誤不用管他,結束後輸入brew有返回就說明安裝成功

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

之後將一下brew加入~/.bashrc中

export HOMEBREW_PREFIX="/home/username/.linuxbrew";
export HOMEBREW_CELLAR="/home/username/.linuxbrew/Cellar";
export HOMEBREW_REPOSITORY="/home/username/.linuxbrew/Homebrew";
export PATH="/home/username/.linuxbrew/bin:/home/username/.linuxbrew/sbin:$PATH";
export MANPATH="/home/username/.linuxbrew/share/man:$MANPATH";
export INFOPATH="/home/username/.linuxbrew/share/info:$INFOPATH";

此時保證brew已經是一個可以在終端被調用, 接下來是關鍵的一步

在/home/username/.linuxbrew/Homebrew/Library/Homebrew/brew.sh#L200上進行加上一行

if [[ -n "$HOMEBREW_FORCE_BREWED_CURL" &&
      -x "$HOMEBREW_PREFIX/opt/curl/bin/curl" ]] &&
         "$HOMEBREW_PREFIX/opt/curl/bin/curl" --version >/dev/null
then
  HOMEBREW_CURL="$HOMEBREW_PREFIX/opt/curl/bin/curl"
elif [[ -n "$HOMEBREW_DEVELOPER" && -x "$HOMEBREW_CURL_PATH" ]]
then
  HOMEBREW_CURL="$HOMEBREW_CURL_PATH"
else
  HOMEBREW_CURL="curl"
fi
HOMEBREW_CURL="/home/username/anaconda/bin/curl" # 加上這一行!

然後輸入 brew install curl

裝完之後brew.sh會自動抹去自己之前的修改 : ),然後brew就正式能用了

比如 brew install tmux, brew install htop,只有brew有的包都可以裝(參考包列表https://formulae.brew.sh/formula/)

3. 手動編譯安裝軟體包

如果brew裡面沒有某個包,需要自己編譯的話,一般的linux軟體包都是make編譯的,一般修改下configure然後再make && make install 就好了,如下三行命令:

./configure --prefix=/home/username/.local
make
make install
# 如果要卸載 運行 make uninstall

最後分享下我的~/.bashrc ,其中 ~/.local/bin~/.local/lib加到PATH裡面是為了自己編譯安裝用的。

export PATH=~/.local/bin:$PATH
export C_INCLUDE_PATH=$C_INCLUDE_PATH:~/.local/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:~/.local/include
export LD_LIBRARY_PATH=~/.local/lib:$LD_LIBRARY_PATH


# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/username/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/username/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/username/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/username/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

export HOMEBREW_PREFIX="/home/username/.linuxbrew";
export HOMEBREW_CELLAR="/home/username/.linuxbrew/Cellar";
export HOMEBREW_REPOSITORY="/home/username/.linuxbrew/Homebrew";
export PATH="/home/username/.linuxbrew/bin:/home/username/.linuxbrew/sbin:$PATH";
export MANPATH="/home/username/.linuxbrew/share/man:$MANPATH";
export INFOPATH="/home/username/.linuxbrew/share/info:$INFOPATH";

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 緩衝區是⽤來保存兩個設備之間或設備與應⽤程式之間傳輸數據的記憶體區域 由於CPU的速度遠遠⾼於I/O設備,為了儘可能使CPU與設備並⾏⼯作,提⾼ 系統的性能,通常需要操作系統在設備管理軟體中提供緩衝區管理功能。 ...
  • 1 概述 1.1 業務需求 公司共有兩個業務,網上圖書館和一個電商網站。現要求運維設計一個安全架構,本著高可用、廉價的原則。 具體情況如下: 網上圖書館是基於jsp開發; 電商系統是基於php開發; 兩個網站都是使用的mysql資料庫; 要求你提供一個高可用且廉價的架構方案,部署分發業務到外網; 請 ...
  • 一、預備環境 關閉防火牆,關閉安全機制 二、搭建Nginx服務 1、支持的軟體包pcre-devel、zlib-devel、openssl-devel(支持加密)、gcc、gcc-c++、make devel包主要是供開發用,包含普通包,devel包中包含頭文件和鏈接庫,如果是需要動態鏈接庫的話,兩 ...
  • 轉載請標明博客的地址 本人博客和github賬號,如果對你有幫助請在本人github項目AioSocket上點個star,激勵作者對社區貢獻 個人博客:https://www.cnblogs.com/haibiscuit/ 個人github: https://github.com/haibiscui ...
  • 1.啟動動作 2.設定發件人郵箱 3.配置收件人 ...
  • 一、中間鍵產品介紹 目前來說IBM的WebSphere,Oracle的Weblogic占據了市場上java語言Web站點的部分份額,該兩種軟體都是商業化的軟體,由於性能優越,可靠性高等優點應用於大型互聯網公司的Web場景中。 Tomcat自5.x版本以來,其性能上已經得到了大幅度的提升,開放性的架構 ...
  • Nginx簡介: Nginx(發音engine x)專為性能優化而開發的開源軟體,是HTTP、反向代理、郵件代理、TCP/UDP協議代理軟體,由俄羅斯的作者Igor Sysoev開發,其最知名的優點是它的穩定性和低系統資源消耗(硬體資源占用較低),以及對HTTP併發連接的高處理能力(單台物理伺服器可 ...
  • 1.在agent端自定義key[root@web01 ~]# cd /etc/zabbix/zabbix_agentd.d/[root@web01 zabbix_agentd.d]# cat io.confUserParameter=tps,iostat | awk '/^sda/{print $2 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...