Linux 下安装 PHG (无 root 权限)

@[TOC](Linux 下安装 PHG (无 root 权限))

参考文章:PHG安装

PHG是中科院数学与系统科学研究院计算数学与科学工程计算研究所张林波老师带领的团队开发的三维自适应有限元并行程序开发设计平台。 PHG的设计隐藏了并行处理的细节, 对三维有限元程序现实有足够的灵活性。 对于对mpi,openmpi 等并行程序接口不太熟悉, 但又需要实现并行程序的研究人员来说, PHG是一个非常有效,实用的平台。

PHG 的安装并不难,和Linux下的其他软件包的安装程序一样, 三步: 1) ./configure 2)make 3) make install 。 在张老师的主页上下到源码包解压之后, 里面自带了用户使用手册, 手册里包含了安装步骤。 在这里没有 root 权限 的话在安装过程中会遇到问题,这里给出解决方案。

(I)使用的系统 Debian ,Linux.

(II) 需要先安装的一些必须的软件包。

a) 确认系统安装了gcc, g++,gfortran, 没有的话,可以通过以下命令安装

 sudo apt-get install gcc
 sudo apt-get install g++
 sudo apt-get install gfortran

b) 安装blas,lapack

在官网上下载lapack源码包, 我用的是旧一点的版本 lapack-3.9.0, 将源码包解压,并进入解压后的文件目录。
这里参考了 PHG安装
直接将当前目录下的make.inc.example重命名为make.inc. 先编译libblas,libtmg, 然后在编译liblapacke, 。 原因是以为,生成liblapacke.a 需要用到blas的库。

make blaslib
make tmglib
make lapackelib
make all

至此, blas, lapack就已经安装好了。 然后将得到的库文件,即 liblapack.a liblapacke.a librefblas.a libtmglib.a拷贝到系统目录下, 或者是将当前的这个目录路径加入到环境变量PATH中去:

  1. 打开 ./bashrc
vim ~ /.bashrc 
  1. 在最后一行添加路径:
export PATH=$PATH: 文件所在路径

c)安装 mpi.

在官网上下载源码包,解压后进入文件目录。 我用的版本是 4.0.
由于没有 root 权限不能使用 sudo make install, 这里参考 Installing software without root user access, 把 mpi 安装在普通用户家目录下.

./configure --prefix
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java的`KeyFactory`和`PKCS8EncodedKeySpec`类来将PKCS#1格式的私钥字符串转换成`PrivateKey`对象。但是,PKCS#1格式的私钥字符串通常是经过BASE64编码的,因此要先将其解码成字节数组,再进行转换。 下面是一个示例代码: ```java import java.security.KeyFactory; import java.security.PrivateKey; import java.security.spec.PKCS8EncodedKeySpec; import java.util.Base64; public class PKCS1ToPrivateKey { public static void main(String[] args) throws Exception { String pkcs1PrivateKeyStr = "-----BEGIN RSA PRIVATE KEY-----\n" + "MIICXQIBAAKBgQDnKNa7wEgVXoTjHj0jx4Pzq5wSdEoR0R6vOzr5g4VxQX6KpJ+t\n" + "yMwXGcJ4yQRc9z3fVZnJ+T8o8AVwGZ8gM1w7mZmZnJcRjYcqm+UxZtMq3iHjtmW\n" + "Aq1O5H3CfZ1/DfT8PHG8i2YhL2jYaS38NnT5oDQXjrr9vZZ5yX0+tJfG8QIDAQAB\n" + "AoGBAJvhnW1I0P6zJw+0N2WJz3MjZB0EzX7yM0Ou+5KgJ2+7z8S5nQ1U4tY6P4Hc\n" + "/hs2G6cpjYX0LdNQlq94qV4eS1nU9WtTbYnYxXJmZ/wg3dE4xVXjJpKQ3nAQCc3D\n" + "2GyGzN5KUO7tJpJXUZVXlIqOY1QzvSgPj2OzXa1wYJX4KmXNwWb6Lh0gPz8A3/Py\n" + "bT4N3tz6VlMw5KU8AkEA65K7gqZ0KoZk3Kt4xqzN0GX3QdCq3P9a5HlbFxl+7Jm\n" + "fP4Vv8xV2w5wRZ3lSPhDf0Z2ttoUOaYDxqBZUQp+cLjQJBAOQYdL7fLgVz7jQK2U\n" + "ZGpYzBpS7Rz2JXx2LQg/xB2LsZ8/r4aRTwU9A5K/64CQz0RQxhX2zvJxwzvtf7Rz\n" + "48PfEY0CQQC5EzZPo5NnM4vKj7w0O0ZpZ7WmYPaX+5jKo/9qEKEHVm1b5SUoVQ5U\n" + "aGc9YR1BqQeX4m4DXdFbT3mk6iB7bt4TAkB8gOQ1OghuK3VbqHt4Jg5J7/6tJ5pF\n" + "e8+oF5XqzZdGkc1T6U/6Cw6i+XtuK2zjL1mXcoU5lWbJ8v7PbVz5iMvZAkA+ylRf\n" + "C6p5NfE4Y/jXDY1h5NlI3q7WZm6y/41CgJ1OzP9Ni1CjSKyLgUQ3woG0wS7JG87c\n" + "4kYhY2REzLDM1JQJBAI7YX7x1vKvJyFw1JzgL0oIaZ4KK5k1Gd2WQqBmVZkT9Y9Y\n" + "g3s7N8x9me4g7zG1yTXJ+ZoFv4tqVlA9yF4=\n" + "-----END RSA PRIVATE KEY-----"; // 去掉头尾部分,只保留私钥内容 pkcs1PrivateKeyStr = pkcs1PrivateKeyStr.replace("-----BEGIN RSA PRIVATE KEY-----\n", ""); pkcs1PrivateKeyStr = pkcs1PrivateKeyStr.replace("-----END RSA PRIVATE KEY-----", ""); // 将BASE64编码的私钥字符串解码成字节数组 byte[] pkcs1PrivateKeyBytes = Base64.getDecoder().decode(pkcs1PrivateKeyStr); // 将PKCS#1格式的私钥字节数组转换成PrivateKey对象 PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(pkcs1PrivateKeyBytes); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8KeySpec); // 输出PrivateKey对象 System.out.println(privateKey); } } ``` 注意,上述代码中的私钥只用于示例,不要在实际应用中使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值